Zasada XSLTransform

Wyświetlasz dokumentację Apigee Edge.
Zapoznaj się z dokumentacją Apigee X. info

Co

Zasada przekształcenia XSL stosuje do wiadomości XML niestandardowe przekształcenia w języku XSLT, umożliwiając przekształcanie ich z formatu XML na inny format, np. XML, HTML lub zwykły tekst. Zasada ta jest często używana do integrowania aplikacji, które obsługują XML, ale wymagają różnych formatów XML dla tych samych danych.

Przykłady

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

Zasady 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 XSLT, do którego odwołuje się zasada (my_transform.xsl). Ważny jest element <Source>. Jeśli na przykład w odpowiedzi znajduje się plik XML, który chcesz przekształcić, przekształcenie nie nastąpi, chyba że ustawisz źródło na response (a zasady są dołączone do przepływu odpowiedzi). W tym przypadku jednak XML do przekształcenia znajduje się w żądaniu.

Arkusz stylów 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>

Arkusz stylów my_transform.xsl, do którego odwołuje się zasada. Przejdź do następnego przykładu, aby zobaczyć przykładową przychodzącą wiadomość 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ładowa wiadomość w żądaniu (wskazana w elemencie <Source>request</Source> zasad w pierwszym przykładzie).

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łcona wiadomość po zastosowaniu arkusza stylów XSLT z tych przykładów do wiadomości XML.


Odwołanie do elementu

Skonfiguruj zasadę przekształcenia XSL za pomocą tych elementów.

Nazwa pola Opis
Nazwa (wymagana) Nazwa zasady. W nazwie możesz używać tylko tych znaków:A-Z0-9._\-$ %. Interfejs zarządzania wymusza jednak dodatkowe ograniczenia, takie jak automatyczne usuwanie znaków, które nie są alfanumeryczne.
Źródło (opcjonalnie) Zawiera wiadomość, z której należy wyodrębnić informacje. Zwykle ta wartość jest ustawiona na request lub response w zależności od tego, czy wiadomość do przekształcenia jest przychodząca czy wychodząca.
  • Jeśli źródło nie jest dostępne, wiadomość jest traktowana jako zwykła. Na przykład <Source>message</Source>
  • Jeśli zmiennej źródłowej nie można rozpoznać lub jej wartość nie jest typu message, krok przekształcenia kończy się niepowodzeniem.
OutputVariable (opcjonalnie)

Zmienna, która przechowuje wynik przekształcenia. Zmienna wyjściowa nie może być typu Message, czyli nie może być to „message”, „request” ani „response”. Ten element należy ustawić jako zmienną niestandardową, a następnie użyć tej zmiennej.

Aby zastąpić treść wiadomości wynikiem przekształcenia, usuń ten element. Jeśli na przykład przekształcasz wiadomość na HTML, nie uwzględniaj tego elementu.

ResourceURL (wymagany) Plik XSLT, który ma być używany do przekształcania wiadomości.
Parametry (opcjonalne) ignoreUnresolvedVariables (opcjonalny)
Ignoruje wszelkie nierozwiązane błędy zmiennych w instrukcjach skryptu XSLT.
Prawidłowe wartości: prawda/fałsz
Wartość domyślna: false
Parametr (opcjonalny) name (wymagany)

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

Wartość parametru jest określana na podstawie odwołania do zmiennej kontekstowej (identyfikowanej przez atrybut ref) lub za pomocą jawnego atrybutu value.

Przykład i więcej informacji znajdziesz w poście na karcie Społeczność.

ref (opcjonalnie)

Określa odwołanie, które pobiera wartość ze zmiennej. Jeśli np. parametr „uid” ma pobierać wartość ze zmiennej o nazwie „authn.uid”, element Parameter będzie wyglądać tak: <Parameter name="uid" ref="authn.uid"/>

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

wartość (opcjonalnie)

Możesz użyć tego atrybutu, aby na stałe zakodować wartość parametru.

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


Zastosowanie

XSLT jest zaimplementowany w samodzielnym pliku .xsl, który jest przechowywany w proxy interfejsu API w sekcji /resources/xsl. Zasada XSL odwołuje się tylko do pliku XSL. Więcej informacji znajdziesz w artykule Pliki zasobów.

Zasada XSL wymaga 2 danych wejściowych:

  • Nazwa arkusza stylów XSLT, który zawiera zestaw reguł przekształcania, przechowywanego w proxy interfejsu API w folderze /resources/xsl.
  • Źródło XML, które ma zostać przekształcone (zwykle żądanie lub wiadomość z odpowiedzią).

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

Apigee Edge korzysta z procesora Saxon XSLT i obsługuje XSLT 1.0 i 2.0.


Odniesienie do błędu

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