Включая обертку CDATA во время Marshalling

Я генерирую XML с использованием XMLBeans . Есть ли способ включить CDATA Wrapper автоматически для необходимых элементов в выходной XML-документ. Например, мой выходной XML должен выглядеть следующим образом:

<employee>
<name><![CDATA[NAME]]></name>
<address><![CDATA[ADDRESS]]></address>
</employee>

1) Можем ли мы написать XSD таким образом, чтобы всякий раз, когда я устанавливал значение для <name> элемент в моей программе, использующий XMLBeans, выходной xml должен содержать элемент name, например так: <name><![CDATA[NAME]]></name> вместо <name>NAME</name>

2) Есть ли способ в XMLBeans для создания CDATA Wrapper для определенных элементов.

Любая помощь будет оценена.

2 ответа

Смотрите эту ветку. Короче:

node.setFoo("ABCDE12345"); 
XmlCursor c = node.xgetFoo().newCursor(); 
c.toFirstContentToken(); 
c.setBookmark(CDataBookmark.CDATA_BOOKMARK);

И затем, когда вы перейдете к "сохранению" документа, обязательно передайте XmlOptions, например:

XmlOptions opts = new XmlOptions().setUseCDataBookmarks(); 
node.xmlText(opts);

Просто читаю документы - я не пользователь XMLBeans. Если кто-то с опытом пишет по-другому - доверяй им, а не мне.

См. CDataBookmark и XmlOptions.setCDATAEntityCountThreshold, setUseCDataBookmarks, setSaveCDataLengthThreshold.

Документы о том, как установить CDataBookmark в тексте, не ясны. Посмотрите это немного из Набл.

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