Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Что
Политика преобразования XSL применяет пользовательские преобразования языка расширяемых таблиц стилей (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, который вы хотите преобразовать, находится в ответе, преобразование не произойдет, если вы не установите в качестве источника 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, то есть не может быть «сообщением», «запросом» или «ответом». Вам следует установить этот элемент в качестве пользовательской переменной, а затем использовать эту переменную. Чтобы заменить содержимое сообщения выходными данными преобразования, удалите этот элемент. Например, если вы преобразуете сообщение в HTML, не включайте этот элемент. | |||
ResourceURL ( Обязательно ) | Файл XSLT, который будет использоваться для преобразования сообщения. | |||
Параметры ( необязательно ) | ignoreUnresolvedVariables ( необязательно ) | Игнорирует любые неразрешенные ошибки переменных в инструкциях сценария XSLT. Допустимые значения: правда/ложь. Значение по умолчанию: ложь | ||
Параметр ( необязательно ) | имя ( Обязательно ) | Параметры поддерживают использование параметра XSL в таблицах стилей, где имя, которое вы добавляете здесь в политике, является именем параметра XSL. Например, если вы введете имя «uid», ваш XSL может выглядеть примерно так: Параметр получает свое значение либо из ссылки на контекстную переменную (идентифицированную атрибутом Пример и дополнительную информацию см. на странице http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864 . | ||
ссылка (необязательно) | Указывает ссылку, которая получает значение из переменной. Например, если параметру «uid» необходимо получить свое значение из переменной с именем «authn.uid», элемент параметра будет выглядеть следующим образом: Если вы используете этот атрибут, не используйте атрибут value. | |||
значение (необязательно) | Вы можете использовать этот атрибут для жесткого кодирования значения параметра. Если вы используете этот атрибут, не используйте атрибут 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 |