How to add schema location using StAX

I am using StAX and I want to add a schema location to my XML file. What is the best way to achieve this?

+7
source share
1 answer

If you use XMLStreamWriter , you can simply 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 can do this with add() ing a createAttribute() .

Regards, Max

+10
source

All Articles