public abstract class DocumentBuilderFactory
extends Object
java.lang.Object | |
↳ | javax.xml.parsers.DocumentBuilderFactory |
定义一个工厂API,使应用程序能够获得一个从XML文档生成DOM对象树的解析器。
Protected constructors |
|
---|---|
DocumentBuilderFactory() |
Public methods |
|
---|---|
abstract Object |
getAttribute(String name) 允许用户检索底层实现的特定属性。 |
abstract boolean |
getFeature(String name) 获取指定功能的状态。 |
Schema |
getSchema() 获取通过 |
boolean |
isCoalescing() 指示工厂是否配置为生成将CDATA节点转换为文本节点并将其附加到相邻(如果有)文本节点的解析器。 |
boolean |
isExpandEntityReferences() 指示工厂是否配置为生成扩展实体参考节点的解析器。 |
boolean |
isIgnoringComments() 指示工厂是否配置为生成忽略注释的解析器。 |
boolean |
isIgnoringElementContentWhitespace() 指示工厂是否配置为生成忽略元素内容中可忽略空白的解析器。 |
boolean |
isNamespaceAware() 指示工厂是否配置为生成可识别名称空间的解析器。 |
boolean |
isValidating() 指示工厂是否配置为生成在解析期间验证XML内容的解析器。 |
boolean |
isXIncludeAware() 获取XInclude处理的状态。 |
abstract DocumentBuilder |
newDocumentBuilder() 使用当前配置的参数创建 |
static DocumentBuilderFactory |
newInstance(String factoryClassName, ClassLoader classLoader) 返回 |
static DocumentBuilderFactory |
newInstance() 返回Android的实现 |
abstract void |
setAttribute(String name, Object value) 允许用户在底层实现上设置特定的属性。 |
void |
setCoalescing(boolean coalescing) 指定由此代码生成的解析器将CDATA节点转换为Text节点并将其附加到相邻(如果有)文本节点。 |
void |
setExpandEntityReferences(boolean expandEntityRef) 指定由此代码生成的解析器将展开实体引用节点。 |
abstract void |
setFeature(String name, boolean value) 为此工厂创建的 |
void |
setIgnoringComments(boolean ignoreComments) 指定由此代码生成的解析器将忽略注释。 |
void |
setIgnoringElementContentWhitespace(boolean whitespace) 指定在解析XML文档时,由该工厂创建的解析器必须消除元素内容中的空白(有时简称为“可忽略的空白”)(请参阅XML Rec 2.10)。 |
void |
setNamespaceAware(boolean awareness) 指定由此代码生成的解析器将提供对XML名称空间的支持。 |
void |
setSchema(Schema schema) 将 |
void |
setValidating(boolean validating) 指定由此代码生成的解析器将在分析文档时验证文档。 |
void |
setXIncludeAware(boolean state) 设置XInclude处理的状态。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
Object getAttribute (String name)
允许用户检索底层实现的特定属性。
Parameters | |
---|---|
name |
String : The name of the attribute. |
Returns | |
---|---|
Object |
value The value of the attribute. |
Throws | |
---|---|
IllegalArgumentException |
thrown if the underlying implementation doesn't recognize the attribute. |
boolean getFeature (String name)
获取指定功能的状态。
功能名称完全限定URI
s。 实现可以定义它们自己的特征。 一个ParserConfigurationException
如果这是抛出DocumentBuilderFactory
或者DocumentBuilder
的IT创建不支持该功能。 DocumentBuilderFactory
可能会公开某个特征值,但无法更改其状态。
Parameters | |
---|---|
name |
String : Feature name. |
Returns | |
---|---|
boolean |
State of the named feature. |
Throws | |
---|---|
ParserConfigurationException |
if this DocumentBuilderFactory or the DocumentBuilder s it creates cannot support this feature. |
Schema getSchema ()
获取通过 setSchema(Schema)
方法指定的 Schema
对象。
Returns | |
---|---|
Schema |
the Schema object that was last set through the setSchema(Schema) method, or null if the method was not invoked since a DocumentBuilderFactory is created. |
Throws | |
---|---|
UnsupportedOperationException |
For backward compatibility, when implementations for earlier versions of JAXP is used, this exception will be thrown. |
boolean isCoalescing ()
指示工厂是否配置为生成将CDATA节点转换为文本节点并将其附加到相邻(如果有)文本节点的解析器。
Returns | |
---|---|
boolean |
true if the factory is configured to produce parsers which converts CDATA nodes to Text nodes and appends it to the adjacent (if any) Text node; false otherwise. |
boolean isExpandEntityReferences ()
指示工厂是否配置为生成扩展实体参考节点的解析器。
Returns | |
---|---|
boolean |
true if the factory is configured to produce parsers which expand entity reference nodes; false otherwise. |
boolean isIgnoringComments ()
指示工厂是否配置为生成忽略注释的解析器。
Returns | |
---|---|
boolean |
true if the factory is configured to produce parsers which ignores comments; false otherwise. |
boolean isIgnoringElementContentWhitespace ()
指示工厂是否配置为生成忽略元素内容中可忽略空白的解析器。
Returns | |
---|---|
boolean |
true if the factory is configured to produce parsers which ignore ignorable whitespace in element content; false otherwise. |
boolean isNamespaceAware ()
指示工厂是否配置为生成可识别名称空间的解析器。
Returns | |
---|---|
boolean |
true if the factory is configured to produce parsers which are namespace aware; false otherwise. |
boolean isValidating ()
指示工厂是否配置为生成在解析期间验证XML内容的解析器。
Returns | |
---|---|
boolean |
true if the factory is configured to produce parsers which validate the XML content during parse; false otherwise. |
boolean isXIncludeAware ()
获取XInclude处理的状态。
Returns | |
---|---|
boolean |
current state of XInclude processing |
Throws | |
---|---|
UnsupportedOperationException |
For backward compatibility, when implementations for earlier versions of JAXP is used, this exception will be thrown. |
DocumentBuilder newDocumentBuilder ()
使用当前配置的参数创建 DocumentBuilder
的新实例。
Returns | |
---|---|
DocumentBuilder |
A new instance of a DocumentBuilder. |
Throws | |
---|---|
ParserConfigurationException |
if a DocumentBuilder cannot be created which satisfies the configuration requested. |
DocumentBuilderFactory newInstance (String factoryClassName, ClassLoader classLoader)
返回 DocumentBuilderFactory
的命名实现的 DocumentBuilderFactory
。
Parameters | |
---|---|
factoryClassName |
String
|
classLoader |
ClassLoader
|
Returns | |
---|---|
DocumentBuilderFactory |
Throws | |
---|---|
FactoryConfigurationError |
if factoryClassName is not available or cannot be instantiated. |
DocumentBuilderFactory newInstance ()
返回Android的实现DocumentBuilderFactory
。 与其他Java实现不同,此方法不涉及系统属性,属性文件或服务API。
Returns | |
---|---|
DocumentBuilderFactory |
a new DocumentBuilderFactory. |
void setAttribute (String name, Object value)
允许用户在底层实现上设置特定的属性。
Parameters | |
---|---|
name |
String : The name of the attribute. |
value |
Object : The value of the attribute. |
Throws | |
---|---|
IllegalArgumentException |
thrown if the underlying implementation doesn't recognize the attribute. |
void setCoalescing (boolean coalescing)
指定由此代码生成的解析器将CDATA节点转换为Text节点并将其附加到相邻(如果有)文本节点。 默认情况下,这个值设置为false
Parameters | |
---|---|
coalescing |
boolean : true if the parser produced will convert CDATA nodes to Text nodes and append it to the adjacent (if any) text node; false otherwise. |
void setExpandEntityReferences (boolean expandEntityRef)
指定由此代码生成的解析器将展开实体引用节点。 默认情况下,其值设置为true
Parameters | |
---|---|
expandEntityRef |
boolean : true if the parser produced will expand entity reference nodes; false otherwise. |
void setFeature (String name, boolean value)
为此工厂创建的 DocumentBuilderFactory
和 DocumentBuilder
设置一个功能。
功能名称完全限定为URI
s。 实现可以定义它们自己的特征。 一个ParserConfigurationException
如果这是抛出DocumentBuilderFactory
或者DocumentBuilder
的IT创建不支持该功能。 DocumentBuilderFactory
可能会公开某个特征值,但无法更改其状态。
所有实现都需要支持FEATURE_SECURE_PROCESSING
功能。 当功能是:
true
: the implementation will limit XML processing to conform to implementation limits. Examples include entity expansion limits and XML Schema constructs that would consume large amounts of resources. If XML processing is limited for security reasons, it will be reported via a call to the registered fatalError(SAXParseException)
. See setErrorHandler(org.xml.sax.ErrorHandler)
. false
: the implementation will processing XML according to the XML specifications without regard to possible implementation limits. Parameters | |
---|---|
name |
String : Feature name. |
value |
boolean : Is feature state true or false . |
Throws | |
---|---|
ParserConfigurationException |
if this DocumentBuilderFactory or the DocumentBuilder s it creates cannot support this feature. |
NullPointerException |
If the name parameter is null. |
void setIgnoringComments (boolean ignoreComments)
指定由此代码生成的解析器将忽略注释。 默认情况下,它的值被设置为false
。
Parameters | |
---|---|
ignoreComments |
boolean : boolean value to ignore comments during processing |
void setIgnoringElementContentWhitespace (boolean whitespace)
指定在解析XML文档时,由该工厂创建的解析器必须消除元素内容中的空白(有时简称为“可忽略的空白”)(请参阅XML Rec 2.10)。 请注意,只有直接包含在具有仅包含元素内容模型的元素内容(参见XML Rec 3.2.1)中的空白将被删除。 由于依赖内容模型,此设置需要解析器处于验证模式。 默认情况下,它的值设置为false
。
Parameters | |
---|---|
whitespace |
boolean : true if the parser created must eliminate whitespace in the element content when parsing XML documents; false otherwise. |
void setNamespaceAware (boolean awareness)
指定由此代码生成的解析器将提供对XML名称空间的支持。 默认情况下,它的值被设置为false
Parameters | |
---|---|
awareness |
boolean : true if the parser produced will provide support for XML namespaces; false otherwise. |
void setSchema (Schema schema)
将 Schema
设置为由此工厂创建的解析器使用。
当 Schema
非空时,解析器将使用从它创建的验证器在将信息传递给应用程序之前验证文档。
当验证程序发现错误时,解析器负责将它们报告给用户指定的ErrorHandler
(或者如果未设置错误处理程序,则忽略它们或丢弃它们),就像解析器本身发现的任何其他错误一样。 换句话说,如果设置了用户指定的ErrorHandler
,则必须接收这些错误,如果不是,则必须根据实现特定的默认错误处理规则处理它们。
验证器可以修改解析的结果(例如,通过添加文档中缺少的缺省值),解析器负责确保应用程序将接收修改的DOM树。
最初,null设置为 Schema
。
即使 isValidating()
方法返回 false,此处理也会生效。
将http://java.sun.com/xml/jaxp/properties/schemaSource
属性和/或http://java.sun.com/xml/jaxp/properties/schemaLanguage
属性与Schema
对象一起使用是Schema
。 这样的配置将导致一个ParserConfigurationException
的时候例外newDocumentBuilder()
被调用。
解析器必须能够使用任何Schema
实现。 但是,只要分析器和模式产生规范中描述的结果,就可以使用特定于实现的自定义机制。
Parameters | |
---|---|
schema |
Schema : Schema to use or null to remove a schema. |
Throws | |
---|---|
UnsupportedOperationException |
For backward compatibility, when implementations for earlier versions of JAXP is used, this exception will be thrown. |
void setValidating (boolean validating)
指定由此代码生成的解析器将在分析文档时验证文档。 默认情况下,其值设置为false
。
请注意,这里的“验证”是指XML建议中定义的a validating parser 。 换句话说,它本质上只是控制DTD验证。 (除了在JAXP 1.2中定义的遗留两个属性,请参阅here以获取更多详细信息。)
要使用现代模式语言(如W3C XML模式或RELAX NG代替DTD),可以通过保留 setValidating(boolean)
方法 false将分析器配置为非验证分析器,然后使用 setSchema(Schema)
方法将模式关联到分析器。
Parameters | |
---|---|
validating |
boolean : true if the parser produced will validate documents as they are parsed; false otherwise. |
void setXIncludeAware (boolean state)
设置XInclude处理的状态。
如果在文档实例中找到XInclude标记,是否应按照 XML Inclusions (XInclude) Version 1.0中的规定处理它。
XInclude处理默认为 false
。
Parameters | |
---|---|
state |
boolean : Set XInclude processing to true or false |
Throws | |
---|---|
UnsupportedOperationException |
For backward compatibility, when implementations for earlier versions of JAXP is used, this exception will be thrown. |