Module java.xml
Package javax.xml

Class XMLConstants

java.lang.Object
javax.xml.XMLConstants

public final class XMLConstants extends Object
定义了XML处理API的常量。

外部访问属性

外部访问属性的值,包括ACCESS_EXTERNAL_DTDACCESS_EXTERNAL_SCHEMAACCESS_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 Details

    • NULL_NS_URI

      public static final String NULL_NS_URI
      用于表示不存在命名空间的命名空间URI。

      由命名空间规范定义为""。

      参见:
    • DEFAULT_NS_PREFIX

      public static final String DEFAULT_NS_PREFIX
      用于表示默认XML命名空间的前缀。

      由XML规范定义为""。

      参见:
    • XML_NS_URI

      public static final String XML_NS_URI
      官方XML命名空间名称URI。

      由XML规范定义为"http://www.w3.org/XML/1998/namespace"。

      参见:
    • XML_NS_PREFIX

      public static final String XML_NS_PREFIX
      官方XML命名空间前缀。

      由XML规范定义为"xml"。

      参见:
    • XMLNS_ATTRIBUTE_NS_URI

      public static final String XMLNS_ATTRIBUTE_NS_URI
      用于指定XML命名空间声明的官方XML属性,XMLConstants.XMLNS_ATTRIBUTE,命名空间名称URI。

      由XML规范定义为"http://www.w3.org/2000/xmlns/"。

      参见:
    • XMLNS_ATTRIBUTE

      public static final String XMLNS_ATTRIBUTE
      用于指定XML命名空间声明的官方XML属性。

      作为前缀使用是无效的。由XML规范定义为"xmlns"。

      参见:
    • W3C_XML_SCHEMA_NS_URI

      public static final String W3C_XML_SCHEMA_NS_URI
      W3C XML模式命名空间URI。

      定义为"http://www.w3.org/2001/XMLSchema"。

      参见:
    • W3C_XML_SCHEMA_INSTANCE_NS_URI

      public static final String W3C_XML_SCHEMA_INSTANCE_NS_URI
      W3C XML模式实例命名空间URI。

      定义为"http://www.w3.org/2001/XMLSchema-instance"。

      参见:
    • W3C_XPATH_DATATYPE_NS_URI

      public static final String W3C_XPATH_DATATYPE_NS_URI
      W3C XPath数据类型命名空间URI。

      定义为"http://www.w3.org/2003/11/xpath-datatypes"。

      参见:
    • XML_DTD_NS_URI

      public static final String XML_DTD_NS_URI
      XML文档类型声明命名空间URI作为任意值。

      由于没有被任何现有标准正式定义,任意定义为"http://www.w3.org/TR/REC-xml"。

      参见:
    • RELAXNG_NS_URI

      public static final String RELAXNG_NS_URI
      RELAX NG命名空间URI。

      定义为"http://relaxng.org/ns/structure/1.0"。

      参见:
    • FEATURE_SECURE_PROCESSING

      public static final String FEATURE_SECURE_PROCESSING
      安全处理功能。
      • true指示实现安全处理XML。这可能会限制XML结构以避免诸如拒绝服务攻击等情况。
      • false指示实现根据XML规范处理XML,忽略安全问题,如限制XML结构以避免诸如拒绝服务攻击等情况。
      实现注意:
      当Java安全管理器存在时,JDK将该功能的值设置为true,并不允许将其关闭。
      参见:
    • ACCESS_EXTERNAL_DTD

      public static final String ACCESS_EXTERNAL_DTD
      属性:accessExternalDTD

      限制对外部DTD和外部实体引用的访问到指定的协议。如果由于此属性的限制而拒绝访问,则会抛出特定于上下文的运行时异常。例如,在SAXParser的情况下,将抛出SAXException

      值:类描述中定义。

      系统属性:javax.xml.accessExternalDTD

      配置文件:是。该属性可以在配置文件中设置。

      自版本:
      1.7
      参见:
    • ACCESS_EXTERNAL_SCHEMA

      public static final String ACCESS_EXTERNAL_SCHEMA

      属性: accessExternalSchema

      限制对由schemaLocation属性、Import和Include元素指定的外部引用协议的访问。如果由于此属性的限制而拒绝访问,则会抛出特定于上下文的运行时异常。例如,在SchemaFactory的情况下,将抛出org.xml.sax.SAXException。

      值: 如在类描述中定义。

      系统属性: javax.xml.accessExternalSchema

      配置文件: 是。该属性可以在配置文件中设置。

      自版本:
      1.7
      参见:
    • ACCESS_EXTERNAL_STYLESHEET

      public static final String ACCESS_EXTERNAL_STYLESHEET
      属性: accessExternalStylesheet

      限制对由样式表处理指令、Import和Include元素以及文档函数指定的外部引用协议的访问。如果由于此属性的限制而拒绝访问,则会抛出特定于上下文的运行时异常。例如,在构建新的Transformer时,将由TransformerConfigurationExceptionTransformerFactory中抛出。

      值: 如在类描述中定义。

      系统属性: javax.xml.accessExternalStylesheet

      配置文件: 是。该属性可以在配置文件中设置。

      自版本:
      1.7
      参见:
    • USE_CATALOG

      public static final String 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
      参见: