Module java.xml
Package javax.xml.stream

Interface XMLEventWriter

所有超级接口:
XMLEventConsumer

public interface XMLEventWriter extends XMLEventConsumer
这是用于编写XML文档的顶层接口。不需要验证XML的形式的实例。
自从:
1.6
参见:
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(XMLEvent event)
    向输出流添加一个事件。添加START_ELEMENT将打开一个新的命名空间范围,当写入相应的END_ELEMENT时将关闭该范围。
    void
    add(XMLEventReader reader)
    将整个流添加到输出流中,在inputStream参数上调用next()直到hasNext()返回false。这应该被视为一个方便的方法,将对事件读取器中的所有事件执行以下循环,并对每个事件调用add。
    void
    close()
    释放与此流关联的任何资源。
    void
    flush()
    将任何缓存的事件写入底层输出机制。
    返回当前的命名空间上下文。
    获取uri绑定的前缀。
    void
    将URI绑定到默认命名空间。此URI绑定在当前START_ELEMENT / END_ELEMENT对的范围内。
    void
    设置前缀和uri绑定的当前命名空间上下文。
    void
    setPrefix(String prefix, String uri)
    设置uri绑定的前缀。
  • Method Details

    • flush

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

      void close() throws XMLStreamException
      释放与此流关联的任何资源。
      抛出:
      XMLStreamException - 如果发生错误
    • add

      void add(XMLEvent event) throws XMLStreamException
      向输出流添加一个事件。添加START_ELEMENT将打开一个新的命名空间范围,当写入相应的END_ELEMENT时将关闭该范围。
      为写入的事件所需和可选字段
      事件类型 必需字段 可选字段 必需行为
      START_ELEMENT QName name namespaces , attributes 通过以XML 1.0有效语法写入事件的名称、命名空间和属性来写入START_ELEMENT。通过查找命名空间uri的前缀来写入名称。写入器可以配置为遵守QNames的前缀。如果写入器遵守前缀,则必须使用QName上设置的前缀。默认行为是查找EventWriter内部命名空间上下文中前缀的值。每个属性(如果有)都使用此表的属性部分中指定的行为进行写入。每个命名空间(如果有)都使用此表的命名空间部分中指定的行为进行写入。
      END_ELEMENT Qname name None 将写入一个格式良好的END_ELEMENT标记。通过查找命名空间uri的前缀来写入名称。写入器可以配置为遵守QNames的前缀。如果写入器遵守前缀,则必须使用QName上设置的前缀。默认行为是查找EventWriter内部命名空间上下文中前缀的值。如果END_ELEMENT名称与START_ELEMENT名称不匹配,则抛出XMLStreamException。
      ATTRIBUTE QName name , String value QName type 使用与START_ELEMENT中找到词法形式相同的算法写入属性。默认情况下,使用双引号包装属性值,并转义值中找到的任何双引号。类型值将被忽略。
      NAMESPACE String prefix, String namespaceURI, boolean isDefaultNamespaceDeclaration None 写入命名空间声明。如果命名空间是默认命名空间声明(isDefault为true),则写入xmlns="$namespaceURI",前缀是可选的。如果isDefault为false,则必须声明前缀,并且写入器必须在前缀前添加xmlns并写出标准前缀声明。
      PROCESSING_INSTRUCTION None String target, String data 数据不需要存在,可以为null。目标是必需的,不能为null。写入器将在目标之后直接写入数据部分,用适当的XML 1.0语法括起来。
      COMMENT None String comment 如果注释存在(不为null),则写入该注释,否则写入一个空注释
      START_DOCUMENT None String encoding , boolean standalone, String version 不需要写入START_DOCUMENT事件到流中。如果存在,则属性将写入适当的XML声明语法中
      END_DOCUMENT None None 不会写入任何内容到输出
      DTD String DocumentTypeDefinition None 将DocumentTypeDefinition写入输出
      指定者:
      add 在接口 XMLEventConsumer
      参数:
      event - 要添加的事件
      抛出:
      XMLStreamException - 如果发生错误
    • add

      void add(XMLEventReader reader) throws XMLStreamException
      将整个流添加到输出流中,在inputStream参数上调用next()直到hasNext()返回false。这应该被视为一个方便的方法,将对事件读取器中的所有事件执行以下循环,并对每个事件调用add。
      参数:
      reader - 要添加到输出的事件流
      抛出:
      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的前缀
      uri - 要绑定到前缀的uri
      抛出:
      XMLStreamException - 如果发生错误
    • setDefaultNamespace

      void setDefaultNamespace(String uri) throws XMLStreamException
      将URI绑定到默认命名空间。此URI绑定在当前START_ELEMENT / END_ELEMENT对的范围内。如果在写入START_ELEMENT之前调用此方法,则uri将绑定在根范围内。
      参数:
      uri - 要绑定到默认命名空间的uri
      抛出:
      XMLStreamException - 如果发生错误
    • setNamespaceContext

      void setNamespaceContext(NamespaceContext context) throws XMLStreamException
      设置前缀和uri绑定的当前命名空间上下文。此上下文将成为写入的根命名空间上下文,并将替换当前的根命名空间上下文。后续调用setPrefix和setDefaultNamespace将使用传递给方法的上下文作为解析命名空间的根上下文。
      参数:
      context - 用于此写入器的命名空间上下文
      抛出:
      XMLStreamException - 如果发生错误
    • getNamespaceContext

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