Module  java.xml
软件包  javax.xml.stream

Class XMLEventFactory

    • 构造方法详细信息

      • XMLEventFactory

        protected XMLEventFactory​()
    • 方法详细信息

      • newDefaultFactory

        public static XMLEventFactory newDefaultFactory​()
        创建一个 XMLEventFactory内建系统默认实现的新实例。
        结果
        XMLEventFactory内置系统默认实现的新实例。
        从以下版本开始:
        9
      • 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或者如果实现不可用或不能被实例化。
      • 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事件
      • createComment

        public abstract Comment createComment​(String text)
        创建评论
        参数
        text - 评论文本的评论事件
      • 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事件