dp: сериализиране и екраниране на ibm datapower

Имам проект, в който трябва да кодирам бинарно-64-кодиран xml-файл и да го поставя в друг xml. За да накарам това да работи, първо сериализирам xml с dp:serialize и след това използвам dp:binary-encode върху получената променлива от това. Това работи добре, с изключение на това, че всички скандинавски символи са екранирани. åäö става åäö, когато декодирам резултата.

Някакви идеи? Опитах с dp:escaping="minimum" на изходния маркер (тагът xsl:output засяга ли dp:serialize?) и редица други опции. Чрез отпечатването на сериализирания резултат преди бинарно-64-кодирането му видях, че екранирането се добавя, когато се извиква dp:serialize.

Възможно ли е да се сериализира, без да се избягва мощност от данни?


person user3115088    schedule 18.12.2013    source източник


Отговори (1)


Не мисля, че можете да сериализирате без бягство. Бягството на DataPower, напр. "disable-output-escaping" засяга само OUTPUT контекста, а не "inline" XML...

Мисля, че трябва да го обработвате като двоични данни и да получите "недокоснатия" XML файл от /object/message/node().

Тъй като двоичният възел не е "xml", можете да го кодирате направо:

<xsl:variable name="xmlInBase64" select="dp:binary-encode(/object/message/node())"/>
person Anders    schedule 27.02.2014