2009-09-11 2 views
1

У меня есть следующая проблема: у меня есть XML и XSLT-файл для обработки этого и создания вывода.Могу ли я помещать контрольные символы в XML через XSLT?

Выход этого процесса должен содержать контрольный символ '0B'. И насколько я знаю, XML не вставляет контрольные символы, так как я могу это сделать?

ответ

2

Является ли результат XML-файлом? Как вы говорите, XML не допускает символ U + 000B. Поэтому по определению любой файл, содержащий этот символ, не является допустимым XML-файлом. Какая здесь большая картина? Зачем вам этот персонаж? Какие альтернативы могут быть доступны вам?

Если вы пытаетесь создать файл в результате преобразования XSLT, это другое дело.

+0

Мне нужно преобразовать его в XML-документ, затем взять этот документ и преобразовать его в объект Java (объект jPOS ISOMessage, который будет отправлен по сети) Одно из значений XML-файла должно быть U + 000B, возможно ли это ? –

+1

Не без какого-то побега, нет. Вы можете выбрать другой «специальный» (но поддерживаемый) символ, который вы бы не использовали в другом месте, а затем просто переключайтесь между двумя символами соответствующим образом. Довольно отвратительно, но это сработает. –

+0

Вы имеете в виду в XSLT, я устанавливаю значение сгенерированного XML символу, поддерживаемому спецификацией, вместо U + 000B, а затем, когда идет код, который потребляет этот XML-файл, я меняю значение этого символа на U + 0000B? –

0

Вы можете также закодировать свою полезную нагрузку, содержащую 0x0B, до Base64 перед добавлением в ваш XML-документ.

Это будет полагаться на потребителя вашего выходного преобразования, способного преобразовать обратно с Base64 в исходную кодировку.

+0

результирующий XML-документ берет свое значение как hardcoded из XSL-файла –

0

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

Можете ли вы поместить своих персонажей в раздел CDATA? XSLT имеет конструкцию для создания разделов CDATA (< xsl: cdata >). Внутри вы можете кодировать символы, используя ссылки на XML-объекты < xsl: entity-ref/>.

Парсер, который читает ваш XML-файл, должен иметь возможность конвертировать эти entityrefs в соответствующие символы.

Смежные вопросы