Политика XSLTransform

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Что

Политика XSL Transform применяет пользовательские преобразования на языке расширяемых таблиц стилей (XSLT) к XML-сообщениям, позволяя преобразовывать их из XML в другой формат, например, XML, HTML или обычный текст. Эта политика часто используется для интеграции приложений, поддерживающих XML, но требующих разных XML-форматов для одних и тех же данных.

Образцы

Приведенные ниже примеры демонстрируют все ресурсы, используемые в потоке XSL-преобразования.

Политика XSL ->

<XSL name="TransformXML">
  <ResourceURL>xsl://my_transform.xsl</ResourceURL>
  <Source>request</Source>
</XSL>

Простая политика XSL. Перейдите к следующему примеру, чтобы увидеть таблицу стилей XSLT, на которую ссылается политика ( my_transform.xsl ). Элемент <Source> важен. Например, если XML-код, который вы хотите преобразовать, находится в ответе, преобразование не произойдет, если вы не установите Source в response (и политика не будет привязана к потоку ответа). Но в данном случае XML-код, который нужно преобразовать, находится в запросе.

Таблица стилей XSLT ->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="text"/>
  <xsl:variable name="newline">
  <xsl:text>
  </xsl:text>
  </xsl:variable>
  <xsl:template match="/">
  <xsl:text>&lt;Life&gt;</xsl:text>
    <xsl:value-of select="$newline"/>
    <xsl:text>Here are the odd-numbered items from the list:</xsl:text>
    <xsl:value-of select="$newline"/>
    <xsl:for-each select="list/listitem">
      <xsl:if test="(position() mod 2) = 1">
        <xsl:number format="1. "/>
        <xsl:value-of select="."/>
        <xsl:value-of select="$newline"/>
      </xsl:if>
    </xsl:for-each>
  <xsl:text>&lt;/Life&gt;</xsl:text>
</xsl:template>
</xsl:stylesheet>

В политике указана таблица стилей my_transform.xsl . Перейдите к следующему примеру, чтобы увидеть образец входящего XML-сообщения.

Сообщение ->

<?xml version="1.0"?>
<list>
  <title>A few of my favorite albums</title>
  <listitem>A Love Supreme</listitem>
  <listitem>Beat Crazy</listitem>
  <listitem>Here Come the Warm Jets</listitem>
  <listitem>Kind of Blue</listitem>
  <listitem>London Calling</listitem>
  <listitem>Remain in Light</listitem>
  <listitem>The Joshua Tree</listitem>
  <listitem>The Indestructible Beat of Soweto</listitem>
</list>

Пример сообщения в запросе (указан в элементе <Source>request</Source> политики в первом примере).

Преобразованное сообщение

<Life>
Here are the odd-numbered items from the list:
1. A Love Supreme
3. Here Come the Warm Jets
5. London Calling
7. The Joshua Tree
</Life>

Преобразованное сообщение после применения таблицы стилей XSLT из этих примеров к XML-сообщению.


Ссылка на элемент

Настройте политику преобразования XSL, используя следующие элементы.

Название поля Описание
Имя ( обязательно ) Название политики. В названии разрешены только следующие символы: A-Z0-9._\-$ % . Однако пользовательский интерфейс управления устанавливает дополнительные ограничения, например, автоматически удаляет небуквенно-цифровые символы.
Источник ( необязательно ) Содержит сообщение, из которого необходимо извлечь информацию. Обычно это значение устанавливается как request или response , в зависимости от того, является ли преобразуемое сообщение входящим или исходящим.
  • Если источник отсутствует, сообщение рассматривается как простое сообщение. Например, <Source>message</Source>
  • Если исходная переменная не может быть разрешена или имеет тип, отличный от типа сообщения, этап преобразования завершается с ошибкой.
Выходная переменная ( необязательно )

Переменная, хранящая результат преобразования. Переменная OutputVariable не может быть типа Message, то есть она не может быть типа 'message', 'request' или 'response'. Следует присвоить этому элементу пользовательскую переменную, а затем использовать эту переменную.

Чтобы заменить содержимое сообщения результатом преобразования, удалите этот элемент. Например, если вы преобразуете сообщение в HTML, не включайте этот элемент.

ResourceURL ( обязательно ) XSLT-файл, который будет использоваться для преобразования сообщения.
Параметры ( необязательно ) ignoreUnresolvedVariables ( Необязательно )
Игнорирует любые неразрешенные ошибки переменных в инструкциях XSLT-скрипта.
Допустимые значения: true/false
Значение по умолчанию: false
Параметр ( необязательный ) имя ( обязательно )

Параметры поддерживают использование XSL-параметров в ваших таблицах стилей, где имя, которое вы указываете здесь в политике, является именем XSL-параметра. Например, если вы введете имя "uid", ваш XSL-код может выглядеть примерно так: <xsl:param name ="uid" select="''"/> ).

Параметр получает свое значение либо из ссылки на контекстную переменную (идентифицируемую атрибутом ref ), либо из явного value .

Пример и дополнительную информацию можно найти в сообщении сообщества .

ссылка (необязательно)

Указывает ссылку, из которой берется значение переменной. Например, если параметру "uid" необходимо получить значение из переменной с именем "authn.uid", элемент Parameter будет выглядеть следующим образом: <Parameter name="uid" ref="authn.uid"/>

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

значение (необязательно)

Этот атрибут можно использовать для жесткого задания значения параметра.

Если вы используете этот атрибут, не используйте атрибут ref.


Примечания по использованию

XSLT реализован в отдельном файле .xsl , который хранится в API-прокси в каталоге /resources/xsl . Политика XSL просто ссылается на этот файл XSL. Подробнее см. в разделе «Файлы ресурсов» .

Для работы политики XSL требуются два входных параметра:

  • Название таблицы стилей XSLT, содержащей набор правил преобразования, хранящейся в API-прокси по адресу /resources/xsl
  • Исходный XML-код, подлежащий преобразованию (обычно это сообщение запроса или ответа).

<xsl:include> и <xsl:import> не поддерживаются.

Apigee Edge использует процессор Saxon XSLT и поддерживает XSLT 1.0 и 2.0.


Ссылка на ошибку

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.xsl.XSLSourceMessageNotAvailable 500 Эта ошибка возникает, если переменная сообщения или строка, указанная в элементе <Source> политики преобразования XSL, либо выходит за рамки области действия (недоступна в конкретном потоке, в котором выполняется политика), либо не может быть разрешена (не определена). ).
steps.xsl.XSLEvaluationFailed 500 Эта ошибка возникает, если полезные данные входного XML недоступны или имеют неправильный формат или политика XSLTransform не работает или не может преобразовать входной файл XML на основе правил преобразования, предусмотренных в файле XSL. Может быть много разных причин сбоя политики XSLTransform. Причина сбоя в сообщении об ошибке предоставит дополнительную информацию о причине.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
XSLEmptyResourceUrl Если элемент <ResourceURL> в политике XSL Transform пуст, развертывание прокси-сервера API завершается неудачей.
XSLInvalidResourceType Если тип ресурса, указанный в элементе <ResourceURL> политики преобразования XSL, не относится к типу xsl , развертывание прокси-сервера API завершается неудачей.

Связанные темы

,

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Что

Политика XSL Transform применяет пользовательские преобразования на языке расширяемых таблиц стилей (XSLT) к XML-сообщениям, позволяя преобразовывать их из XML в другой формат, например, XML, HTML или обычный текст. Эта политика часто используется для интеграции приложений, поддерживающих XML, но требующих разных XML-форматов для одних и тех же данных.

Образцы

Приведенные ниже примеры демонстрируют все ресурсы, используемые в потоке XSL-преобразования.

Политика XSL ->

<XSL name="TransformXML">
  <ResourceURL>xsl://my_transform.xsl</ResourceURL>
  <Source>request</Source>
</XSL>

Простая политика XSL. Перейдите к следующему примеру, чтобы увидеть таблицу стилей XSLT, на которую ссылается политика ( my_transform.xsl ). Элемент <Source> важен. Например, если XML-код, который вы хотите преобразовать, находится в ответе, преобразование не произойдет, если вы не установите Source в response (и политика не будет привязана к потоку ответа). Но в данном случае XML-код, который нужно преобразовать, находится в запросе.

Таблица стилей XSLT ->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="text"/>
  <xsl:variable name="newline">
  <xsl:text>
  </xsl:text>
  </xsl:variable>
  <xsl:template match="/">
  <xsl:text>&lt;Life&gt;</xsl:text>
    <xsl:value-of select="$newline"/>
    <xsl:text>Here are the odd-numbered items from the list:</xsl:text>
    <xsl:value-of select="$newline"/>
    <xsl:for-each select="list/listitem">
      <xsl:if test="(position() mod 2) = 1">
        <xsl:number format="1. "/>
        <xsl:value-of select="."/>
        <xsl:value-of select="$newline"/>
      </xsl:if>
    </xsl:for-each>
  <xsl:text>&lt;/Life&gt;</xsl:text>
</xsl:template>
</xsl:stylesheet>

В политике указана таблица стилей my_transform.xsl . Перейдите к следующему примеру, чтобы увидеть образец входящего XML-сообщения.

Сообщение ->

<?xml version="1.0"?>
<list>
  <title>A few of my favorite albums</title>
  <listitem>A Love Supreme</listitem>
  <listitem>Beat Crazy</listitem>
  <listitem>Here Come the Warm Jets</listitem>
  <listitem>Kind of Blue</listitem>
  <listitem>London Calling</listitem>
  <listitem>Remain in Light</listitem>
  <listitem>The Joshua Tree</listitem>
  <listitem>The Indestructible Beat of Soweto</listitem>
</list>

Пример сообщения в запросе (указан в элементе <Source>request</Source> политики в первом примере).

Преобразованное сообщение

<Life>
Here are the odd-numbered items from the list:
1. A Love Supreme
3. Here Come the Warm Jets
5. London Calling
7. The Joshua Tree
</Life>

Преобразованное сообщение после применения таблицы стилей XSLT из этих примеров к XML-сообщению.


Ссылка на элемент

Настройте политику преобразования XSL, используя следующие элементы.

Название поля Описание
Имя ( обязательно ) Название политики. В названии разрешены только следующие символы: A-Z0-9._\-$ % . Однако пользовательский интерфейс управления устанавливает дополнительные ограничения, например, автоматически удаляет небуквенно-цифровые символы.
Источник ( необязательно ) Содержит сообщение, из которого необходимо извлечь информацию. Обычно это значение устанавливается как request или response , в зависимости от того, является ли преобразуемое сообщение входящим или исходящим.
  • Если источник отсутствует, сообщение рассматривается как простое сообщение. Например, <Source>message</Source>
  • Если исходная переменная не может быть разрешена или имеет тип, отличный от типа сообщения, этап преобразования завершается с ошибкой.
Выходная переменная ( необязательно )

Переменная, хранящая результат преобразования. Переменная OutputVariable не может быть типа Message, то есть она не может быть типа 'message', 'request' или 'response'. Следует присвоить этому элементу пользовательскую переменную, а затем использовать эту переменную.

Чтобы заменить содержимое сообщения результатом преобразования, удалите этот элемент. Например, если вы преобразуете сообщение в HTML, не включайте этот элемент.

ResourceURL ( обязательно ) XSLT-файл, который будет использоваться для преобразования сообщения.
Параметры ( необязательно ) ignoreUnresolvedVariables ( Необязательно )
Игнорирует любые неразрешенные ошибки переменных в инструкциях XSLT-скрипта.
Допустимые значения: true/false
Значение по умолчанию: false
Параметр ( необязательный ) имя ( обязательно )

Параметры поддерживают использование XSL-параметров в ваших таблицах стилей, где имя, которое вы указываете здесь в политике, является именем XSL-параметра. Например, если вы введете имя "uid", ваш XSL-код может выглядеть примерно так: <xsl:param name ="uid" select="''"/> ).

Параметр получает свое значение либо из ссылки на контекстную переменную (идентифицируемую атрибутом ref ), либо из явного value .

Пример и дополнительную информацию можно найти в сообщении сообщества .

ссылка (необязательно)

Указывает ссылку, из которой берется значение переменной. Например, если параметру "uid" необходимо получить значение из переменной с именем "authn.uid", элемент Parameter будет выглядеть следующим образом: <Parameter name="uid" ref="authn.uid"/>

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

значение (необязательно)

Этот атрибут можно использовать для жесткого задания значения параметра.

Если вы используете этот атрибут, не используйте атрибут ref.


Примечания по использованию

XSLT реализован в отдельном файле .xsl , который хранится в API-прокси в каталоге /resources/xsl . Политика XSL просто ссылается на этот файл XSL. Подробнее см. в разделе «Файлы ресурсов» .

Для работы политики XSL требуются два входных параметра:

  • Название таблицы стилей XSLT, содержащей набор правил преобразования, хранящейся в API-прокси по адресу /resources/xsl
  • Исходный XML-код, подлежащий преобразованию (обычно это сообщение запроса или ответа).

<xsl:include> и <xsl:import> не поддерживаются.

Apigee Edge использует процессор Saxon XSLT и поддерживает XSLT 1.0 и 2.0.


Ссылка на ошибку

Ошибки выполнения

Эти ошибки могут возникнуть при выполнении политики.

Код неисправности Статус HTTP Причина Исправить
steps.xsl.XSLSourceMessageNotAvailable 500 Эта ошибка возникает, если переменная сообщения или строка, указанная в элементе <Source> политики преобразования XSL, либо выходит за рамки области действия (недоступна в конкретном потоке, в котором выполняется политика), либо не может быть разрешена (не определена). ).
steps.xsl.XSLEvaluationFailed 500 Эта ошибка возникает, если полезные данные входного XML недоступны или имеют неправильный формат или политика XSLTransform не работает или не может преобразовать входной файл XML на основе правил преобразования, предусмотренных в файле XSL. Может быть много разных причин сбоя политики XSLTransform. Причина сбоя в сообщении об ошибке предоставит дополнительную информацию о причине.

Ошибки развертывания

Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.

Название ошибки Причина Исправить
XSLEmptyResourceUrl Если элемент <ResourceURL> в политике XSL Transform пуст, развертывание прокси-сервера API завершается неудачей.
XSLInvalidResourceType Если тип ресурса, указанный в элементе <ResourceURL> политики преобразования XSL, не относится к типу xsl , развертывание прокси-сервера API завершается неудачей.

Связанные темы