# 处理限制定义

> 原文： [https://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html](https://docs.oracle.com/javase/tutorial/jaxp/limits/limits.html)

以下列表描述了 JDK 中支持的 JAXP XML 处理限制。可以通过工厂 API，系统属性和 `jaxp.properties` 文件指定这些限制。

## entityExpansionLimit

| 属性 | 描述 |
| --- | --- |
| 名称 | `http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit` |
| 定义 | 限制实体扩展的数量。 |
| 值 | 正整数。小于或等于 0 的值表示没有限制。如果该值不是整数，则抛出 `NumericFormatException` 。 |
| 默认值 | 64000 |
| 系统属性 | `jdk.xml.entityExpansionLimit` |
| 以来 | 7u45,8 |

## elementAttributeLimit

| 属性 | 描述 |
| --- | --- |
| 名称 | `http://www.oracle.com/xml/jaxp/properties/elementAttributeLimit` |
| 定义 | 限制元素可以拥有的属性数。 |
| 值 | 正整数。小于或等于 0 的值表示没有限制。如果该值不是整数，则抛出 `NumericFormatException` 。 |
| 默认值 | 10000 |
| 系统属性 | `jdk.xml.elementAttributeLimit` |
| 以来 | 7u45,8 |

## maxOccurLimit

| 属性 | 描述 |
| --- | --- |
| 名称 | `http://www.oracle.com/xml/jaxp/properties/maxOccurLimit` |
| 定义 | 限制在为包含 `maxOccurs` 属性且包含“unbounded”以外的值的 W3C XML Schema 构建语法时可能创建的内容模型节点的数量。 |
| 值 | 正整数。小于或等于 0 的值表示没有限制。如果该值不是整数，则抛出 `NumericFormatException` 。 |
| 默认值 | 5000 |
| 系统属性 | `jdk.xml.maxOccurLimit` |
| 以来 | 7u45,8 |

## totalEntitySizeLimit

| 属性 | 描述 |
| --- | --- |
| 名称 | `http://www.oracle.com/xml/jaxp/properties/totalEntitySizeLimit` |
| 定义 | 限制包含常规和参数实体的所有实体的总大小。大小计算为所有实体的聚合。 |
| 值 | 正整数。小于或等于 0 的值表示没有限制。如果该值不是整数，则抛出 `NumericFormatException` 。 |
| 默认值 | 5×10 ^ 7 |
| 系统属性 | `jdk.xml.totalEntitySizeLimit` |
| 以来 | 7u45,8 |

## maxGeneralEntitySizeLimit

| 属性 | 描述 |
| --- | --- |
| 名称 | `http://www.oracle.com/xml/jaxp/properties/maxGeneralEntitySizeLimit` |
| 定义 | 限制任何一般实体的最大大小。 |
| 值 | 正整数。小于或等于 0 的值表示没有限制。如果该值不是整数，则抛出 `NumericFormatException` 。 |
| 默认值 | 0 |
| 系统属性 | `jdk.xml.maxGeneralEntitySizeLimit` |
| 以来 | 7u45,8 |

## maxParameterEntitySizeLimit

| 属性 | 描述 |
| --- | --- |
| 名称 | `http://www.oracle.com/xml/jaxp/properties/maxParameterEntitySizeLimit` |
| 定义 | 限制任何参数实体的最大大小，包括嵌套多个参数实体的结果。 |
| 值 | 正整数。小于或等于 0 的值表示没有限制。如果该值不是整数，则抛出 `NumericFormatException` 。 |
| 默认值 | 百万 |
| 系统属性 | `jdk.xml.maxParameterEntitySizeLimit` |
| 以来 | 7u45,8 |

## entityReplacementLimit

| 属性 | 描述 |
| --- | --- |
| 名称 | `http://www.oracle.com/xml/jaxp/properties/entityReplacementLimit` |
| 定义 | 限制所有实体引用中的节点总数。 |
| 值 | 正整数。小于或等于 0 的值表示没有限制。如果该值不是整数，则抛出 `NumericFormatException` 。 |
| 默认值 | 3000000 |
| 系统属性 | `jdk.xml.entityReplacementLimit` |
| 以来 | 7u111,8u101 |

## maxElementDepth

| 属性 | 描述 |
| --- | --- |
| 名称 | `http://www.oracle.com/xml/jaxp/properties/maxElementDepth` |
| 定义 | 限制最大元素深度。 |
| 值 | 正整数。小于或等于 0 的值表示没有限制。如果该值不是整数，则抛出 `NumericFormatException` 。 |
| 默认值 | 0 |
| 系统属性 | `jdk.xml.maxElementDepth` |
| 以来 | 7u65,8u11 |

## maxXMLNameLimit

| 属性 | 描述 |
| --- | --- |
| 名称 | `http://www.oracle.com/xml/jaxp/properties/maxXMLNameLimit` |
| 定义 | 限制 XML 名称的最大大小，包括元素名称，属性名称和名称空间前缀和 URI。 |
| 值 | 正整数。小于或等于 0 的值表示没有限制。如果该值不是整数，则抛出 `NumericFormatException` 。 |
| 默认值 | 1000 |
| 系统属性 | `jdk.xml.maxXMLNameLimit` |
| 以来 | 7u91,8u65 |

## 旧系统属性

自 JDK 5.0 和 6 以来引入的这些属性继续支持向后兼容性。

| 系统属性 | 以来 | 新系统属性 |
| --- | --- | --- |
| entityExpansionLimit | 1.5 | jdk.xml.entityExpansionLimit |
| elementAttributeLimit | 1.5 | jdk.xml.elementAttributeLimit |
| maxOccurLimit | 1.6 | jdk.xml.maxOccur |

## {java.home} /lib/jaxp.properties

可以在 `jaxp.properties` 文件中指定系统属性，以定义 JDK 或 JRE 的所有调用的行为。格式为 `system-property-name = value` 。例如：

```
jdk.xml.maxGeneralEntitySizeLimit=1024

```