Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
Co
Zasada przekształcania XSL stosuje niestandardowe przekształcenia języka arkusza stylów (XSLT) do wiadomości XML, umożliwiając przekształcenie ich z formatu XML na inny format, taki jak XML, HTML lub zwykły tekst. Ta zasada jest często używana do integrowania aplikacji obsługujących XML, ale w przypadku tych samych danych wymagają one różnych formatów XML.
Sample
Poniższe przykłady pokazują wszystkie zasoby w procesie przekształcania 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, do którego odwołuje się zasada (my_transform.xsl
). Ważny jest element <Source>
.
Jeśli na przykład plik XML, który chcesz przekształcić, znajduje się w odpowiedzi, przekształcenie nie zostanie wykonane, chyba że ustawisz wartość response
(a zasada zostanie dołączona do przepływu odpowiedzi). W tym przypadku kod XML do przekształcenia znajduje się w żądaniu.
Arkusz stylów CSS ->
<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>
Arkusz stylów my_transform.xsl
, do którego odwołuje się zasada. Przejdź do następnego przykładu, aby zobaczyć przykład przychodzącej wiadomości 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 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łcony komunikat po zastosowaniu arkusza stylów CSS z tych przykładów do komunikatu XML.
Odwołanie do elementu
Skonfiguruj zasadę transformacji XSL za pomocą poniższych elementów.
Nazwa pola | Opis | |||
---|---|---|---|---|
Imię i nazwisko (wymagane) |
Nazwa zasady. Znaki, których możesz używać w nazwie, są ograniczone do: A-Z0-9._\-$ % . Interfejs zarządzania wymusza jednak dodatkowe ograniczenia, takie jak automatyczne usuwanie znaków niealfanumerycznych.
|
|||
Ź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.
|
|||
Zmienna wyjściowa (opcjonalnie) |
Zmienna, która przechowuje dane wyjściowe przekształcenia. Zmienna wyjściowa nie może mieć typu komunikatu, czyli nie może być to „message”, „request” ani „response”. Ustaw ten element jako zmienną niestandardową i użyj tej zmiennej. Aby zastąpić treść wiadomości danymi wyjściowymi przekształcenia, usuń ten element. Jeśli na przykład przekształcasz wiadomość na kod HTML, nie uwzględniaj tego elementu. |
|||
ResourceURL (wymagany) | Plik SDF, który ma być używany do przekształcenia wiadomości. | |||
Parametry (opcjonalne) | ignorowanych zmiennych nierozstrzygniętych (opcjonalnie) |
Ignoruje wszystkie nieusunięte błędy zmiennych w instrukcjach skryptu Spannera.
Prawidłowe wartości: true/false
Wartość domyślna: false
|
||
Parametr (opcjonalny) | imię i nazwisko (wymagane) |
Parametry obsługują w arkuszach stylów korzystanie z parametru XSL. Nazwa podana w zasadzie to nazwa parametru XSL. Jeśli na przykład wpiszesz nazwę „uid”, Twój kod XSL może wyglądać mniej więcej tak: Wartość parametru jest uzyskiwana z odniesienia do zmiennej kontekstowej (określonej przez atrybut 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 parametr „uid” musi uzyskać swoją wartość ze zmiennej o nazwie „authn.uid”, element Parametr będzie wyglądał tak: Jeśli używasz tego atrybutu, nie używaj atrybutu wartość. |
|||
wartość (opcjonalnie) |
Możesz użyć tego atrybutu do zakodowania na stałe wartości parametru. Jeśli używasz tego atrybutu, nie używaj atrybutu ref. |
Zastosowanie
Plik SDF jest zaimplementowany w samodzielnym pliku .xsl
, który jest przechowywany na serwerze proxy interfejsu API pod adresem /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 YAML, który zawiera zestaw reguł przekształcania) przechowywanych na serwerze proxy interfejsu API w sekcji
/resources/xsl
- Źródło pliku XML do przekształcenia (zwykle jest to wiadomość żądania lub odpowiedzi).
Wartości <xsl:include>
i <xsl:import>
nie są obsługiwane.
Apigee Edge korzysta z procesora Spannera Saxon i obsługuje język Spannera w wersji 1.0 i 2.0.
Informacje o błędach
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).
|
build |
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. | build |
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ę. |
build |
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ę. |
build |