所有类


javax.xml.parsers
类 DocumentBuilderFactory

java.lang.Object
  继承者 javax.xml.parsers.DocumentBuilderFactory

public abstract class DocumentBuilderFactory
   
   
   
   
extends Object

定义工厂 API,使应用程序能够从 XML 文档获取生成 DOM 对象树的解析器。


构造方法摘要
protected DocumentBuilderFactory()
           
 
方法摘要
abstract  Object getAttribute(String name)
          允许用户在基础实现上检索特定属性。
abstract  boolean getFeature(String name)
          获取指定功能的状态。
 Schema getSchema()
          获取通过 setSchema(Schema schema) 方法指定的 Schema 对象。
 boolean isCoalescing()
          指示是否将工厂配置为名称空间这样的解析器,该解析器将 CDATA 节点转换为 Text 节点,并将其附加到相邻(如果有)的 Text 节点。
 boolean isExpandEntityReferences()
          指示是否将工厂配置为生成扩展实体引用节点的解析器。
 boolean isIgnoringComments()
          指示是否将工厂配置为生成忽略注释的解析器。
 boolean isIgnoringElementContentWhitespace()
          指示是否将工厂配置为生成解析器,该解析器忽略元素内容中的可忽略空格。
 boolean isNamespaceAware()
          指示是否将工厂配置为生成具有感知名称空间功能的解析器。
 boolean isValidating()
          指示是否将工厂配置为生成解析器,该解析器在解析时验证 XML 内容。
 boolean isXIncludeAware()
          获取 XInclude 处理的状态。
abstract  DocumentBuilder newDocumentBuilder()
          使用当前配置的参数创建一个新的 DocumentBuilder 实例。
static DocumentBuilderFactory newInstance()
          获取 DocumentBuilderFactory 的新实例。
abstract  void setAttribute(String name, Object value)
          允许用户在基础实现上设置特定属性。
 void setCoalescing(boolean coalescing)
          指定由此代码生成的解析器将把 CDATA 节点转换为 Text 节点,并将其附加到相邻(如果有)的 Text 节点。
 void setExpandEntityReferences(boolean expandEntityRef)
          指定由此代码产生的解析器将扩展实体引用节点。
abstract  void setFeature(String name, boolean value)
          设置由此工厂创建的此 DocumentBuilderFactoryDocumentBuilder 的功能。
 void setIgnoringComments(boolean ignoreComments)
          指定由此代码生成的解析器将忽略注释。
 void setIgnoringElementContentWhitespace(boolean whitespace)
          指定由此工厂创建的解析器在解析 XML 文档时,必须删除元素内容中的空格(有时是指一般的“可忽略空格”,请参阅 XML Rec 2.10)。
 void setNamespaceAware(boolean awareness)
          指定由此代码生成的解析器将提供对 XML 名称空间的支持。
 void setSchema(Schema schema)
          设置将由解析器使用的 Schema,该解析器从此工厂创建。
 void setValidating(boolean validating)
          指定由此代码生成的解析器将验证被解析的文档。
 void setXIncludeAware(boolean state)
          设置 XInclude 处理的状态。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

DocumentBuilderFactory

protected DocumentBuilderFactory()
方法详细信息

newInstance

public static DocumentBuilderFactory newInstance()
获取 DocumentBuilderFactory 的新实例。此 static 方法创建一个新的工厂实例。此方法使用下面有序的查找过程来确定要加载的 DocumentBuilderFactory 实现类:
  • 使用 javax.xml.parsers.DocumentBuilderFactory 系统属性。
  • 使用 JRE 文件夹中的属性文件 "lib/jaxp.properties"。此配置文件格式为标准的 java.util.Properties 且包含实现类的完全限定名,其中实现类的键是上述定义的系统属性。 JAXP 实现只读取一次 jaxp.properties 文件,然后缓存其值供以后使用。如果首次尝试读取文件时,文件不存在,则不会再次尝试检查该文件是否存在。首次读取 jaxp.properties 后,其中的属性值不能再更改。
  • 如果可以,使用 Services API(在 JAR 规范中进行了详细描述)来确定类名称。Services API 将查找在运行时可用的 jar 中 META-INF/services/javax.xml.parsers.DocumentBuilderFactory 文件中的类名。
  • 平台默认的 DocumentBuilderFactory 实例。
在应用程序获取对 DocumentBuilderFactory 的引用后,它可以使用工厂来配置和获取解析器实例。

疑难解答提示

设置 jaxp.debug 系统属性将导致此方法将许多调试消息打印到 System.err,以说明其执行的操作以及在何处查找。

如果加载 DocumentBuilder 有问题,请尝试:

 java -Djaxp.debug=1 YourProgram ....
 

返回:
新的 DocumentBuilderFactory 实例
抛出:
FactoryConfigurationError - 如果该实现不可用,或者无法实例化。

newDocumentBuilder

public abstract DocumentBuilder newDocumentBuilder()
                                            throws ParserConfigurationException
使用当前配置的参数创建一个新的 DocumentBuilder 实例。

返回:
新的 DocumentBuilder 实例。
抛出:
ParserConfigurationException - 如果无法创建满足所请求配置的 DocumentBuilder,将抛出该异常。

setNamespaceAware

public void setNamespaceAware(boolean awareness)
指定由此代码生成的解析器将提供对 XML 名称空间的支持。默认情况下,其值设置为 false

参数:
awareness - 如果生成的解析器将提供对 XML 名称空间的支持,则为 true;否则为 false。

setValidating

public void setValidating(boolean validating)
指定由此代码生成的解析器将验证被解析的文档。默认情况下,其值设置为 false

注意,此处“验证”是指 XML 规范中定义的验证解析器。换句话说,它实际上仅控制 DTD 验证。(JAXP 1.2 中定义的两个遗留属性除外。)有关更多详细信息,请参见这里

要使用现代模式语言(如 W3C XML Schema 或 RELAX NG)而不使用 DTD,您可以将解析器配置为非验证解析器,方法是将 setValidating(boolean) 方法保留为 false,然后使用 setSchema(Schema) 方法将一个模式与解析器关联。

参数:
validating - 如果由此代码生成的解析器在解析文档时验证文档,则为 true;否则为 false。

setIgnoringElementContentWhitespace

public void setIgnoringElementContentWhitespace(boolean whitespace)
指定由此工厂创建的解析器在解析 XML 文档时,必须删除元素内容中的空格(有时是指一般的“可忽略空格”,请参阅 XML Rec 2.10)。注意,只有在空格直接包含在元素内容中,并且该元素内容是只有一个元素的内容模型时,才能删除空格(请参阅 XML Rec 3.2.1)。由于依赖于内容模型,因此此设置要求解析器处于验证模式。默认情况下,其值设置为 false

参数:
whitespace - 如果创建的解析器在解析 XML 文档时必须删除元素内容中的空格,则为 true;否则为 false。

setExpandEntityReferences

public void setExpandEntityReferences(boolean expandEntityRef)
指定由此代码产生的解析器将扩展实体引用节点。默认情况下,此值设置为 true

参数:
expandEntityRef - 如果生成的解析器将扩展实体引用节点,则为 true;否则为 false。

setIgnoringComments

public void setIgnoringComments(boolean ignoreComments)

指定由此代码生成的解析器将忽略注释。默认情况下,其值设置为 false

参数:
ignoreComments - 在处理过程中忽略注释的 boolean 值。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部