- java.lang.Object
-
- javax.xml.stream.XMLEventFactory
-
public abstract class XMLEventFactory extends Object
该界面定义了一个用于创建XMLEvents实例的实用程序类- 从以下版本开始:
- 1.6
- Version:
- 1.2
- 另请参见:
-
StartElement
,EndElement
,ProcessingInstruction
,Comment
,Characters
,StartDocument
,EndDocument
,DTD
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protected
XMLEventFactory()
-
方法摘要
所有方法 静态方法 接口方法 抽象方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 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)
创建一个Charata事件,CData标志设置为trueabstract 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标志设置为trueabstract 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的一致性。 所有newInstance方法已被替换为相应的newFactory方法。 替换newFactory(java.lang.String, java.lang.ClassLoader)
方法定义行为没有变化。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的引用,它可以使用工厂来配置和获取流实例。
请注意,这是一种替代不推荐使用的newInstance()方法的新方法。 相对于不推荐使用的方法,此替换方法没有定义行为更改。
- 异常
-
FactoryConfigurationError
-在以下情况下service configuration error或者如果实现不可用或不能被实例化。
-
newInstance
@Deprecated(since="1.7") public static XMLEventFactory newInstance(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
已过时。 该方法已被弃用,以保持API的一致性。 所有newInstance方法已被替换为相应的newFactory方法。 替代newFactory(java.lang.String, java.lang.ClassLoader)
方法定义行为没有变化。创建一个新的工厂实例- 参数
-
factoryId
- 要查找的工厂名称,与属性名称相同 -
classLoader
- classLoader使用 - 结果
- 工厂实施
- 异常
-
FactoryConfigurationError
- 如果此工厂的实例无法加载
-
newFactory
public static XMLEventFactory newFactory(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
创建一个新的工厂实例。 如果classLoader参数为空,则使用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不一致,其中第一个参数是提供工厂实现的完全限定的工厂类名称。
- 参数
-
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
- 属性值设置为此值,可能不为空 -
localName
- 属性的XML名称的本地名称,localName不能为空 -
value
- 要设置的属性值,可能不为空 - 结果
- 具有指定值的属性
-
createAttribute
public abstract Attribute createAttribute(String localName, String value)
创建一个新的属性- 参数
-
localName
- 属性的XML名称的本地名称,localName不能为空 -
value
- 要设置的属性值可能不为空 - 结果
- 具有指定值的属性
-
createAttribute
public abstract Attribute createAttribute(QName name, String value)
创建一个新的属性- 参数
-
name
- 属性的限定名称,可能不为空 -
value
- 要设置的属性值,可能不为空 - 结果
- 具有指定值的属性
-
createNamespace
public abstract Namespace createNamespace(String namespaceURI)
创建一个新的默认命名空间- 参数
-
namespaceURI
- 默认的命名空间uri - 结果
- 具有指定值的命名空间
-
createNamespace
public abstract Namespace createNamespace(String prefix, String namespaceUri)
创建一个新的命名空间- 参数
-
prefix
- 此命名空间的前缀可能不为空 -
namespaceUri
- 属性值设置为此值,可能不为null - 结果
- 具有指定值的Namespace
-
createStartElement
public abstract StartElement createStartElement(QName name, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces)
创建一个新的StartElement。 通过传入遍历一组命名空间接口的迭代器,可以将命名空间添加到此StartElement。 可以通过传递遍历一组Attribute接口的迭代器将属性添加到此StartElement。- 参数
-
name
- 属性的限定名称可能不为空 -
attributes
- 实现属性添加到新的StartElement的可选的无序对象组可能为空 -
namespaces
- 实现命名空间以添加到新的StartElement的可选的无序对象组可能为空 - 结果
- 所请求的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。 通过传入遍历一组命名空间接口的迭代器,可以将命名空间添加到此StartElement。 可以通过传递遍历一组Attribute接口的迭代器将属性添加到此StartElement。- 参数
-
namespaceUri
- 新的StartElement的QName的uri -
localName
- 新StartElement的QName的本地名称 -
prefix
- 新的StartElement的QName的前缀 -
attributes
- 实现属性添加到新的StartElement的无序对象集合 -
namespaces
- 一个无序的对象集,用于实现添加到新的StartElement的Namespace - 结果
- 所请求的StartElement的一个实例
-
createStartElement
public abstract StartElement createStartElement(String prefix, String namespaceUri, String localName, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces, NamespaceContext context)
创建一个新的StartElement。 通过传入遍历一组命名空间接口的迭代器,可以将命名空间添加到此StartElement。 可以通过传递遍历一组Attribute接口的迭代器将属性添加到此StartElement。- 参数
-
namespaceUri
- 新的StartElement的QName的uri -
localName
- 新StartElement的QName的本地名称 -
prefix
- 新的StartElement的QName的前缀 -
attributes
- 实现添加到新的StartElement的属性的无序对象组可能为null -
namespaces
- 实现命名空间以添加到新的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)
创建一个Charata事件,CData标志设置为true- 参数
-
content
- 要创建的字符串 - 结果
- 一个人物事件
-
createSpace
public abstract Characters createSpace(String content)
创建一个字符事件,将isSpace标志设置为true- 参数
-
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事件
-
-