QXmlStreamWriter 在不写入任何文本元素时写入根元素的不同开头

QXmlStreamWriter writes different start of the root element when not writing any text elements

这是没有将任何文本元素写入 xml 文件的代码:

QString filename = QFileDialog::getSaveFileName(this, "Vytvorenie databázy", QDir::currentPath(), "XML file(*.xml)");
QFile file(filename);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.setAutoFormattingIndent(4);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("CARS");
//
//
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();

这是输出:

<?xml version="1.0" encoding="UTF-8"?>
<CARS/>

这是想要的输出:

<?xml version="1.0" encoding="UTF-8"?>
<CARS>
</CARS>

为什么不写入任何附加元素时不写入根元素的开始?有没有一种方法可以明确地告诉作者写它,即使没有添加更多元素?同样的事情发生在 C# 中。

它看起来像是 QXmlStreamWriter 的内部实现,但这并不重要,因为两者在语义上是等价的,并且“每个解析器都应该对其进行相同的解释”,正如评论者所写。