新属性
原文: https://docs.oracle.com/javase/tutorial/jaxp/properties/properties.html
JAXP 1.5 定义了三个新属性,可用于调节 XML 处理器是否解析上面列出的外部资源。属性是:
javax.xml.XMLConstants.ACCESS_EXTERNAL_DTD
javax.xml.XMLConstants.ACCESS_EXTERNAL_SCHEMA
javax.xml.XMLConstants.ACCESS_EXTERNAL_STYLESHEET
这些 API 属性具有相应的系统属性和 jaxp.properties。
ACCESS_EXTERNAL_DTD
名称: http://javax.xml.XMLConstants/property/accessExternalDTD
定义:限制对外部 DTD 的访问,对协议的外部实体引用指定。
值:参见属性值
默认值:全部
,允许所有协议连接。
系统属性: javax.xml.accessExternalDTD
ACCESS_EXTERNAL_SCHEMA
名称: http://javax.xml.XMLConstants/property/accessExternalSchema
定义:限制访问为外部参考设置指定的协议schemaLocation
属性,Import 和 Include 元素。
值:参见属性值
默认值:全部
,允许所有协议连接。
系统属性: javax.xml.accessExternalSchema
ACCESS_EXTERNAL_STYLESHEET
名称: http://javax.xml.XMLConstants/property/accessExternalStylesheet
定义:限制访问为外部参考设置指定的协议样式表处理指令,文档功能,导入和包含元素。
值:参见属性值
默认值:全部
,允许所有协议连接。
系统属性: javax.xml.accessExternalStylesheet
$ {java.home} /lib/jaxp.properties
可以在jaxp.properties
中指定这些属性,以使用 Java 运行时定义所有应用程序的行为。格式为property-name = [value] [,value] *
。例如:
javax.xml.accessExternalDTD=file,http
属性名称与系统属性的名称相同: javax.xml.accessExternalDTD
, javax.xml.accessExternalSchema
和javax.xml.accessExternalStylesheet
。
所有属性都具有相同格式的值。
Value :以逗号分隔的协议列表。协议是 URI 的方案部分,或者在 JAR 协议的情况下,“jar”加上由冒号分隔的方案部分。方案定义为:
scheme = alpha *(alpha | digit |“+”|“ - ”|“。”)
其中 alpha = a-z 和 A-Z。
和 JAR 协议:
jar [:scheme]
协议不区分大小写。将忽略值中Character.isSpaceChar
定义的任何空格。协议的示例是文件
, http
, jar:文件
。
默认值:默认值是特定于实现的。在 JAXP 1.5 RI,Java SE 7u40 和 Java SE 8 中,默认值为all
,授予所有协议的权限。
授予所有访问权限:关键字all
授予所有协议权限。例如,在jaxp.properties
中设置javax.xml.accessExternalDTD = all
将允许系统像以前一样工作,对访问外部 DTD 和实体引用没有任何限制。
拒绝任何访问:空字符串,即“”表示没有授予任何协议的权限。例如,在jaxp.properties
中设置javax.xml.accessExternalDTD =“”
会指示 JAXP 处理器拒绝任何外部连接。