public interface XMLStreamWriter
XMLStreamWriter 接口指定如何编写 XML。XMLStreamWriter 不在其输入中检查格式是否良好。但是,writeCharacters 方法需要转义属性值的 &、< 和 >。writeAttribute 方法将转义上述字符以及 ",以确保所有字符内容和属性值都是格式良好的。 必须单独编写每个 NAMESPACE 和 ATTRIBUTE。
XML Namespaces、javax.xml.stream.isRepairingNamespaces 和写入方法行为 |
||||
---|---|---|---|---|
方法 | isRepairingNamespaces == true |
isRepairingNamespaces == false |
||
namespaceURI 绑定 | namespaceURI 未绑定 | namespaceURI 绑定 | namespaceURI 未绑定 | |
writeAttribute(namespaceURI, localName, value) |
prefix:localName="value" [1] | xmlns:{generated}="namespaceURI" {generated}:localName="value" | prefix:localName="value" [1] |
XMLStreamException |
writeAttribute(prefix, namespaceURI, localName, value) |
绑定到相同的前缀: prefix:localName="value" [1] 绑定到不同的前缀: xmlns:{generated}="namespaceURI" {generated}:localName="value" |
xmlns:prefix="namespaceURI" prefix:localName="value" [3] |
绑定到相同的前缀: prefix:localName="value" [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> |
注:
|
XMLOutputFactory
,
XMLStreamReader
方法摘要 | |
---|---|
void |
close() 关闭此 writer 并释放与 writer 关联的所有资源。 |
void |
flush() 将所有缓存数据写入底层输出机制。 |
NamespaceContext |
getNamespaceContext() 返回当前名称空间上下文。 |
String |
getPrefix(String uri) 获取绑定 URI 的前缀 |
Object |
getProperty(String name) 从底层实现获取功能/属性值 |
void |
setDefaultNamespace(String uri) 将 URI 绑定到默认名称空间。 |
void |
setNamespaceContext(NamespaceContext context) 设置前缀和 URI 绑定的当前名称空间上下文。 |
void |
setPrefix(String prefix, String uri) 设置绑定 URI 的前缀。 |
void |
writeAttribute(String localName, String value) 向输出流写入一个不带前缀的属性。 |
void |
writeAttribute(String namespaceURI, String localName, String value) 向输出流写入一个属性 |
void |
writeAttribute(String prefix, String namespaceURI, String localName, String value) 向输出流写入一个属性 |
void |
writeCData(String data) 编写 CData 节 |
void |
writeCharacters(char[] text, int start, int len) 向输出写入文本 |
void |
writeCharacters(String text) 向输出写入文本 |
void |
writeComment(String data) 编写一个包含数据的 XML 注释 |
void |
writeDefaultNamespace(String namespaceURI) 向流写入默认名称空间 |
void |
writeDTD(String dtd) 编写 DTD 节。 |
void |
writeEmptyElement(String localName) 向输出写入一个空元素标记 |
void |
writeEmptyElement(String namespaceURI, String localName) 向输出写入一个空元素标记 |
void |
writeEmptyElement(String prefix, String localName, String namespaceURI) 向输出写入一个空元素标记 |
void |
writeEndDocument() 关闭所有开始标记并写入相应的结束标记。 |
void |
writeEndElement() 向依赖于 writer 内部状态的输出写入一个结束标记,以此确定事件的前缀和本地名称。 |
void |
writeEntityRef(String name) 编写一个实体引用 |
void |
writeNamespace(String prefix, String namespaceURI) 向输出流写入一个名称空间。 |
void |
writeProcessingInstruction(String target) 编写一条处理指令 |
void |
writeProcessingInstruction(String target, String data) 编写一条处理指令 |
void |
writeStartDocument() 编写 XML 声明。 |
void |
writeStartDocument(String version) 编写 XML 声明。 |
void |
writeStartDocument(String encoding, String version) 编写 XML 声明。 |
void |
writeStartElement(String localName) 向输出写入一个开始标记。 |
void |
writeStartElement(String namespaceURI, String localName) 向输出写入一个开始标记 |
void |
writeStartElement(String prefix, String localName, String namespaceURI) 向输出写入一个开始标记 |
方法详细信息 |
---|
void writeStartElement(String localName) throws XMLStreamException
localName
- 标记的本地名称,不可以为 null
XMLStreamException
void writeStartElement(String namespaceURI, String localName) throws XMLStreamException
namespaceURI
- 要使用的前缀的 namespaceURI ,不可以为 null
localName
- 标记的本地名称,不可以为 null
XMLStreamException
- 如果名称空间 URI 未绑定到前缀并且 javax.xml.stream.isRepairingNamespaces 未设置为 true
void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException
localName
- 标记的本地名称,不可以为 null
prefix
- 标记的前缀,不可以为 null
namespaceURI
- 要绑定前缀的 URI,不可以为 null
XMLStreamException
void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException
namespaceURI
- 要绑定标记的 URI,不可以为 null
localName
- 标记的本地名称,不可以为 null
XMLStreamException
- 如果名称空间 URI 未绑定到前缀并且 javax.xml.stream.isRepairingNamespaces 未设置为 true
void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException
prefix
- 标记的前缀,不可以为 null
localName
- 标记的本地名称,不可以为 null
namespaceURI
- 要绑定标记的 URI,不可以为 null
XMLStreamException
void writeEmptyElement(String localName) throws XMLStreamException
localName
- 标记的本地名称,不可以为 null
XMLStreamException
void writeEndElement() throws XMLStreamException
void writeEndDocument() throws XMLStreamException
void close() throws XMLStreamException
void flush() throws XMLStreamException
void writeAttribute(String localName, String value) throws XMLStreamException
localName
- 属性的本地名称
value
- 属性的值
IllegalStateException
- 如果当前状态不允许 Attribute 写入
XMLStreamException
void writeAttribute(String prefix, String namespaceURI, String localName, String value) throws XMLStreamException
prefix
- 此属性的前缀
namespaceURI
- 此属性前缀的 URI
localName
- 属性的本地名称
value
- 属性的值
IllegalStateException
- 如果当前状态不允许 Attribute 写入
XMLStreamException
- 如果名称空间 URI 未绑定到前缀且 javax.xml.stream.isRepairingNamespaces 未设置为 true
void writeAttribute(String namespaceURI, String localName, String value) throws XMLStreamException
namespaceURI
- 此属性前缀的 URI
localName
- 属性的本地名称
value
- 属性的值
IllegalStateException
- 如果当前状态不允许 Attribute 写入
XMLStreamException
- 如果名称空间 URI 未绑定到前缀且 javax.xml.stream.isRepairingNamespaces 未设置为 true
void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException
prefix
- 要绑定名称空间的前缀
namespaceURI
- 要绑定前缀的 URI
IllegalStateException
- 如果当前状态不允许 Namespace 写入
XMLStreamException
void writeDefaultNamespace(String namespaceURI) throws XMLStreamException
namespaceURI
- 要绑定默认名称空间的 URI
IllegalStateException
- 如果当前状态不允许 Namespace 写入
XMLStreamException
void writeComment(String data) throws XMLStreamException
data
- 包含在注释中的数据,可以为 null
XMLStreamException
void writeProcessingInstruction(String target) throws XMLStreamException
target
- 处理指令的目标,不可以为 null
XMLStreamException
void writeProcessingInstruction(String target, String data) throws XMLStreamException
target
- 处理指令的目标,不可以为 null
data
- 处理指令中包含的数据,不可以为 null
XMLStreamException
void writeCData(String data) throws XMLStreamException
data
- CData 节中包含的数据,不可以为 null
XMLStreamException
void writeDTD(String dtd) throws XMLStreamException
dtd
- 要编写的 DTD
XMLStreamException
void writeEntityRef(String name) throws XMLStreamException
name
- 实体的名称
XMLStreamException
void writeStartDocument() throws XMLStreamException
void writeStartDocument(String version) throws XMLStreamException
version
- xml 文档的版本
XMLStreamException
void writeStartDocument(String encoding, String version) throws XMLStreamException
encoding
- XML 声明的编码
version
- XML 文档的版本
XMLStreamException
- 如果给定编码与底层流的编码不匹配
void writeCharacters(String text) throws XMLStreamException
text
- 要写入的值
XMLStreamException
void writeCharacters(char[] text, int start, int len) throws XMLStreamException
text
- 要写入的值
start
- 数组中的起始位置
len
- 要写入的字符数
XMLStreamException
String getPrefix(String uri) throws XMLStreamException
XMLStreamException
void setPrefix(String prefix, String uri) throws XMLStreamException
prefix
- 要绑定到 URI 的前缀,不可以为 null
uri
- 要绑定到前缀的 URI,不可以为 null
XMLStreamException
void setDefaultNamespace(String uri) throws XMLStreamException
uri
- 要绑定到默认名称空间的 URI,不可以为 null
XMLStreamException
void setNamespaceContext(NamespaceContext context) throws XMLStreamException
context
- 将用于此 writer 的名称空间上下文,不可以为 null
XMLStreamException
NamespaceContext getNamespaceContext()
Object getProperty(String name) throws IllegalArgumentException
name
- 属性的名称,不可以为 null
IllegalArgumentException
- 如果属性不受支持
NullPointerException
- 如果名称为 null