Вы просматриваете документацию 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><Life></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></Life></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 , в зависимости от того, является ли преобразуемое сообщение входящим или исходящим.
| |||
| Выходная переменная ( необязательно ) | Переменная, хранящая результат преобразования. Переменная OutputVariable не может быть типа Message, то есть она не может быть типа 'message', 'request' или 'response'. Следует присвоить этому элементу пользовательскую переменную, а затем использовать эту переменную. Чтобы заменить содержимое сообщения результатом преобразования, удалите этот элемент. Например, если вы преобразуете сообщение в HTML, не включайте этот элемент. | |||
| ResourceURL ( обязательно ) | XSLT-файл, который будет использоваться для преобразования сообщения. | |||
| Параметры ( необязательно ) | ignoreUnresolvedVariables ( Необязательно ) | Игнорирует любые неразрешенные ошибки переменных в инструкциях XSLT-скрипта. Допустимые значения: true/false Значение по умолчанию: false | ||
| Параметр ( необязательный ) | имя ( обязательно ) | Параметры поддерживают использование XSL-параметров в ваших таблицах стилей, где имя, которое вы указываете здесь в политике, является именем XSL-параметра. Например, если вы введете имя "uid", ваш XSL-код может выглядеть примерно так: Параметр получает свое значение либо из ссылки на контекстную переменную (идентифицируемую атрибутом Пример и дополнительную информацию можно найти в сообщении сообщества . | ||
| ссылка (необязательно) | Указывает ссылку, из которой берется значение переменной. Например, если параметру "uid" необходимо получить значение из переменной с именем "authn.uid", элемент Parameter будет выглядеть следующим образом: Если вы используете этот атрибут, не используйте атрибут значения. | |||
| значение (необязательно) | Этот атрибут можно использовать для жесткого задания значения параметра. Если вы используете этот атрибут, не используйте атрибут 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, либо выходит за рамки области действия (недоступна в конкретном потоке, в котором выполняется политика), либо не может быть разрешена (не определена). ). | build |
steps.xsl.XSLEvaluationFailed | 500 | Эта ошибка возникает, если полезные данные входного XML недоступны или имеют неправильный формат или политика XSLTransform не работает или не может преобразовать входной файл XML на основе правил преобразования, предусмотренных в файле XSL. Может быть много разных причин сбоя политики XSLTransform. Причина сбоя в сообщении об ошибке предоставит дополнительную информацию о причине. | build |
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
| Название ошибки | Причина | Исправить |
|---|---|---|
XSLEmptyResourceUrl | Если элемент <ResourceURL> в политике XSL Transform пуст, развертывание прокси-сервера API завершается неудачей. | build |
XSLInvalidResourceType | Если тип ресурса, указанный в элементе <ResourceURL> политики преобразования XSL, не относится к типу xsl , развертывание прокси-сервера API завершается неудачей. | build |
Связанные темы
, Вы просматриваете документацию 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><Life></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></Life></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 , в зависимости от того, является ли преобразуемое сообщение входящим или исходящим.
| |||
| Выходная переменная ( необязательно ) | Переменная, хранящая результат преобразования. Переменная OutputVariable не может быть типа Message, то есть она не может быть типа 'message', 'request' или 'response'. Следует присвоить этому элементу пользовательскую переменную, а затем использовать эту переменную. Чтобы заменить содержимое сообщения результатом преобразования, удалите этот элемент. Например, если вы преобразуете сообщение в HTML, не включайте этот элемент. | |||
| ResourceURL ( обязательно ) | XSLT-файл, который будет использоваться для преобразования сообщения. | |||
| Параметры ( необязательно ) | ignoreUnresolvedVariables ( Необязательно ) | Игнорирует любые неразрешенные ошибки переменных в инструкциях XSLT-скрипта. Допустимые значения: true/false Значение по умолчанию: false | ||
| Параметр ( необязательный ) | имя ( обязательно ) | Параметры поддерживают использование XSL-параметров в ваших таблицах стилей, где имя, которое вы указываете здесь в политике, является именем XSL-параметра. Например, если вы введете имя "uid", ваш XSL-код может выглядеть примерно так: Параметр получает свое значение либо из ссылки на контекстную переменную (идентифицируемую атрибутом Пример и дополнительную информацию можно найти в сообщении сообщества . | ||
| ссылка (необязательно) | Указывает ссылку, из которой берется значение переменной. Например, если параметру "uid" необходимо получить значение из переменной с именем "authn.uid", элемент Parameter будет выглядеть следующим образом: Если вы используете этот атрибут, не используйте атрибут значения. | |||
| значение (необязательно) | Этот атрибут можно использовать для жесткого задания значения параметра. Если вы используете этот атрибут, не используйте атрибут 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, либо выходит за рамки области действия (недоступна в конкретном потоке, в котором выполняется политика), либо не может быть разрешена (не определена). ). | build |
steps.xsl.XSLEvaluationFailed | 500 | Эта ошибка возникает, если полезные данные входного XML недоступны или имеют неправильный формат или политика XSLTransform не работает или не может преобразовать входной файл XML на основе правил преобразования, предусмотренных в файле XSL. Может быть много разных причин сбоя политики XSLTransform. Причина сбоя в сообщении об ошибке предоставит дополнительную информацию о причине. | build |
Ошибки развертывания
Эти ошибки могут возникнуть при развертывании прокси-сервера, содержащего эту политику.
| Название ошибки | Причина | Исправить |
|---|---|---|
XSLEmptyResourceUrl | Если элемент <ResourceURL> в политике XSL Transform пуст, развертывание прокси-сервера API завершается неудачей. | build |
XSLInvalidResourceType | Если тип ресурса, указанный в элементе <ResourceURL> политики преобразования XSL, не относится к типу xsl , развертывание прокси-сервера API завершается неудачей. | build |