外部访问属性
外部访问属性的值,包括ACCESS_EXTERNAL_DTD
,ACCESS_EXTERNAL_SCHEMA
和ACCESS_EXTERNAL_STYLESHEET
,定义如下。
值:
由逗号分隔的协议列表。协议是URI
的方案部分,或者在JAR协议的情况下,是"jar"加上以冒号分隔的方案部分。方案定义如下:
方案 = alpha *( alpha | digit | "+" | "-" | "." )
其中alpha = a-z和A-Z。
以及JAR协议:
jar[:scheme]
包括关键字"jar"的协议不区分大小写。值中由Character.isSpaceChar(char)
定义的任何空格将被忽略。协议的示例包括file、http、jar:file。
默认值:
默认值是特定于实现的,因此未指定。以下选项供考虑:
- 空字符串以拒绝所有对外部引用的访问;
- 特定协议,如file,以仅允许该协议的许可;
- 关键字"all"以授予所有协议的许可。
当启用FEATURE_SECURE_PROCESSING时,建议实现默认限制外部连接,尽管这可能会导致处理带有外部引用的XML/XSD/XSL的应用程序出现问题。
授予所有访问权限:
关键字"all"授予所有协议的许可。属性优先级
属性,包括外部访问属性和USE_CATALOG
,可以通过多个配置源指定。它们遵循模块概述中配置部分中定义的配置过程。
- 自版本:
- 1.5
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
属性:accessExternalDTDstatic final String
属性:accessExternalSchemastatic final String
属性:accessExternalStylesheetstatic final String
用于表示默认XML命名空间的前缀。static final String
安全处理功能。static final String
用于表示不存在命名空间的命名空间URI。static final String
RELAX NG命名空间URI。static final String
功能:useCatalogstatic final String
W3C XML模式实例命名空间URI。static final String
W3C XML模式命名空间URI。static final String
W3C XPath数据类型命名空间URI。static final String
XML文档类型声明命名空间URI作为任意值。static final String
官方XML命名空间前缀。static final String
官方XML命名空间名称URI。static final String
用于指定XML命名空间声明的官方XML属性。static final String
用于指定XML命名空间声明的官方XML属性,XMLConstants.XMLNS_ATTRIBUTE
,命名空间名称URI。 -
Method Summary
-
Field Details
-
NULL_NS_URI
用于表示不存在命名空间的命名空间URI。由命名空间规范定义为""。
- 参见:
-
DEFAULT_NS_PREFIX
用于表示默认XML命名空间的前缀。由XML规范定义为""。
- 参见:
-
XML_NS_URI
官方XML命名空间名称URI。由XML规范定义为"
http://www.w3.org/XML/1998/namespace
"。- 参见:
-
XML_NS_PREFIX
官方XML命名空间前缀。由XML规范定义为"
xml
"。- 参见:
-
XMLNS_ATTRIBUTE_NS_URI
用于指定XML命名空间声明的官方XML属性,XMLConstants.XMLNS_ATTRIBUTE
,命名空间名称URI。由XML规范定义为"
http://www.w3.org/2000/xmlns/
"。- 参见:
-
XMLNS_ATTRIBUTE
用于指定XML命名空间声明的官方XML属性。作为前缀使用是无效的。由XML规范定义为"
xmlns
"。- 参见:
-
W3C_XML_SCHEMA_NS_URI
W3C XML模式命名空间URI。定义为"
http://www.w3.org/2001/XMLSchema
"。- 参见:
-
W3C_XML_SCHEMA_INSTANCE_NS_URI
W3C XML模式实例命名空间URI。定义为"
http://www.w3.org/2001/XMLSchema-instance
"。- 参见:
-
W3C_XPATH_DATATYPE_NS_URI
W3C XPath数据类型命名空间URI。定义为"
http://www.w3.org/2003/11/xpath-datatypes
"。- 参见:
-
XML_DTD_NS_URI
XML文档类型声明命名空间URI作为任意值。由于没有被任何现有标准正式定义,任意定义为"
http://www.w3.org/TR/REC-xml
"。- 参见:
-
RELAXNG_NS_URI
RELAX NG命名空间URI。定义为"
http://relaxng.org/ns/structure/1.0
"。- 参见:
-
FEATURE_SECURE_PROCESSING
安全处理功能。true
指示实现安全处理XML。这可能会限制XML结构以避免诸如拒绝服务攻击等情况。false
指示实现根据XML规范处理XML,忽略安全问题,如限制XML结构以避免诸如拒绝服务攻击等情况。
- 实现注意:
- 当Java安全管理器存在时,JDK将该功能的值设置为true,并不允许将其关闭。
- 参见:
-
ACCESS_EXTERNAL_DTD
属性:accessExternalDTD限制对外部DTD和外部实体引用的访问到指定的协议。如果由于此属性的限制而拒绝访问,则会抛出特定于上下文的运行时异常。例如,在
SAXParser
的情况下,将抛出SAXException
。值:如类描述中定义。
系统属性:
javax.xml.accessExternalDTD
。配置文件:是。该属性可以在配置文件中设置。
- 自版本:
- 1.7
- 参见:
-
ACCESS_EXTERNAL_SCHEMA
属性: accessExternalSchema
限制对由schemaLocation属性、Import和Include元素指定的外部引用协议的访问。如果由于此属性的限制而拒绝访问,则会抛出特定于上下文的运行时异常。例如,在
SchemaFactory
的情况下,将抛出org.xml.sax.SAXException。值: 如在类描述中定义。
系统属性:
javax.xml.accessExternalSchema
配置文件: 是。该属性可以在配置文件中设置。
- 自版本:
- 1.7
- 参见:
-
ACCESS_EXTERNAL_STYLESHEET
属性: accessExternalStylesheet限制对由样式表处理指令、Import和Include元素以及文档函数指定的外部引用协议的访问。如果由于此属性的限制而拒绝访问,则会抛出特定于上下文的运行时异常。例如,在构建新的
Transformer
时,将由TransformerConfigurationException
在TransformerFactory
中抛出。值: 如在类描述中定义。
系统属性:
javax.xml.accessExternalStylesheet
配置文件: 是。该属性可以在配置文件中设置。
- 自版本:
- 1.7
- 参见:
-
USE_CATALOG
功能: useCatalog指示XML处理器使用XML目录来解析实体引用。目录可以通过JAXP工厂、系统属性或使用
CatalogFeatures
中定义的javax.xml.catalog.files
属性在配置文件中设置。以下代码在SAX解析器上启用目录:SAXParserFactory spf = SAXParserFactory.newInstance(); spf.setFeature(XMLConstants.USE_CATALOG, true); SAXParser parser = spf.newSAXParser(); parser.setProperty(CatalogFeatures.Feature.FILES.getPropertyName(), "catalog.xml");
值: 一个布尔值。如果值为true,并且设置了目录,则XML解析器将使用
CatalogResolver
来解析外部引用。如果值为false,则即使设置了目录,也会忽略XML目录。默认值为true。系统属性:
javax.xml.useCatalog
配置文件: 是。该属性可以在配置文件中设置。
- 自版本:
- 9
- 参见:
-