Настройка пространства имен и схемы с использованием Java DOM - PullRequest
3 голосов
/ 11 ноября 2009

У меня есть корневой элемент в выходном XML-документе, который не имеет атрибутов:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
..
</root>

Мне нужно, чтобы это выглядело примерно так:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="my.xsd">
....
</root>

Я не могу понять, как сделать это правильно с API Java DOM.

Спасибо!

1 Ответ

7 голосов
/ 11 ноября 2009

Используйте методы NS. В этом случае пространство имен равно http://www.w3.org/2001/XMLSchema-instance.

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element root = doc.createElement("root");
root.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance",
    "xsi:noNamespaceSchemaLocation", "my.xsd");
root.appendChild(doc.createElement("foo"));
doc.appendChild(root);
// see result
DOMImplementationLS dls = (DOMImplementationLS) doc.getImplementation();
System.out.println(dls.createLSSerializer().writeToString(doc));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...