Zasada XSLTransform

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Co

Zasada przekształcania XSL stosuje niestandardowe przekształcenia języka elastycznego arkusza stylów (XSLT) do komunikatów XML, które umożliwiają przekształcenie ich z XML na inny format, np. XML, HTML lub zwykły. tekstu. Zasada ta jest często używana do integrowania aplikacji, które obsługują język XML, ale które wymagają różne formaty XML dla tych samych danych.

Przykłady

Poniższe przykłady pokazują wszystkie zasoby w procesie przekształcenia XSL.

Zasada XSL ->

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

Prosta zasada XSL. Przejdź do następnego przykładu, aby zobaczyć arkusz stylów języka, do którego odwołuje się dyrektywa (my_transform.xsl). Element <Source> jest ważny. Jeśli na przykład w odpowiedzi znajduje się kod XML, który chcesz przekształcić, przekształcenie nie będzie może wystąpić, chyba że ustawisz źródło na response (a zasada jest powiązana z i przebieg odpowiedzi). Jednak w tym przypadku w żądaniu znajduje się plik XML do przekształcenia.

Arkusz stylów GPT ->

<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>

Arkusz stylów my_transform.xsl, do którego odwołuje się zasada. Przejdź do następnego przykład, aby zobaczyć przykład przychodzącego komunikatu XML.

Wiadomość ->

<?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>

Przykładowy komunikat w żądaniu (wskazany w tagu <Source>request</Source> w pierwszej próbce).

Przekształcona wiadomość

<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>

Przekształcony komunikat po zastosowaniu arkusza stylów DDEX z tych przykładów jest stosowany do pliku XML. .


Odwołanie do elementu

Skonfiguruj zasadę przekształcenia XSL, używając poniższych elementów.

Nazwa pola Opis
Nazwa (obowiązkowe) Nazwa zasady. W nazwie można używać tylko następujących znaków: A-Z0-9._\-$ % Interfejs zarządzania wymusza jednak dodatkowe ograniczenia, na przykład automatycznie usuwać znaki niealfanumeryczne.
Źródło (opcjonalnie) Zawiera komunikat, z którego należy wyodrębnić informacje. Zwykle ta wartość wynosi ma wartość request lub response w zależności od tego, czy wiadomość do jest przychodzący lub wychodzący.
  • Jeśli brakuje źródła, wiadomość jest traktowana jako zwykła wiadomość. Na przykład <Source>message</Source>
  • Jeśli zmiennej źródłowej nie można znaleźć lub przechodzi do typu innego niż wiadomość, funkcja nie udało się przeprowadzić przekształcenia.
Zmienna wyjściowa (opcjonalnie)

Zmienna, która przechowuje dane wyjściowe przekształcenia. Zmienna wyjściowa nie może być typu wiadomości, czyli nie może to być „wiadomość”, „żądanie” ani „odpowiedź”. Zalecenia ustaw ten element jako zmienną niestandardową i wykorzystaj ją.

Aby zastąpić treść wiadomości danymi wyjściowymi przekształcenia, usuń ten . Jeśli na przykład przekształcasz wiadomość do formatu HTML, nie dodawaj jej .

ResourceURL (obowiązkowe) Plik XLS, który ma być używany do przekształcania wiadomości.
Parametry (opcjonalne) zignorowajNierozstrzygnięteZmienne (Opcjonalne)
Ignoruje wszelkie nieusunięte błędy zmiennych w instrukcjach skryptu DDEX.
Prawidłowe wartości: true/false (prawda/fałsz)
Wartość domyślna: false
Parametr (opcjonalny) name (obowiązkowe)

Parametry obsługują użycie parametru XSL w arkuszach stylów, gdzie nazwa tutaj w zasadzie jest nazwa parametru XSL. Jeśli na przykład wpiszesz nazwę „uid”, kod XSL może wyglądać np. tak: <xsl:param name="uid" select="''"/>).

Wartość parametru pochodzi z odwołania do zmiennej kontekstowego (określanej przez ref) lub wyraźny value.

Przykład i więcej informacji znajdziesz na stronie http://community.apigee.com/questions/1860/how-should-the-the-optional-parameters-on-the-xsl.html#answer-1864.

ref (opcjonalnie)

Określa odwołanie, które pobiera wartość ze zmiennej. Jeśli na przykład plik &quot;uid&quot; musi pobrać wartość ze zmiennej o nazwie „authn.uid”, która element będzie wyglądać tak: <Parameter name="uid" ref="authn.uid"/>

Jeśli używasz tego atrybutu, nie używaj atrybutu value.

value (opcjonalnie)

Za pomocą tego atrybutu możesz na stałe zakodować wartość parametru.

Jeśli używasz tego atrybutu, nie używaj atrybutu ref.


Zastosowanie

Plik AutoML jest zaimplementowany w samodzielnym pliku .xsl, który jest przechowywany w interfejsie API na serwerze proxy w standardzie /resources/xsl. Zasada XSL odwołuje się tylko do pliku XSL. Zobacz Pliki zasobów

Zasada XSL wymaga dwóch danych wejściowych:

  • Nazwa arkusza stylów XSLT, który zawiera zestaw reguł przekształcania) przechowywanego w Serwer proxy interfejsu API w domenie /resources/xsl
  • Źródło pliku XML do przekształcenia (zwykle jest to komunikat żądania lub odpowiedzi).

<xsl:include> i <xsl:import> nie są obsługiwane.

Apigee Edge korzysta z saxońskiego języka CSS oraz z arkuszami CSS 1.0 i 2.0.


Informacje o błędzie

Błędy w czasie wykonywania

Te błędy mogą wystąpić podczas wykonywania zasady.

Kod błędu Stan HTTP Przyczyna Napraw
steps.xsl.XSLSourceMessageNotAvailable 500 Ten błąd występuje, jeśli zmienna komunikatu lub ciągu znaków określona w elemencie <Source> zasady przekształcania XSL jest poza zakresem (niedostępna w konkretnym procesie, w którym jest wykonywana) albo nie można jej rozwiązać (nie jest zdefiniowana).
steps.xsl.XSLEvaluationFailed 500 Ten błąd występuje, jeśli wejściowe ładunki XML są niedostępne lub nieprawidłowo sformułowane albo zasada XSLTransform nie lub nie może przekształcić wejściowego pliku XML na podstawie reguł przekształcania podanych w pliku XSL. Przyczyn niepowodzenia zasady XSLTransform może być wiele. Więcej informacji na temat przyczyny niepowodzenia będzie można znaleźć w komunikacie o błędzie.

Błędy wdrażania

Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego te zasady.

Nazwa błędu Przyczyna Napraw
XSLEmptyResourceUrl Jeśli element <ResourceURL> w zasadzie przekształcania XSL jest pusty, wdrożenie serwera proxy interfejsu API nie powiedzie się.
XSLInvalidResourceType Jeśli typ zasobu określony w elemencie <ResourceURL> zasady przekształcania XSL nie jest typu xsl, wdrożenie serwera proxy interfejsu API nie powiedzie się.

Powiązane artykuły