Module java.xml
Package javax.xml.stream

Class XMLEventFactory

java.lang.Object
javax.xml.stream.XMLEventFactory

public abstract class XMLEventFactory extends Object
该接口定义了一个用于创建XMLEvents实例的实用程序类。
自:
1.6
参见:
  • Constructor Details

    • XMLEventFactory

      protected XMLEventFactory()
      保护构造函数,防止实例化。请改用newFactory()
  • Method Details

    • newDefaultFactory

      public static XMLEventFactory newDefaultFactory()
      创建XMLEventFactory内置系统默认实现的新实例。
      返回:
      XMLEventFactory内置系统默认实现的新实例。
      自:
      9
    • newInstance

      public static XMLEventFactory newInstance() throws FactoryConfigurationError
      以与newFactory()方法完全相同的方式创建工厂的新实例。
      返回:
      XMLEventFactory的一个实例
      抛出:
      FactoryConfigurationError - 如果无法加载此工厂的实例
    • newFactory

      public static XMLEventFactory newFactory() throws FactoryConfigurationError
      创建工厂的新实例。此方法使用JAXP Lookup Mechanism来确定要加载的XMLEventFactory实现类。

      一旦应用程序获得了对XMLEventFactory的引用,就可以使用工厂来配置和获取流实例。

      返回:
      XMLEventFactory的一个实例
      抛出:
      FactoryConfigurationError - 如果存在服务配置错误,或者实现不可用或无法实例化。
    • 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 replacement newFactory(java.lang.String, java.lang.ClassLoader) method defines no changes in behavior.
      创建工厂的新实例
      参数:
      factoryId - 要查找的工厂的名称,与属性名称相同
      classLoader - 要使用的类加载器
      返回:
      工厂实现
      抛出:
      FactoryConfigurationError - 如果无法加载此工厂的实例
    • newFactory

      public static XMLEventFactory newFactory(String factoryId, ClassLoader classLoader) throws FactoryConfigurationError
      创建工厂的新实例。如果classLoader参数为null,则使用ContextClassLoader。

      此方法使用以下有序查找过程来确定要加载的XMLEventFactory实现类:

      • 使用由factoryId标识的系统属性的值。
      • 使用配置文件中设置的属性factoryId的值,默认情况下为jaxp.properties。如果文件存在并且文件中指定了属性factoryId,则其值将用作实现类。

      • 如果factoryId为"javax.xml.stream.XMLEventFactory",则使用由ServiceLoader类定义的服务提供程序加载机制,尝试使用指定的ClassLoader 定位和加载服务的实现。如果classLoader为null,则将应用默认加载机制:即,服务提供程序加载设施将使用当前线程的上下文类加载器来尝试加载服务。如果上下文类加载器为null,则将使用系统类加载器

      • 否则,抛出FactoryConfigurationError

      请注意,这是一个替代已弃用的newInstance(String factoryId, ClassLoader classLoader)方法的新方法。相对于已弃用的方法,此替换方法未定义行为上的任何更改。

      API注释:
      此处定义的factoryId参数与其他JAXP工厂的参数不一致,其他工厂的第一个参数是提供工厂实现的完全限定工厂类名。
      参数:
      factoryId - 要查找的工厂的名称,与属性名称相同
      classLoader - 要使用的类加载器
      返回:
      工厂实现
      抛出:
      FactoryConfigurationError - 如果存在服务配置错误,或者实现不可用或无法实例化。
    • 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 - 属性值设置为此值,不能为空
      返回:
      具有指定值的命名空间
    • createStartElement

      public abstract StartElement createStartElement(QName name, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces)
      创建一个新的StartElement。可以通过传入遍历一组Namespace接口的迭代器来向此StartElement添加命名空间。可以通过传入遍历一组Attribute接口的迭代器来向此StartElement添加属性。
      参数:
      name - 属性的限定名称,不能为空
      attributes - 一个可选的无序对象集合,实现了Attribute接口,用于添加到新的StartElement中,可以为空
      namespaces - 一个可选的无序对象集合,实现了Namespace接口,用于添加到新的StartElement中,可以为空
      返回:
      请求的StartElement的实例
    • createStartElement

      public abstract StartElement createStartElement(String prefix, String namespaceUri, String localName)
      创建一个新的StartElement。这将默认NamespaceContext为一个空的NamespaceContext。查询此事件的命名空间或属性将导致返回一个空的迭代器。
      参数:
      prefix - 新StartElement的QName的前缀
      namespaceUri - 新StartElement的QName的URI
      localName - 新StartElement的QName的本地名称
      返回:
      请求的StartElement的实例
    • createStartElement

      public abstract StartElement createStartElement(String prefix, String namespaceUri, String localName, Iterator<? extends Attribute> attributes, Iterator<? extends Namespace> namespaces)
      创建一个新的StartElement。可以通过传入遍历一组Namespace接口的迭代器来向此StartElement添加命名空间。可以通过传入遍历一组Attribute接口的迭代器来向此StartElement添加属性。
      参数:
      prefix - 新StartElement的QName的前缀
      namespaceUri - 新StartElement的QName的URI
      localName - 新StartElement的QName的本地名称
      attributes - 一个无序对象集合,实现了Attribute接口,用于添加到新的StartElement中
      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接口的迭代器来向此StartElement添加命名空间。可以通过传入遍历一组Attribute接口的迭代器来向此StartElement添加属性。
      参数:
      prefix - 新StartElement的QName的前缀
      namespaceUri - 新StartElement的QName的URI
      localName - 新StartElement的QName的本地名称
      attributes - 一个无序对象集合,实现了Attribute接口,用于添加到新的StartElement中,可以为空
      namespaces - 一个无序对象集合,实现了Namespace接口,用于添加到新的StartElement中,可以为空
      context - 此元素的命名空间上下文
      返回:
      请求的StartElement的实例
    • createEndElement

      public abstract EndElement createEndElement(QName name, Iterator<? extends Namespace> namespaces)
      创建一个新的EndElement
      参数:
      name - EndElement的限定名称
      namespaces - 一个可选的无序对象集合,实现了Namespace接口,已经超出范围,可以为空
      返回:
      请求的EndElement的实例
    • createEndElement

      public abstract EndElement createEndElement(String prefix, String namespaceUri, String localName)
      创建一个新的EndElement
      参数:
      prefix - 新StartElement的QName的前缀
      namespaceUri - 新StartElement的QName的URI
      localName - 新StartElement的QName的本地名称
      返回:
      请求的EndElement的实例
    • createEndElement

      public abstract EndElement createEndElement(String prefix, String namespaceUri, String localName, Iterator<? extends Namespace> namespaces)
      创建一个新的EndElement
      参数:
      prefix - 新StartElement的QName的前缀
      namespaceUri - 新StartElement的QName的URI
      localName - 新StartElement的QName的本地名称
      namespaces - 一个无序对象集合,实现了Namespace接口,已经超出范围,可以为空
      返回:
      请求的EndElement的实例
    • createCharacters

      public abstract Characters createCharacters(String content)
      创建一个Characters事件,此方法不检查内容是否全为空格。要创建一个空格事件,请使用#createSpace(String)
      参数:
      content - 要创建的字符串
      返回:
      一个Characters事件
    • createCData

      public abstract Characters createCData(String content)
      创建一个带有CData标志设置为true的Characters事件
      参数:
      content - 要创建的字符串
      返回:
      一个Characters事件
    • createSpace

      public abstract Characters createSpace(String content)
      创建一个带有isSpace标志设置为true的Characters事件
      参数:
      content - 要创建的空格内容
      返回:
      一个Characters事件
    • createIgnorableSpace

      public abstract Characters createIgnorableSpace(String content)
      创建一个可忽略的空格
      参数:
      content - 要创建的空格
      返回:
      一个Characters事件
    • 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事件
    • createComment

      public abstract Comment createComment(String text)
      创建一个注释。
      参数:
      text - 注释的文本
      返回:
      一个Comment事件
    • createProcessingInstruction

      public abstract ProcessingInstruction createProcessingInstruction(String target, String data)
      创建一个处理指令
      参数:
      target - 处理指令的目标
      data - 处理指令的文本
      返回:
      一个ProcessingInstruction事件
    • createDTD

      public abstract DTD createDTD(String dtd)
      创建一个文档类型定义事件。此字符串包含整个与XML 1.0规范中的doctypedecl匹配的文档类型声明
      参数:
      dtd - 文档类型定义的文本
      返回:
      一个DTD事件