该教程是为JDK 8编写的。本页面中描述的示例和实践未利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言更改以了解Java SE 9及后续版本中的更新语言功能摘要。
请参阅JDK版本说明以获取所有JDK版本的新功能、增强功能和已删除或弃用选项的信息。
处理限制定义
以下列表描述了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。 |
默认值 |
5x10^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。 |
默认值 |
1000000 |
系统属性 |
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.0引入以来,为了向后兼容性仍然得到支持。
系统属性 |
自 |
新系统属性 |
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