Выписываем элемент с помощью staxmate api

Я использую StaxMate для записи XML-документа. Я хочу выписать элементы xml с префиксом / пространством имен, например "pre: elem". Я могу создать это вручную как "pre" + ":" + "elem" и передать его в метод addElement staxmate api. Но есть ли лучший способ сделать это?

1 ответ

Решение

Создание вручную не гарантирует работоспособность, поэтому это не очень хорошее решение (о котором вы, вероятно, уже знали). Правильный путь - получить экземпляр пространства имен (с предлагаемым префиксом) и использовать его для записи. Итак, что-то вроде:

SMOutputDocument doc = ...;
SMNamespace ns = doc.getNamespace("http://mynamespaces.com", "pre");
SMOutputElement elem = doc.addElement(ns, "root");
// ... and so forth

Вы можете получить экземпляры пространства имен из любого контейнера (SMOutputDocument, SMOutputElement).

Без передачи объекта пространства имен по умолчанию предполагается, что пространство имен имеет URI "" (который должен быть связан с префиксом без префикса).

(примечание: я попрошу это добавить в FAQ StaxMate)

Другие вопросы по тегам