模块 java.xml

接口 XMLStreamWriter


public interface XMLStreamWriter
XMLStreamWriter 接口指定如何编写 XML。 XMLStreamWriter 不对其输入执行良好的格式检查。但是writeCharacters方法需要对&、<和>进行转义 对于属性值,writeAttribute方法会对上面的字符加上"进行转义,以确保所有字符内容和属性值的格式正确。每个NAMESPACE和ATTRIBUTE都必须单独写入。
XML 命名空间,javax.xml.stream.isRepairingNamespaces 和写入方法行为
Method isRepairingNamespaces == 真 isRepairingNamespaces == 错误
namespaceURI 绑定 namespaceURI 未绑定 namespaceURI 绑定 namespaceURI 未绑定
writeAttribute(namespaceURI, localName, value) 前缀:localName =“值”[1] xmlns:{generated}="namespaceURI" {generated}:localName="value" 前缀:localName =“值”[1] XMLStreamException
writeAttribute(prefix, namespaceURI, localName, value) 绑定到相同的前缀:
前缀:localName =“值”[1]

绑定到不同的前缀:
xmlns:{generated}="namespaceURI" {generated}:localName="value"
xmlns:prefix="namespaceURI" prefix:localName="value"[3] 绑定到相同的前缀:
前缀:localName =“值”[1][2]

绑定到不同的前缀:
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)
绑定到相同的前缀:
<prefix:localName>  [1]

绑定到不同的前缀:
<{generated}:localName xmlns:{generated}="namespaceURI">
<prefix:localName xmlns:prefix="namespaceURI">  [4] 绑定到相同的前缀:
<prefix:localName>  [1]

绑定到不同的前缀:
XMLStreamException
<prefix:localName>  
笔记:
  • [1] 如果namespaceURI == default Namespace URI,则不写前缀
  • [2] 如果前缀 == "" || null && namespaceURI == "",则不生成或写入任何前缀或命名空间声明
  • [3] 如果前缀 == "" || null,则随机生成一个前缀
  • [4] 如果前缀 == "" || null,然后将其视为默认命名空间,并且不生成或写入任何前缀,如果未绑定 namespaceURI,则生成并写入 xmlns 声明
  • [5] 如果前缀 == "" || null,则它被视为定义默认命名空间的无效尝试并抛出 XMLStreamException
自从:
1.6
参见:
  • 方法详情

    • 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
      将开始标记写入输出
      参数:
      prefix - 标签的前缀,不能为空
      localName - 标签的本地名称,不能为空
      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,不能为 null
      抛出:
      XMLStreamException - 如果发生错误
    • writeEmptyElement

      void writeEmptyElement(String  localName) throws XMLStreamException
      将空元素标记写入输出
      参数:
      localName - 标签的本地名称,不能为空
      抛出:
      XMLStreamException - 如果发生错误
    • writeEndElement

      void writeEndElement() throws XMLStreamException
      根据编写器的内部状态将结束标记写入输出以确定事件的前缀和本地名称。
      抛出:
      XMLStreamException - 如果发生错误
    • writeEndDocument

      void writeEndDocument() throws XMLStreamException
      关闭任何开始标签并写入相应的结束标签。
      抛出:
      XMLStreamException - 如果发生错误
    • close

      void close() throws XMLStreamException
      关闭此编写器并释放与编写器关联的所有资源。这不能关闭底层输出流。
      抛出:
      XMLStreamException - 如果发生错误
    • flush

      void flush() throws XMLStreamException
      将任何缓存数据写入底层输出机制。
      抛出:
      XMLStreamException - 如果发生错误
    • writeAttribute

      void writeAttribute(String  localName, String  value) throws XMLStreamException
      将属性写入不带前缀的输出流。
      参数:
      localName - 属性的本地名称
      value - 属性值
      抛出:
      IllegalStateException - 如果当前状态不允许写入属性
      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 - 如果发生错误
    • writeDefaultNamespace

      void writeDefaultNamespace(String  namespaceURI) throws XMLStreamException
      将默认命名空间写入流
      参数:
      namespaceURI - 将默认命名空间绑定到的 uri
      抛出:
      IllegalStateException - 如果当前状态不允许写入命名空间
      XMLStreamException - 如果发生错误
    • writeComment

      void writeComment(String  data) throws XMLStreamException
      写入包含数据的 xml 注释
      参数:
      data - 评论中包含的数据,可能为空
      抛出:
      XMLStreamException - 如果发生错误
    • writeProcessingInstruction

      void writeProcessingInstruction(String  target) throws XMLStreamException
      编写处理指令
      参数:
      target - 处理指令的目标,不能为空
      抛出:
      XMLStreamException - 如果发生错误
    • writeProcessingInstruction

      void writeProcessingInstruction(String  target, String  data) throws XMLStreamException
      编写处理指令
      参数:
      target - 处理指令的目标,不能为空
      data - 处理指令中包含的数据,不能为空
      抛出:
      XMLStreamException - 如果发生错误
    • writeCData

      void writeCData(String  data) throws XMLStreamException
      写入 CData 部分
      参数:
      data - CData 部分中包含的数据,不能为空
      抛出:
      XMLStreamException - 如果发生错误
    • writeDTD

      void writeDTD(String  dtd) throws XMLStreamException
      编写 DTD 部分。该字符串表示 XML 1.0 规范中的整个 doctypedecl 产品。
      参数:
      dtd - 要写入的 DTD
      抛出:
      XMLStreamException - 如果发生错误
    • writeEntityRef

      void writeEntityRef(String  name) throws XMLStreamException
      写入实体引用
      参数:
      name - 实体名称
      抛出:
      XMLStreamException - 如果发生错误
    • writeStartDocument

      void writeStartDocument() throws XMLStreamException
      编写 XML 声明。默认 XML 版本为 1.0,编码为 utf-8
      抛出:
      XMLStreamException - 如果发生错误
    • writeStartDocument

      void writeStartDocument(String  version) throws XMLStreamException
      编写 XML 声明。将 XML 版本默认为 1.0
      参数:
      version - xml 文档的版本
      抛出:
      XMLStreamException - 如果发生错误
    • writeStartDocument

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

      void writeCharacters(String  text) throws XMLStreamException
      将文本写入输出
      参数:
      text - 要写入的值
      抛出:
      XMLStreamException - 如果发生错误
    • writeCharacters

      void writeCharacters(char[] text, int start, int len) throws XMLStreamException
      将文本写入输出
      参数:
      text - 要写入的值
      start - 数组中的起始位置
      len - 要写入的字符数
      抛出:
      XMLStreamException - 如果发生错误
    • getPrefix

      String  getPrefix(String  uri) throws XMLStreamException
      获取 uri 绑定到的前缀。
      参数:
      uri - 前缀绑定到的 uri
      返回:
      前缀或空
      抛出:
      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()
      返回当前命名空间上下文。
      返回:
      当前的命名空间上下文
    • getProperty

      Object  getProperty(String  name) throws IllegalArgumentException
      从底层实现中获取功能/属性的值
      参数:
      name - 属性的名称,不能为空
      返回:
      财产的值
      抛出:
      IllegalArgumentException - 如果不支持该属性
      NullPointerException - 如果名称为空