Как добавить расположение схемы с помощью StAX - PullRequest
7 голосов
/ 27 января 2012

Я использую StAX и хочу добавить местоположение схемы в мой XML-файл.Каков наилучший способ добиться этого?

1 Ответ

10 голосов
/ 27 января 2012

Если вы используете 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, вы должны быть в состоянии сделать это, add() используя createAttribute().

С уважением, Макс

...