如何使用StAX添加模式位置

7

我正在使用StAX,我想在我的xml文件中添加模式位置。如何最好地实现这一点?

1个回答

10

如果你使用 XMLStreamWriter,你可以直接使用 writeNamespace()writeAttribute()(或者只用writeAttribute())。

XMLStreamWriter xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(System.out);
xmlStreamWriter.writeStartDocument();
xmlStreamWriter.writeStartElement("YourRootElement");
xmlStreamWriter.writeNamespace("xsi", "http://www.w3.org/2000/10/XMLSchema-instance");
xmlStreamWriter.writeAttribute("http://www.w3.org/2000/10/XMLSchema-instance", "noNamespaceSchemaLocation",
        "path_to_your.xsd");
xmlStreamWriter.writeEndElement();
xmlStreamWriter.flush();

输出:

<?xml version="1.0" ?>
<YourRootElement xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:noNamespaceSchemaLocation="path_to_your.xsd"></YourRootElement>

对于XMLEventWriter,您可以通过添加createAttribute()来实现add()

敬礼, Max


嗨Max,我已经预料到这个解决方案了。感谢你的澄清。 - Lars
3
这个对我有用,但我的XML无法完全验证。为了解决这个验证问题,我需要指定一个更新的模式实例:http://www.w3.org/2001/XMLSchema-instance - Muel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接