Most visited

Recently visited

Added in API level 1

DocumentBuilderFactory

public abstract class DocumentBuilderFactory
extends Object

java.lang.Object
   ↳ javax.xml.parsers.DocumentBuilderFactory


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

Summary

Protected constructors

DocumentBuilderFactory()

Public methods

abstract Object getAttribute(String name)

允许用户检索底层实现的特定属性。

abstract boolean getFeature(String name)

获取指定功能的状态。

Schema getSchema()

获取通过 setSchema(Schema)方法指定的 Schema对象。

boolean isCoalescing()

指示工厂是否配置为生成将CDATA节点转换为文本节点并将其附加到相邻(如果有)文本节点的解析器。

boolean isExpandEntityReferences()

指示工厂是否配置为生成扩展实体参考节点的解析器。

boolean isIgnoringComments()

指示工厂是否配置为生成忽略注释的解析器。

boolean isIgnoringElementContentWhitespace()

指示工厂是否配置为生成忽略元素内容中可忽略空白的解析器。

boolean isNamespaceAware()

指示工厂是否配置为生成可识别名称空间的解析器。

boolean isValidating()

指示工厂是否配置为生成在解析期间验证XML内容的解析器。

boolean isXIncludeAware()

获取XInclude处理的状态。

abstract DocumentBuilder newDocumentBuilder()

使用当前配置的参数创建 DocumentBuilder的新实例。

static DocumentBuilderFactory newInstance(String factoryClassName, ClassLoader classLoader)

返回 DocumentBuilderFactory的命名实现的 DocumentBuilderFactory

static DocumentBuilderFactory newInstance()

返回Android的实现 DocumentBuilderFactory

abstract void setAttribute(String name, Object value)

允许用户在底层实现上设置特定的属性。

void setCoalescing(boolean coalescing)

指定由此代码生成的解析器将CDATA节点转换为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处理的状态。

Inherited methods

From class java.lang.Object

Protected constructors

DocumentBuilderFactory

Added in API level 1
DocumentBuilderFactory ()

Public methods

getAttribute

Added in API level 1
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.

getFeature

Added in API level 1
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 DocumentBuilders it creates cannot support this feature.

getSchema

Added in API level 8
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.

isCoalescing

Added in API level 1
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.

isExpandEntityReferences

Added in API level 1
boolean isExpandEntityReferences ()

指示工厂是否配置为生成扩展实体参考节点的解析器。

Returns
boolean true if the factory is configured to produce parsers which expand entity reference nodes; false otherwise.

isIgnoringComments

Added in API level 1
boolean isIgnoringComments ()

指示工厂是否配置为生成忽略注释的解析器。

Returns
boolean true if the factory is configured to produce parsers which ignores comments; false otherwise.

isIgnoringElementContentWhitespace

Added in API level 1
boolean isIgnoringElementContentWhitespace ()

指示工厂是否配置为生成忽略元素内容中可忽略空白的解析器。

Returns
boolean true if the factory is configured to produce parsers which ignore ignorable whitespace in element content; false otherwise.

isNamespaceAware

Added in API level 1
boolean isNamespaceAware ()

指示工厂是否配置为生成可识别名称空间的解析器。

Returns
boolean true if the factory is configured to produce parsers which are namespace aware; false otherwise.

isValidating

Added in API level 1
boolean isValidating ()

指示工厂是否配置为生成在解析期间验证XML内容的解析器。

Returns
boolean true if the factory is configured to produce parsers which validate the XML content during parse; false otherwise.

isXIncludeAware

Added in API level 1
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.

newDocumentBuilder

Added in API level 1
DocumentBuilder newDocumentBuilder ()

使用当前配置的参数创建 DocumentBuilder的新实例。

Returns
DocumentBuilder A new instance of a DocumentBuilder.
Throws
ParserConfigurationException if a DocumentBuilder cannot be created which satisfies the configuration requested.

newInstance

Added in API level 9
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.

newInstance

Added in API level 1
DocumentBuilderFactory newInstance ()

返回Android的实现DocumentBuilderFactory 与其他Java实现不同,此方法不涉及系统属性,属性文件或服务API。

Returns
DocumentBuilderFactory a new DocumentBuilderFactory.

setAttribute

Added in API level 1
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.

setCoalescing

Added in API level 1
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.

setExpandEntityReferences

Added in API level 1
void setExpandEntityReferences (boolean expandEntityRef)

指定由此代码生成的解析器将展开实体引用节点。 默认情况下,其值设置为true

Parameters
expandEntityRef boolean: true if the parser produced will expand entity reference nodes; false otherwise.

setFeature

Added in API level 1
void setFeature (String name, 
                boolean value)

为此工厂创建的 DocumentBuilderFactoryDocumentBuilder设置一个功能。

功能名称完全限定为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 DocumentBuilders it creates cannot support this feature.
NullPointerException If the name parameter is null.

setIgnoringComments

Added in API level 1
void setIgnoringComments (boolean ignoreComments)

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

Parameters
ignoreComments boolean: boolean value to ignore comments during processing

setIgnoringElementContentWhitespace

Added in API level 1
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.

setNamespaceAware

Added in API level 1
void setNamespaceAware (boolean awareness)

指定由此代码生成的解析器将提供对XML名称空间的支持。 默认情况下,它的值被设置为false

Parameters
awareness boolean: true if the parser produced will provide support for XML namespaces; false otherwise.

setSchema

Added in API level 8
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()被调用。

Note for implementors

解析器必须能够使用任何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.

setValidating

Added in API level 1
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.

setXIncludeAware

Added in API level 1
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.

Hooray!