Java 是否需要带Androids XMLSerializer的startDocument()?

Java 是否需要带Androids XMLSerializer的startDocument()?,java,android,xml-serialization,Java,Android,Xml Serialization,对于某个应用程序(通过XMPP PubSub-item负载序列化和反序列化一个要传输的对象),我需要创建XML片段——这就是我必须省略文档声明 我使用的是org.xmlpull.v1.XmlSerializer类;不幸的是,关于它的正确使用,似乎没有太多的文档可用。至少我在其startDocument()方法中找到的所有文档都不清楚我是否可以跳过调用此方法。至少我发现的所有示例都调用此方法(但它们都解释了如何创建完整的XML文档,而不是片段) 要给出代码示例,请执行以下操作: XmlSerial

对于某个应用程序(通过XMPP PubSub-item负载序列化和反序列化一个要传输的对象),我需要创建XML片段——这就是我必须省略文档声明

我使用的是
org.xmlpull.v1.XmlSerializer
类;不幸的是,关于它的正确使用,似乎没有太多的文档可用。至少我在其
startDocument()
方法中找到的所有文档都不清楚我是否可以跳过调用此方法。至少我发现的所有示例都调用此方法(但它们都解释了如何创建完整的XML文档,而不是片段)

要给出代码示例,请执行以下操作:

XmlSerializer xmlSerializer = Xml.newSerializer();
StringWriter xmlStringWriter = new StringWriter();

try {
    xmlSerializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
    xmlSerializer.setOutput(xmlStringWriter);

    // xmlSerializer.startDocument("UTF-8", true);

    xmlSerializer.startTag(null, "tag-name");
    // ...
    xmlSerializer.endTag(null, "tag-name";

    // xmlSerializer.endDocument();

    xmlSerializer.flush();
} catch (IOException e) {
    // Hanle exception
}
String xmlOutputString = xmlStringWriter.toString();

允许这样做吗?如果没有,是否有其他方法可以在不解析输出字符串的情况下使用XMLSerializer生成片段,从而手动删除文档声明(例如,仅使用
null
参数调用startDocument)?

简而言之,答案是:不,调用
startDocument()
不是必需的,将跳过生成文档声明