我正在使用'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”出现?
答案 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)
并且问题仍然存在。