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

Interface XMLStreamWriter



  • public interface XMLStreamWriter
    XMLStreamWriter接口指定如何编写XML。 XMLStreamWriter在其输入上执行良好的形式检查。 但是,writeCharacters方法需要转义&,<和>对于属性值,writeAttribute方法将转义上述字符加“,以确保所有字符内容和属性值都已正确形成,每个NAMESPACE和ATTRIBUTE必须单独写入。 XML Namespaces, javax.xml.stream.isRepairingNamespaces and write method behaviour Method isRepairingNamespaces == true isRepairingNamespaces == false namespaceURI bound namespaceURI unbound namespaceURI bound namespaceURI unbound writeAttribute(namespaceURI, localName, value) prefix:localName="value" [1] xmlns:{generated}="namespaceURI" {generated}:localName="value" prefix:localName="value" [1] XMLStreamException writeAttribute(prefix, namespaceURI, localName, value) bound to same prefix:
    prefix:localName="value" [1]

    bound to different prefix:
    xmlns:{generated}="namespaceURI" {generated}:localName="value" xmlns:prefix="namespaceURI" prefix:localName="value" [3] bound to same prefix:
    prefix:localName="value" [1][2]

    bound to different prefix:
    XMLStreamException[2] xmlns:prefix="namespaceURI" prefix:localName="value" [2][5] writeStartElement(namespaceURI, localName)

    writeEmptyElement(namespaceURI, localName) <prefix:localName> [1] <{generated}:localName xmlns:{generated}="namespaceURI"> prefix:localName> [1] XMLStreamException writeStartElement(prefix, localName, namespaceURI)

    writeEmptyElement(prefix, localName, namespaceURI) bound to same prefix:
    <prefix:localName> [1]

    bound to different prefix:
    <{generated}:localName xmlns:{generated}="namespaceURI"> <prefix:localName xmlns:prefix="namespaceURI"> [4] bound to same prefix:
    <prefix:localName> [1]

    bound to different prefix:
    XMLStreamException <prefix:localName>  Notes:
    • [1] if namespaceURI == default Namespace URI, then no prefix is written
    • [2] if prefix == "" || null && namespaceURI == "", then no prefix or Namespace declaration is generated or written
    • [3] if prefix == "" || null, then a prefix is randomly generated
    • [4] if prefix == "" || null, then it is treated as the default Namespace and no prefix is generated or written, an xmlns declaration is generated and written if the namespaceURI is unbound
    • [5] if prefix == "" || null, then it is treated as an invalid attempt to define the default Namespace and an XMLStreamException is thrown
    从以下版本开始:
    1.6
    Version:
    1.0
    另请参见:
    XMLOutputFactoryXMLStreamReader
    • 方法详细信息

      • writeStartElement

        void writeStartElement​(String localName)
                        throws XMLStreamException
        将开始标签写入输出。 所有writeStartElement方法在内部命名空间上下文中打开一个新的范围。 编写相应的EndElement会使范围被关闭。
        参数
        localName - 标记的本地名称,可能不为空
        异常
        XMLStreamException
      • writeStartElement

        void writeStartElement​(String namespaceURI,
                               String localName)
                        throws XMLStreamException
        将开始标签写入输出
        参数
        namespaceURI - 要使用的前缀的namespaceURI可能不为null
        localName - 标记的本地名称,可能不为空
        异常
        XMLStreamException - 如果命名空间URI未绑定到前缀,并且javax.xml.stream.isRepairingNamespaces尚未设置为true
      • writeStartElement

        void writeStartElement​(String prefix,
                               String localName,
                               String namespaceURI)
                        throws XMLStreamException
        将开始标签写入输出
        参数
        localName - 标记的本地名称,可能不为空
        prefix - 标签的前缀可能不为空
        namespaceURI - 将前缀绑定到的uri可能不为null
        异常
        XMLStreamException
      • writeEmptyElement

        void writeEmptyElement​(String namespaceURI,
                               String localName)
                        throws XMLStreamException
        将一个空的元素标签写入输出
        参数
        namespaceURI - 将标签绑定到的uri可能不为null
        localName - 标记的本地名称,可能不为空
        异常
        XMLStreamException - 如果命名空间URI未绑定到前缀,并且javax.xml.stream.isRepairingNamespaces尚未设置为true
      • writeEmptyElement

        void writeEmptyElement​(String prefix,
                               String localName,
                               String namespaceURI)
                        throws XMLStreamException
        将一个空的元素标签写入输出
        参数
        prefix - 标签的前缀可能不为空
        localName - 标记的本地名称,可能不为空
        namespaceURI - 将标签绑定到的uri可能不为空
        异常
        XMLStreamException
      • writeEmptyElement

        void writeEmptyElement​(String localName)
                        throws XMLStreamException
        将一个空的元素标签写入输出
        参数
        localName - 标记的本地名称,可能不为空
        异常
        XMLStreamException
      • writeEndElement

        void writeEndElement​()
                      throws XMLStreamException
        根据写入器的内部状态将结束标记写入输出,以确定事件的前缀和本地名称。
        异常
        XMLStreamException
      • writeAttribute

        void writeAttribute​(String prefix,
                            String namespaceURI,
                            String localName,
                            String value)
                     throws XMLStreamException
        将一个属性写入输出流
        参数
        prefix - 此属性的前缀
        namespaceURI - 此属性的前缀的uri
        localName - 属性的本地名称
        value - 属性的值
        异常
        IllegalStateException - 如果当前状态不允许属性写入
        XMLStreamException - 如果命名空间URI未绑定到前缀,并且javax.xml.stream.isRepairingNamespaces尚未设置为true
      • writeAttribute

        void writeAttribute​(String namespaceURI,
                            String localName,
                            String value)
                     throws XMLStreamException
        将一个属性写入输出流
        参数
        namespaceURI - 此属性的前缀的uri
        localName - 属性的本地名称
        value - 属性的值
        异常
        IllegalStateException - 如果当前状态不允许属性写入
        XMLStreamException - 如果命名空间URI未绑定到前缀,并且javax.xml.stream.isRepairingNamespaces尚未设置为true
      • writeNamespace

        void writeNamespace​(String prefix,
                            String namespaceURI)
                     throws XMLStreamException
        将命名空间写入输出流如果此方法的前缀参数为空字符串“xmlns”,或为null,则此方法将委托为writeDefaultNamespace
        参数
        prefix - 将此命名空间绑定到的前缀
        namespaceURI - 绑定前缀的uri
        异常
        IllegalStateException - 如果当前状态不允许命名空间写入
        XMLStreamException
      • writeProcessingInstruction

        void writeProcessingInstruction​(String target,
                                        String data)
                                 throws XMLStreamException
        写一个处理指令
        参数
        target - 处理指令的目标可能不为空
        data - 处理指令中包含的数据可能不为空
        异常
        XMLStreamException
      • writeStartDocument

        void writeStartDocument​(String encoding,
                                String version)
                         throws XMLStreamException
        编写XML声明 请注意,encoding参数不设置底层输出的实际编码。 当使用XMLOutputFactory创建XMLStreamWriter的实例时,必须设置该值
        参数
        encoding - xml声明的编码
        version - xml文档的版本
        异常
        XMLStreamException - 如果给定的编码与底层流的编码不匹配
      • writeCharacters

        void writeCharacters​(char[] text,
                             int start,
                             int len)
                      throws XMLStreamException
        将文本写入输出
        参数
        text - 要写的值
        start - 数组中的起始位置
        len - 要写入的字符数
        异常
        XMLStreamException
      • setPrefix

        void setPrefix​(String prefix,
                       String uri)
                throws XMLStreamException
        设置uri所绑定的前缀。 此前缀绑定在当前START_ELEMENT / END_ELEMENT对的范围内。 如果在编写START_ELEMENT之前调用此方法,则前缀将绑定到根目录中。
        参数
        prefix - 绑定到uri的前缀可能不为null
        uri - 绑定到前缀的uri可能为null
        异常
        XMLStreamException
      • setDefaultNamespace

        void setDefaultNamespace​(String uri)
                          throws XMLStreamException
        将URI绑定到默认命名空间此URI绑定在当前START_ELEMENT / END_ELEMENT对的范围内。 如果在写入START_ELEMENT之前调用此方法,则uri将绑定到根范围中。
        参数
        uri - 绑定到默认命名空间的uri可能为null
        异常
        XMLStreamException
      • setNamespaceContext

        void setNamespaceContext​(NamespaceContext context)
                          throws XMLStreamException
        设置前缀和uri绑定的当前命名空间上下文。 此上下文成为写入的根命名空间上下文,并将替换当前根命名空间上下文。 对setPrefix和setDefaultNamespace的后续调用将使用传递给方法的上下文作为解析命名空间的根上下文来绑定命名空间。 此方法只能在文档开头调用一次。 它不会导致命名空间被声明。 如果在命名空间上下文中找到了前缀映射的命名空间URI,则将其视为已声明,并且StreamWriter可能会使用该前缀。
        参数
        context - 用于此作者的命名空间上下文可能不为空
        异常
        XMLStreamException
      • getNamespaceContext

        NamespaceContext getNamespaceContext​()
        返回当前的命名空间上下文。
        结果
        当前的NamespaceContext