|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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) 设置由此工厂创建的此 DocumentBuilderFactory 和 DocumentBuilder 的功能。 |
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
值。