使用XMLEventWriter设置standalone ='YES'

时间:2014-12-12 05:47:47

标签: java xml java-7 openjdk

我正在使用'XMLEventWriter'来生成Java中的XML文件。代码段如下:

XMLEventWriter writer = outputFactory.createXMLEventWriter(new FileWriter(outFile)); 
XMLEvent startEvent = eventFactory.createStartDocument("UTF-8","1.0",true);
writer.add(startEvent);

尽管将第三个参数设置为'true',但我发现生成的XML文档的标题没有standalone =“YES”

是否有人建议在生成的XML文件的文档标题中出现更改(如果有)以使standalone =“yes”出现?

1 个答案:

答案 0 :(得分:1)

我正在查看相同的问题(参见java StAX - standalone property of StartDocument),我发现在我的Java版本中没有实现:

包裹:com.sun.xml.internal.stream.writers

班级XMLEventWriterImpl

public void add(javax.xml.stream.events.XMLEvent xMLEvent) {
  //...
  case XMLEvent.START_DOCUMENT :{
    //...
    StreamWriter.writeStartDocument(startDocument.getCharacterEncodingScheme(), startDocument.getVersion());

(请注意,此处未使用独立属性)

然后在下一个电话(班级XMLStreamWriterImpl

public void writeStartDocument(String encoding, String version)
    throws XMLStreamException {
    //Revisit : What about standalone ?
    //...

这是代码中的原始注释,因此除非在Java中实现,否则它不受支持。

我目前的java版本是:

java version "1.7.0_79" OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2) OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

也许它已在以后的版本中修复过了?

修改

刚刚用

测试

java version "1.8.0_45" Java(TM) SE Runtime Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

并且问题仍然存在。