Экранирование XML с помощью Java и Marklogic

Я загружаю XML в базу данных Marklogic, используя Java и Marklogic XCC API. Прежде чем я это сделаю, я использую Apache Commons для экранирования содержимого элементов (StringEscapeUtils.escapeXml). Однако при загрузке содержимого я ошибаюсь из-за символа фигурной скобки в содержимом. escapeXml не обрабатывает фигурные скобки. Мои вопросы:

1) Является ли это конкретной проблемой Marklogic (возможно, с XCC) или это проблема с XML в целом?
2) Существуют ли другие символы, которые также могут вызвать проблему (т. е. не экранированные подпрограммой escapeXml)?< br /> 3) Есть ли другая процедура, которую можно использовать, чтобы избежать этого и любых нежелательных символов в будущем?


person Todd    schedule 20.09.2013    source источник


Ответы (1)


Вы не должны экранировать содержимое при использовании XCC, он сам экранирует их, поэтому вы будете делать двойное экранирование. Однако XML обычно не жалуется на фигурные скобки, возможно, вы используете методы Invoke вместо методов Insert. (т. е. тогда XCC попытается интерпретировать ваш контент как XQuery)

Не могли бы вы предоставить образец вашего контента и фрагмент кода?

person DALDEI    schedule 20.09.2013
comment
Спасибо за вклад, DALDEI. Благодаря вашему ответу я смог разобраться. В нашей подпрограмме используется шаблонный вызов, при котором содержимое вставляется в шаблон. Таким образом, содержимое помещается в вызов в виде: collectionbatcat:update-record-list(\‹%BATCH-ID%›\, ‹%RECORD-LIST%›); Фигурная скобка рассматривается как часть команды xquery, что приводит к ошибке. - person Todd; 20.09.2013