问题
I am using StAX and I want to add a schema location to my xml file. What is the best way to achieve this?
回答1:
If you use XMLStreamWriter
, you can just use writeNamespace()
and writeAttribute()
(or just 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();
Output:
<?xml version="1.0" ?>
<YourRootElement xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:noNamespaceSchemaLocation="path_to_your.xsd"></YourRootElement>
For XMLEventWriter
, you should be able to do it by add()
ing a createAttribute()
.
Regards, Max
来源:https://stackoverflow.com/questions/9031934/how-to-add-a-schema-location-with-stax