Zasada XSLTransform

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Co

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

Przykłady

Te przykłady pokazują wszystkie zasoby w przepływie 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 XSLT, do którego odwołuje się zasada (my_transform.xsl). Ważny jest element <Source>. Jeśli na przykład format XML, który chcesz przekształcić, znajduje się w odpowiedzi, przekształcenie nie nastąpi dopóki nie ustawisz źródła na response (a zasada nie zostanie dołączona do przepływu odpowiedzi). W tym przypadku format XML, który ma zostać przekształcony, 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> zasady 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.


Dokumentacja elementów

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

Nazwa pola Opis
Name (Mandatory) Nazwa zasady. W nazwie możesz używać tylko tych znaków: A-Z0-9._\-$ %. Interfejs zarządzania wymusza jednak dodatkowe ograniczenia, np. automatycznie usuwa znaki, które nie są alfanumeryczne.
Source (Optional) Zawiera wiadomość, z której należy wyodrębnić informacje. Zwykle ta wartość jest ustawiana na request lub response, w zależności od tego, czy wiadomość, która ma zostać przekształcona, jest przychodząca czy wychodząca.
  • Jeśli brakuje źródła, jest ono traktowane jako prosta wiadomość. Na przykład <Source>message</Source>
  • Jeśli nie można rozpoznać zmiennej źródłowej lub zostanie ona rozpoznana jako typ inny niż wiadomość, the krok przekształcenia zakończy się niepowodzeniem.
OutputVariable (Optional)

Zmienna, która przechowuje wynik przekształcenia. Zmienna OutputVariable nie może być typu Message, czyli nie może mieć wartości „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 (Mandatory) Plik XSLT, który ma być używany do przekształcania wiadomości.
Parameters (Optional) ignoreUnresolvedVariables (Optional)
Ignoruje błędy nierozwiązanych zmiennych w instrukcjach skryptu XSLT.
Prawidłowe wartości: true/false
Wartość domyślna: false
Parameter (Optional) name (Mandatory)

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

Parametr pobiera wartość z odwołania do zmiennej kontekstowej (identyfikowanej przez atrybut ref) lub z wyraźnej value.

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

ref (Optional)

Określa odniesienie, które pobiera wartość ze zmiennej. Jeśli na przykład 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 value.

value (Optional)

Ten atrybut umożliwia zakodowanie wartości parametru na stałe.

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


Zastosowanie

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

Zasada XSL wymaga 2 danych wejściowych:

  • nazwa arkusza stylów XSLT, który zawiera zestaw reguł przekształcenia) przechowywanego w serwerze proxy interfejsu API w katalogu /resources/xsl
  • źródło formatu XML, który ma zostać przekształcony (zwykle żądanie lub odpowiedź).

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


Dokumentacja błędów

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