BizTalk 2009 XSLT и шаблоны значений атрибутов - PullRequest
1 голос
/ 28 мая 2010

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

Следующий код является примером шаблона XSL для необязательного добавления атрибута:

<xsl:template name="AttributeOptional">
  <xsl:param name="value"/>
  <xsl:param name="attr"/>
  <xsl:if test="$value != ''">
    <xsl:attribute name="{$attr}">
      <xsl:value-of select="$value"/>
    </xsl:attribute>
  </xsl:if>
</xsl:template>

Проблема:

Запуск этого скрипта в BizTalk вызывает следующее исключение:

«Исключение из HRESULT: 0x80070002)»

Одна альтернатива, о которой я подумал, - это вызвать функцию msxsl:script, чтобы сделать то же самое, но я не могу обработать контекст вывода XSL изнутри функции.

А идеи?

1 Ответ

1 голос
/ 28 мая 2010
  <xsl:template name="AttributeOptional">
    <xsl:param name="value"/>
    <xsl:param name="attr"/>
    <xsl:if test="$value != ''">
      <xsl:attribute name="{$attr}">
        <xsl:value-of select="$value"/>
      </xsl:attribute>
    </xsl:if>
  </xsl:template>

Запуск этого скрипта в результатах BizTalk в «Исключение из HRESULT»: 0x80070002) "

Только я в "режиме угадывания ":

Существует как минимум две причины , возможно, ошибка с этим кодом:

  1. Предоставленное значение $attr не является допустимым именем XML (например, 12345).

  2. Атрибут создается, но ранее созданный узел не является элементом (например, получается <someElement> sometext, затем этот атрибут).

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