-
public interface XMLStreamWriter
XMLStreamWriter接口指定如何编写XML。 XMLStreamWriter在其输入上执行良好的形式检查。 但是,writeCharacters方法需要转义&,<和>对于属性值,writeAttribute方法将转义上述字符加“,以确保所有字符内容和属性值都已正确形成,每个NAMESPACE和ATTRIBUTE必须单独写入。 XML Namespaces,javax.xml.stream.isRepairingNamespaces
and write method behaviour MethodisRepairingNamespaces
== trueisRepairingNamespaces
== false namespaceURI bound namespaceURI unbound namespaceURI bound namespaceURI unboundwriteAttribute(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
- 另请参见:
-
XMLOutputFactory
,XMLStreamReader
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 void
close()
关闭此作者并释放与作者相关的任何资源。void
flush()
将任何缓存的数据写入基础输出机制。NamespaceContext
getNamespaceContext()
返回当前的命名空间上下文。String
getPrefix(String uri)
获取uri绑定的前缀Object
getProperty(String name)
从底层实现获取特征/属性的值void
setDefaultNamespace(String uri)
将URI绑定到默认命名空间此URI绑定在当前START_ELEMENT / END_ELEMENT对的范围内。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()
根据写入器的内部状态将结束标记写入输出,以确定事件的前缀和本地名称。void
writeEntityRef(String name)
写实体引用void
writeNamespace(String prefix, String namespaceURI)
将命名空间写入输出流如果此方法的前缀参数为空字符串“xmlns”,或为null,则此方法将委托为writeDefaultNamespacevoid
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)
将开始标签写入输出
-
-
-
方法详细信息
-
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
根据写入器的内部状态将结束标记写入输出,以确定事件的前缀和本地名称。
-
writeEndDocument
void writeEndDocument() throws XMLStreamException
关闭任何起始标记并写入相应的结束标签。
-
close
void close() throws XMLStreamException
关闭此作者并释放与作者相关的任何资源。 这不能关闭基础输出流。
-
flush
void flush() throws 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
- 注释中包含的数据可能为null - 异常
-
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
-data
部分中包含的数据可能不为空 - 异常
-
XMLStreamException
-
writeDTD
void writeDTD(String dtd) throws XMLStreamException
写一个DTD部分。 该字符串表示XML 1.0规范中的整个doctypedecl生产。- 参数
-
dtd
-dtd
的DTD - 异常
-
XMLStreamException
-
writeEntityRef
void writeEntityRef(String name) throws XMLStreamException
写实体引用- 参数
-
name
- 实体的名称 - 异常
-
XMLStreamException
-
writeStartDocument
void writeStartDocument() throws XMLStreamException
编写XML声明 默认XML版本为1.0,编码为utf-8
-
writeStartDocument
void writeStartDocument(String version) throws XMLStreamException
编写XML声明 将XML版本默认为1.0- 参数
-
version
- xml文档的版本 - 异常
-
XMLStreamException
-
writeStartDocument
void writeStartDocument(String encoding, String version) throws XMLStreamException
编写XML声明 请注意,encoding参数不设置底层输出的实际编码。 当使用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绑定的前缀- 结果
- 前缀或null
- 异常
-
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
-
getProperty
Object getProperty(String name) throws IllegalArgumentException
从底层实现获取特征/属性的值- 参数
-
name
- 属性的名称可能不为空 - 结果
- 物业的价值
- 异常
-
IllegalArgumentException
- 如果不支持该属性 -
NullPointerException
- if the name is null
-
-