2014-11-21 3 views
0

Вопрос может показаться глупым, так что прошу прощения, но может кто-то любезно объяснить использование dp: serialize.dp: функция сериализации в datapower

Я где-то читал, что он преобразует узел в байтовый поток.

Что означает поток байтов, это относится к 1 и 0 ??

Также, пожалуйста, дайте мне знать несколько сценариев, в которых нам нужно использовать эту функцию расширения dp.

Благодаря

ответ

0

Когда вы находитесь в середине вашей обработки XSLT, все биты XML вы имеете дело с (входным документом, контекстные узлы, узел-наборы в XSL: переменные) а не текст, они оптимизируют деревья в памяти DataPower. В вашей обработке может быть какой-то момент, когда вы хотите, чтобы часть XML преобразуется в текст. В качестве примера, возможно, вы хотите его зашифровать. (Просто необработанное шифрование AES, ни одно из этих фантастических стандартов шифрования OASIS XML.) Здесь используется dp: serialize. Он преобразует набор узлов в памяти в строку, содержащую XML-синтаксический текст.

Код. Нам нужен код.

<xsl:variable name="my-node-set"> 
    <xyzzy> 
     <plugh>Nothing happens.</plugh> 
    </xyzzy> 
</xsl:variable> 

<xsl:variable name="my-xml-string"> 
    <dp:serialize select="$my-node-set"/> 
</xsl:variable> 

<xsl:variable name="my-ciphered" 
    select="dp:encode($alg-aes, $secret-key, $my-xml-string)"/> 

Если вам нужно пойти другим путем - у вас есть строка, что вы достаточно уверены в формате XML и хотели бы, чтобы превратить его в XSL: переменная, содержащая набор узлов (так что вы можете использовать XPath для навигации по нему) - то вы бы использовать дп: синтаксический анализ:

<xsl:variable name="my-node-set" 
    select="dp:parse($my-string)"/> 

Я никогда не вполне в состоянии понять, почему они решили осуществить < дп: упорядочивании> как расширение element и dp: parse() в качестве функции расширения. Мне кажется асимметричным.

+0

Спасибо за ответ. Пожалуйста, помогите мне понять, если для конкретного фрагмента xml я всегда хочу его как текст. Могу ли я определить этот конкретный блок как cdata, это поможет мне в достижении того же состояния, что и сериализация, или обе функции полностью разные и используются в разных сценарии? – user3173953

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