Включите экранирование выходных данных для XML-документа в теге <any> - PullRequest
0 голосов
/ 13 декабря 2018

Я получаю стандартный XML-документ внутри любого тега.В настоящее время я просто копирую весь полученный документ и вставляю его в любой тег, как показано в XSLT ниже:

      <xsl:element name="msgBody">
        <xsl:copy>
          <xsl:copy-of select="/" />
        </xsl:copy>
      </xsl:element>

Это работает так, как задумано, так как вставляет документ XML, где любой тег помещается всхемы.Однако это необходимо отправить в базу данных SQL с помощью адаптера WCF-SQL.Поэтому мне нужно удалить XML, так как символы <> интерпретируются адаптером, который выдает ошибку, подобную этой:

"Начальный элемент с именем X и пространством имен X был неожиданным. Пожалуйстаубедитесь, что ваш входной XML соответствует схеме для операции. "

Любой тег настроен на пропуск обработки XML.Я понимаю, что есть возможность отключить экранирование выходных данных для элемента value-of, но как я могу добиться этого, используя элемент copy-of?Нужно ли мне вместо этого реализовать конвейер для обработки экранирования?

Короче говоря, я хочу, чтобы XML-строка была такой:

<bizSaveDocument>
    <conversationID>829c0747-76e0-4298-a9f1-0fcc2a234668</conversationID>
    <fromID>NULL</fromID>
    <toID>NULL</toID>
</bizSaveDocument>

, чтобы ее можно было экранировать, чтобы вывод картыстановится так:

&lt;bizSaveDocument&gt;
    &lt;conversationID&gt;829c0747-76e0-4298-a9f1-0fcc2a234668&lt;/conversationID&gt;
    &lt;fromID&gt;NULL&lt;/fromID&gt;
    &lt;toID&gt;NULL&lt;/toID&gt;
&lt;/bizSaveDocument&gt;

1 Ответ

0 голосов
/ 14 декабря 2018

Для этого вам нужно использовать небольшой пользовательский Xslt.

В этом блоге объясняется: Преобразование XML-файла в строку внутри карты BizTalk с использованием встроенного XSLT

Обратите внимание, что в этом методе используется раздел CDATA, который технически аналогичен экранированию.

Если вы действительно хотите экранировать его, вы можете удалить атрибут disable-output-escaping и раздел CDATA.(Раскрытие: Вот как я помню, как это работает, я давно этого не делал:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...