Poco библиотека для C ++, объявить пространство имен для пользовательского элемента

Я хочу создать документ XML путем создания документа DOM с нуля, с синтаксисом вроде:

AutoPtr<Document> doc = new Document;
AutoPtr<Element> root = doc->createElement("root");
doc->appendChild(root);
AutoPtr<Element> element1 = doc->createElementNS("http://ns1", "ns1:element1");
root->appendChild(element1);
AutoPtr<Element> element2 = doc->createElementNS("http://ns1", "ns1:element2");
root->appendChild(element2);

DOMWriter writer;
writer.setNewLine("\n");
writer.setOptions(XMLWriter::PRETTY_PRINT);
writer.writeNode(std::cout, doc);

Но когда я пишу это, я получаю следующий результат:

<root>
<ns1:element1 xmlns:ns1="http://ns1"/>
<ns1:element2 xmlns:ns1="http://ns1"/>
</root>

Итак, пространство имен ns1 объявлено два раза, и я хочу объявить его внутри «корневого» элемента.
Есть ли способ получить следующее представление:

<root xmlns:ns1="http://ns1"/>
<ns1:element1/>
<ns1:element2/>
</root>

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]