- java.lang.Object
-
- javax.xml.stream.XMLEventFactory
-
public abstract class XMLEventFactoryextends Object
此接口定义用于创建XMLEvents实例的实用程序类- 从以下版本开始:
- 1.6
- 另请参见:
-
StartElement
,EndElement
,ProcessingInstruction
,Comment
,Characters
,StartDocument
,EndDocument
,DTD
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
XMLEventFactory()
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 弃用的方法 变量和类型 方法 描述 abstract Attribute
createAttribute(String localName, String value)
创建一个新属性abstract Attribute
createAttribute(String prefix, String namespaceURI, String localName, String value)
创建一个新属性abstract Attribute
createAttribute(QName name, String value)
创建一个新属性abstract Characters
createCData(String content)
在CData标志设置为true的情况下创建Characters事件abstract Characters
createCharacters(String content)
创建一个Characters事件,此方法不检查内容是否都是空白。abstract Comment
createComment(String text)
创建评论abstract DTD
createDTD(String dtd)
创建文档类型定义事件此字符串包含与XML 1.0规范中的doctypedecl匹配的整个文档类型声明abstract EndDocument
createEndDocument()
创建EndDocument事件的新实例abstract EndElement
createEndElement(String prefix, String namespaceUri, String localName)
创建一个新的EndElementabstract EndElement
createEndElement(String prefix, String namespaceUri, String localName, Iterator<? extends Namespace> namespaces)
创建一个新的EndElementabstract EndElement
createEndElement(QName name, Iterator<? extends Namespace> namespaces)
创建一个新的EndElementabstract EntityReference
createEntityReference(String name, EntityDeclaration declaration)
创建EntityReference事件的新实例abstract Characters
createIgnorableSpace(String content)
创造一个可忽略的空间abstract Namespace
createNamespace(String namespaceURI)
创建一个新的默认命名空间abstract Namespace
createNamespace(String prefix, String namespaceUri)
创建一个新的命名空间abstract ProcessingInstruction
createProcessingInstruction(String target, String data)
创建处理指令abstract Characters
createSpace(String content)
创建一个isSpace标志设置为true的Characters事件abstract StartDocument
createStartDocument()
创建StartDocument事件的新实例abstract StartDocument
createStartDocument(String encoding)
创建StartDocument事件的新实例abstract StartDocument
createStartDocument(String encoding, String version)
创建StartDocument事件的新实例abstract StartDocument
createStartDocument(String encoding, String version, boolean standalone)
创建StartDocument事件的新实例abstract StartElement
createStartElement(String prefix, String namespaceUri, String localName)
创建一个新的StartElement。abstract StartElement
createStartElement(String prefix, String namespaceUri, String localName, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces)
创建一个新的StartElement。abstract StartElement
createStartElement(String prefix, String namespaceUri, String localName, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces, NamespaceContext context)
创建一个新的StartElement。abstract StartElement
createStartElement(QName name, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces)
创建一个新的StartElement。static XMLEventFactory
newDefaultFactory()
创建XMLEventFactory
内置系统默认实现的新实例。static XMLEventFactory
newFactory()
创建工厂的新实例。static XMLEventFactory
newFactory(String factoryId, ClassLoader classLoader)
创建工厂的新实例。static XMLEventFactory
newInstance()
以与newFactory()
方法完全相同的方式创建工厂的新实例。static XMLEventFactory
newInstance(String factoryId, ClassLoader classLoader)
已过时。不推荐使用此方法以保持API一致性。abstract void
setLocation(Location location)
此方法允许在此工厂创建的每个事件上设置位置。
-
-
-
方法详细信息
-
newDefaultFactory
public static XMLEventFactory newDefaultFactory()
创建XMLEventFactory
内置系统默认实现的新实例。- 结果
-
XMLEventFactory
内置系统默认实现的新实例。 - 从以下版本开始:
- 9
-
newInstance
public static XMLEventFactory newInstance() throws FactoryConfigurationError
以与newFactory()
方法完全相同的方式创建工厂的新实例。- 异常
-
FactoryConfigurationError
- 如果无法加载此工厂的实例
-
newFactory
public static XMLEventFactory newFactory() throws FactoryConfigurationError
创建工厂的新实例。此静态方法创建新的工厂实例。 此方法使用以下有序查找过程来确定要加载的XMLEventFactory实现类:
- 使用javax.xml.stream.XMLEventFactory系统属性。
使用配置文件“stax.properties”。 该文件采用标准的
Properties
格式,通常位于Java安装的conf
目录中。 它包含实现类的完全限定名称,键是上面定义的系统属性。stax.properties文件仅由实现读取一次,然后缓存其值以供将来使用。 如果在第一次尝试从该文件读取时该文件不存在,则不再进行任何检查以检查其是否存在。 在第一次读取之后,无法更改stax.properties中任何属性的值。
使用jaxp配置文件“jaxp.properties”。 该文件的格式与stax.properties的格式相同,只有在stax.properties不存在时才会读取。
使用由
ServiceLoader
类定义的服务提供者加载工具尝试使用default loading mechanism查找和加载服务的实现 :服务提供者加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null,则将使用system class loader 。否则,返回system-default实现。
一旦应用程序获得对XMLEventFactory的引用,它就可以使用工厂来配置和获取流实例。
- 异常
-
FactoryConfigurationError
- 如果是service configuration error,或者如果实现不可用或无法实例化。
-
newInstance
@Deprecated(since="1.7")public static XMLEventFactory newInstance(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
Deprecated.This method has been deprecated to maintain API consistency. All newInstance methods have been replaced with corresponding newFactory methods. The replacementnewFactory(java.lang.String, java.lang.ClassLoader)
method defines no changes in behavior.创建工厂的新实例- 参数
-
factoryId
- 要查找的工厂的名称,与属性名称相同 -
classLoader
- 要使用的classLoader - 结果
- 工厂实施
- 异常
-
FactoryConfigurationError
- 如果无法加载此工厂的实例
-
newFactory
public static XMLEventFactory newFactory(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
创建工厂的新实例。 如果classLoader参数为null,则使用ContextClassLoader。此方法使用以下有序查找过程来确定要加载的XMLEventFactory实现类:
- 使用由
factoryId
标识的系统属性的值。 使用配置文件“stax.properties”。 该文件采用标准的
Properties
格式,通常位于Java安装的conf目录中。 它包含实现类的完全限定名称,键是上面定义的系统属性。stax.properties文件仅由实现读取一次,然后缓存其值以供将来使用。 如果在第一次尝试从该文件读取时该文件不存在,则不再进行任何检查以检查其是否存在。 在第一次读取之后,无法更改stax.properties中任何属性的值。
使用jaxp配置文件“jaxp.properties”。 该文件的格式与stax.properties的格式相同,只有在stax.properties不存在时才会读取。
如果
factoryId
是“javax.xml.stream.XMLEventFactory”,使用服务提供商装载设施,由定义ServiceLoader
类,试图locate and load使用指定的服务的实现ClassLoader
。 如果classLoader
为空,则将应用default loading mechanism :即,服务提供商加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null,则将使用system class loader 。否则,抛出一个
FactoryConfigurationError
。
请注意,这是一种替换已弃用的
newInstance(String factoryId, ClassLoader classLoader)
方法的新方法。 相对于不推荐使用的方法,此替换方法未定义行为更改。- API Note:
- 此处定义的参数factoryId与其他JAXP工厂的参数不一致,其中第一个参数是提供工厂实现的完全限定工厂类名。
- 参数
-
factoryId
- 要查找的工厂的名称,与属性名称相同 -
classLoader
- 要使用的classLoader - 结果
- 工厂实施
- 异常
-
FactoryConfigurationError
- 如果是service configuration error,或者如果实现不可用或无法实例化。
- 使用由
-
setLocation
public abstract void setLocation(Location location)
此方法允许在此工厂创建的每个事件上设置位置。 这些值按值复制到此工厂创建的事件中。 要重置位置信息,请将位置设置为null。- 参数
-
location
- 要在创建的每个事件上设置的位置
-
createAttribute
public abstract Attribute createAttribute(String prefix, String namespaceURI, String localName, String value)
创建一个新属性- 参数
-
prefix
- 此属性的前缀不能为空 -
namespaceURI
- 属性值设置为此值,不能为null -
localName
- 属性的XML名称的本地名称,localName不能为null -
value
- 要设置的属性值,可能不为null - 结果
- 具有指定值的属性
-
createAttribute
public abstract Attribute createAttribute(String localName, String value)
创建一个新属性- 参数
-
localName
- 属性的XML名称的本地名称,localName不能为null -
value
- 要设置的属性值,可能不为null - 结果
- 具有指定值的属性
-
createAttribute
public abstract Attribute createAttribute(QName name, String value)
创建一个新属性- 参数
-
name
- 属性的限定名称,不能为null -
value
- 要设置的属性值,可能不为null - 结果
- 具有指定值的属性
-
createNamespace
public abstract Namespace createNamespace(String namespaceURI)
创建一个新的默认命名空间- 参数
-
namespaceURI
- 默认名称空间uri - 结果
- 具有指定值的命名空间
-
createNamespace
public abstract Namespace createNamespace(String prefix, String namespaceUri)
创建一个新的命名空间- 参数
-
prefix
- 此命名空间的前缀不能为null -
namespaceUri
- 属性值设置为此值,不能为null - 结果
- 具有指定值的命名空间
-
createStartElement
public abstract StartElement createStartElement(QName name, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces)
创建一个新的StartElement。 可以通过传入遍历一组Namespace接口的Iterator将命名空间添加到此StartElement。 可以通过传递遍历一组Attribute接口的迭代器将属性添加到此StartElement。- 参数
-
name
- 属性的限定名称,不能为null -
attributes
- 一个可选的无序对象集,它实现了要添加到新StartElement的Attribute,可以为null -
namespaces
- 一个可选的无序对象集,它实现Namespace以添加到新的StartElement,可以为null - 结果
- 请求的StartElement的实例
-
createStartElement
public abstract StartElement createStartElement(String prefix, String namespaceUri, String localName)
创建一个新的StartElement。 这会将NamespaceContext默认为空的NamespaceContext。 查询此事件的名称空间或属性将导致返回空迭代器。- 参数
-
namespaceUri
- 新StartElement的QName的uri -
localName
- 新StartElement的QName的本地名称 -
prefix
- 新StartElement的QName的前缀 - 结果
- 请求的StartElement的实例
-
createStartElement
public abstract StartElement createStartElement(String prefix, String namespaceUri, String localName, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces)
创建一个新的StartElement。 可以通过传入遍历一组Namespace接口的Iterator将命名空间添加到此StartElement。 可以通过传递遍历一组Attribute接口的迭代器将属性添加到此StartElement。- 参数
-
namespaceUri
- 新StartElement的QName的uri -
localName
- 新StartElement的QName的本地名称 -
prefix
- 新StartElement的QName的前缀 -
attributes
- 一组无序对象,它们实现要添加到新StartElement的Attribute -
namespaces
- 一组无序对象,它们实现Namespace以添加到新的StartElement - 结果
- 请求的StartElement的实例
-
createStartElement
public abstract StartElement createStartElement(String prefix, String namespaceUri, String localName, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces, NamespaceContext context)
创建一个新的StartElement。 可以通过传入遍历一组Namespace接口的Iterator将命名空间添加到此StartElement。 可以通过传递遍历一组Attribute接口的迭代器将属性添加到此StartElement。- 参数
-
namespaceUri
- 新StartElement的QName的uri -
localName
- 新StartElement的QName的本地名称 -
prefix
- 新StartElement的QName的前缀 -
attributes
- 实现要添加到新StartElement的Attribute的无序对象集可以为null -
namespaces
- 实现Namespace以添加到新StartElement的无序对象集可以为null -
context
- 此元素的名称空间上下文 - 结果
- 请求的StartElement的实例
-
createEndElement
public abstract EndElement createEndElement(QName name, Iterator<? extends Namespace> namespaces)
创建一个新的EndElement- 参数
-
name
- EndElement的限定名称 -
namespaces
- 实现名称空间超出范围的可选无序对象集可以为null - 结果
- 请求的EndElement的实例
-
createEndElement
public abstract EndElement createEndElement(String prefix, String namespaceUri, String localName)
创建一个新的EndElement- 参数
-
namespaceUri
- 新StartElement的QName的uri -
localName
- 新StartElement的QName的本地名称 -
prefix
- 新StartElement的QName的前缀 - 结果
- 请求的EndElement的实例
-
createEndElement
public abstract EndElement createEndElement(String prefix, String namespaceUri, String localName, Iterator<? extends Namespace> namespaces)
创建一个新的EndElement- 参数
-
namespaceUri
- 新StartElement的QName的uri -
localName
- 新StartElement的QName的本地名称 -
prefix
- 新StartElement的QName的前缀 -
namespaces
- 实现名称空间超出范围的无序对象集可能为null - 结果
- 请求的EndElement的实例
-
createCharacters
public abstract Characters createCharacters(String content)
创建一个Characters事件,此方法不检查内容是否都是空白。 要创建空间事件,请使用#createSpace(String)- 参数
-
content
- 要创建的字符串 - 结果
- 一个角色事件
-
createCData
public abstract Characters createCData(String content)
在CData标志设置为true的情况下创建Characters事件- 参数
-
content
- 要创建的字符串 - 结果
- 一个角色事件
-
createSpace
public abstract Characters createSpace(String content)
创建一个isSpace标志设置为true的Characters事件- 参数
-
content
- 要创建的空间的内容 - 结果
- 一个角色事件
-
createIgnorableSpace
public abstract Characters createIgnorableSpace(String content)
创造一个可忽略的空间- 参数
-
content
- 创造的空间 - 结果
- 一个角色事件
-
createStartDocument
public abstract StartDocument createStartDocument()
创建StartDocument事件的新实例- 结果
- 一个StartDocument事件
-
createStartDocument
public abstract StartDocument createStartDocument(String encoding, String version, boolean standalone)
创建StartDocument事件的新实例- 参数
-
encoding
- 编码样式 -
version
- XML版本 -
standalone
- 独立状态可以设置为“true”或“false” - 结果
- 一个StartDocument事件
-
createStartDocument
public abstract StartDocument createStartDocument(String encoding, String version)
创建StartDocument事件的新实例- 参数
-
encoding
- 编码样式 -
version
- XML版本 - 结果
- 一个StartDocument事件
-
createStartDocument
public abstract StartDocument createStartDocument(String encoding)
创建StartDocument事件的新实例- 参数
-
encoding
- 编码样式 - 结果
- 一个StartDocument事件
-
createEndDocument
public abstract EndDocument createEndDocument()
创建EndDocument事件的新实例- 结果
- 一个EndDocument事件
-
createEntityReference
public abstract EntityReference createEntityReference(String name, EntityDeclaration declaration)
创建EntityReference事件的新实例- 参数
-
name
- 引用的名称 -
declaration
- 活动的声明 - 结果
- EntityReference事件
-
createProcessingInstruction
public abstract ProcessingInstruction createProcessingInstruction(String target, String data)
创建处理指令- 参数
-
target
- 处理指令的目标 -
data
- 处理指令的文本 - 结果
- ProcessingInstruction事件
-
-