JavaTM Platform
Standard Ed. 6

javax.xml.stream
接口 XMLEventWriter

所有超级接口:
XMLEventConsumer

public interface XMLEventWriter
extends XMLEventConsumer

此类是用于编写 XML 文档的顶层接口。此接口的实例不需要验证 XML 的格式。

从以下版本开始:
1.6
另请参见:
XMLEventReader, XMLEvent, Characters, ProcessingInstruction, StartElement, EndElement

方法摘要
 void add(XMLEvent event)
          向输出流添加事件。
 void add(XMLEventReader reader)
          将整个流添加到输出流,在 hasNext() 返回 false 前对 inputStream 参数调用 next()。
 void close()
          释放所有与此流关联的资源。
 void flush()
          将所有缓存事件写入到底层输出机制。
 NamespaceContext getNamespaceContext()
          返回当前名称空间上下文。
 String getPrefix(String uri)
          获取绑定 URI 的前缀。
 void setDefaultNamespace(String uri)
          将 URI 绑定到默认名称空间。
 void setNamespaceContext(NamespaceContext context)
          设置前缀的当前名称空间上下文和 URI 绑定。
 void setPrefix(String prefix, String uri)
          设置绑定 URI 的前缀。
 

方法详细信息

flush

void flush()
           throws XMLStreamException
将所有缓存事件写入到底层输出机制。

抛出:
XMLStreamException

close

void close()
           throws XMLStreamException
释放所有与此流关联的资源。

抛出:
XMLStreamException

add

void add(XMLEvent event)
         throws XMLStreamException
向输出流添加事件。添加 START_ELEMENT 将打开新的名称空间作用域,它将在写入相应的 END_ELEMENT 时被关闭。
添加到 writer 的事件的必需字段和可选字段
事件类型 必需字段 可选字段 必需行为
START_ELEMENT QName name namespace、attribute 通过用 XML 1.0 中对 START_ELEMENT 有效的语法写入事件的名称、名称空间和属性来编写 START_ELEMENT。名称是通过查找名称空间 URI 的前缀写入的。writer 可以配置为考虑 QName 的前缀。如果 writer 考虑前缀,则它必须使用在 QName 中设置的前缀。默认行为是在 EventWriter 的内部名称空间上下文中查找前缀的值。每个属性(如果有)使用在此表的属性部分所指定的行为写入。每个名称空间(如果有)使用在此表的名称空间部分所指定的行为写入。
END_ELEMENT Qname name 写入一个格式良好的 END_ELEMENT 标记。名称是通过查找名称空间 URI 的前缀写入的。writer 可以配置为考虑 QName 的前缀。如果 writer 考虑前缀,则它必须使用在 QName 中设置的前缀。默认行为是在 EventWriter 的内部名称空间上下文中查找前缀的值。如果 END_ELEMENT 名称和 START_ELEMENT 名称不匹配,则抛出 XMLStreamException。
ATTRIBUTE QName name、String value QName type 使用同样的算法写入属性,以根据 START_ELEMENT 中使用的词法查找词法格式。默认行为是使用双引号将属性值括起来并转义出现在值中的所有双引号。类型值被忽略。
NAMESPACE String prefix、String namespaceURI、boolean isDefaultNamespaceDeclaration 写入一个名称空间声明。如果名称空间是默认名称空间声明(isDefault 为 true),则写入 xmlns="$namespaceURI",前缀是可选项。如果 isDefault 为 false,则必须声明前缀,writer 必须将 xmlns 附加为前缀并写出一个标准前缀声明。
PROCESSING_INSTRUCTION String target、String data 数据不需要附加前缀,可以为 null。目标是必需的,不可以为 null。writer 将直接在目标之后编写数据部分,并用合适的 XML 1.0 语法封闭起来
COMMENT String comment 如果存在注释(不为 null),则写入该注释,否则写入一个空注释
START_DOCUMENT String encoding、boolean standalone、String version 不需要将 START_DOCUMENT 事件写入流。如果存在,则属性以适当的 XML 声明语法写入
END_DOCUMENT 不向输出写入任何内容
DTD String DocumentTypeDefinition DocumentTypeDefinition 被写入输出

指定者:
接口 XMLEventConsumer 中的 add
参数:
event - 要被添加的事件
抛出:
XMLStreamException

add

void add(XMLEventReader reader)
         throws XMLStreamException
将整个流添加到输出流,在 hasNext() 返回 false 前对 inputStream 参数调用 next()。此方法应被视为一个便捷方法,它将在事件 reader 中的所有事件中执行以下循环,并对每个事件上调用 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 - 要用于此 writer 的名称空间上下文
抛出:
XMLStreamException

getNamespaceContext

NamespaceContext getNamespaceContext()
返回当前名称空间上下文。

返回:
当前名称空间上下文

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策