Wyświetlasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
XSLSourceMessageNotAvailable
Kod błędu
steps.xsl.XSLSourceMessageNotAvailable
Treść odpowiedzi na błąd
{ "fault": { "faultstring": "response message is not available for XSL: policy_name", "detail": { "errorcode": "steps.xsl.XSLSourceMessageNotAvailable" } } }
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "response message is not available for XSL: xslt",
"detail": {
"errorcode": "steps.xsl.XSLSourceMessageNotAvailable"
}
}
}
Przyczyna
Ten błąd występuje, jeśli
wiadomość
lub zmienna ciągu podana w elemencie <Source>
zasady przekształcania XSL to:
- Poza zakresem (niedostępne w konkretnym procesie, w którym są realizowane zasady)
- Nie można go rozwiązać (nie jest zdefiniowany)
Ten błąd występuje na przykład, gdy w przepływie żądania ma być wykonana zasada transformacji XSL, ale element <Source>
jest ustawiony na zmienną odpowiedzi, która nie istnieje w przepływie żądania.
Diagnostyka
Wskaż zasadę transformacji XSL, w której wystąpił błąd, oraz podaj jej nazwę zmiennej, która jest niedostępna. Oba te elementy znajdziesz w
faultstring
element odpowiedzi na błąd. Na przykład w tym wyrażeniufaultstring
nazwa zasad toxslt
, a zmienna toresponse
:faultstring": "response message is not available for XSL: xslt
W pliku XML zasad przekształcenia XSL, które nie przeszło weryfikacji, sprawdź, czy nazwa zmiennej w elemencie
<Source>
odpowiada nazwie zmiennej wskazanej w ciągu znaków błędu (krok 1 powyżej). Na przykład ta polityka transformacji XSL określa w elemencie<Source>
zmienną o nazwieresponse
, która odpowiada wartości w ciągu błędów:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XSL async="false" continueOnError="false" enabled="true" name="xslt"> <DisplayName>xslt</DisplayName> <Properties/> <ResourceURL>xsl://XSL-Transform.xsl</ResourceURL> <Source>response</Source> <Parameters ignoreUnresolvedVariables="false"/> <OutputVariable/> </XSL>
Sprawdź, czy zmienna używana w elemencie
<Source>
jest zdefiniowana i dostępna w przepływie, w którym jest wykonywana zasada XSL Transform.Jeśli zmienna jest:
- Poza zakresem (niedostępne w konkretnym procesie, w którym obowiązują zasady) wykonano) lub
- Nie można rozwiązać (niezdefiniowana)
to jest jego przyczyną.
Na przykład załóżmy, że przedstawiona powyżej zasada przekształcenia XSL powinna wykonywać w przepływie żądania. Pamiętaj, że zmienna
response
jest używana w elementu<Source>
przykładowej zasady. Zmiennaresponse
ma postać są dostępne tylko w przepływie odpowiedzi.Zmienna
response
nie występuje w przepływie żądania, więc otrzymujesz kod błędu:steps.xsl.XSLSourceMessageNotAvailable
Rozdzielczość
Upewnij się, że zmienna określona w elemencie <Source>
w zasadach, w których nie udało się przekształcić kodu XSL, jest zdefiniowana i występuje w przepływie, w którym są wykonywane zasady.
Aby poprawić przykładową zasadę transformacji XSL pokazaną powyżej, możesz zmodyfikować element <Source>
, aby używał zmiennej request
, ponieważ występuje ona w przepływie żądania:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XSL async="false" continueOnError="false" enabled="true" name="xslt">
<DisplayName>xslt</DisplayName>
<Properties/>
<ResourceURL>xsl://XSL-Transform.xsl</ResourceURL>
<Source>request</Source>
<Parameters ignoreUnresolvedVariables="false"/>
<OutputVariable/>
</XSL>
XSLEvaluationFailed
Kod błędu
steps.xsl.XSLEvaluationFailed
Treść odpowiedzi na błąd
{
"fault": {
"faultstring": "Evaluation of XSL <var>XSL_file_name</var> failed with reason: \"<var>reason_for_failure</var>",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
Możliwe przyczyny
Ten błąd występuje, jeśli:
- Wejściowy ładunek XML jest niedostępny/nieprawidłowo sformatowany.
- Zasada XSLTransform kończy się niepowodzeniem lub nie można przekształcić wejściowego pliku XML na podstawie reguł przekształcania zawartych w pliku XSL. Niepowodzenie reguły XSLTransform może mieć wiele różnych przyczyn. powód niepowodzenia. zawiera więcej informacji o przyczynie. Poniżej tabela zawiera jedną z takich przyczyn tego błędu – Nieprawidłowy prefiks .
Przyczyna | Opis |
---|---|
Wejściowa ładunek XML jest niedostępny | Dane wejściowe XML nie zostały przekazane lub są puste. |
Uszkodzony kod XML wejściowy | Wejściowy ładunek XML jest uszkodzony lub nieprawidłowy. |
Nieprawidłowy prefiks | Dane wejściowe w pliku XML mają prefiks, który nie jest zdefiniowany w pliku XSL. |
Przyczyna: dane wejściowe XML są niedostępne
Ten błąd występuje, gdy nie przekazano danych wejściowych w formacie XML lub gdy dane wejściowe w formacie XML przekazane w ramach żądania interfejsu API do interfejsu API Proxy z zasadami XSLTransform są puste.
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
Diagnostyka
Zidentyfikuj plik XSL, którego nie można było ocenić przez przekształcenie XML zasad i przyczyny niepowodzenia. Jeśli dane wejściowe XML nie zostaną przekazane lub są puste, przyczyna niepowodzenia będzie wskazywać na przedwczesne zakończenie dokumentu podczas analizowania. Wszystkie te informacje znajdziesz w elemencie
faultstring
odpowiedzi na błąd. Na przykład w tym elemenciefaultstring
atrybut Plik XSL ma formatXSL-Transform.xsl
, a przyczyna niepowodzenia toPremature end of document while parsing at line 1 (possibly around char 0)
. Ten błąd oznacza, że że ładunek XML nie został przekazany lub jest pusty."faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
Określ, czy wejściowy ładunek XML został przekazany w ramach żądania Element z jest pusty. Jeśli ładunek wejściowy nie został przekazany lub jest pusty, jest to przyczyna błędu.
W przykładowym żądaniu poniżej ładunek żądania (czyli treść żądania) wysłany przez użytkownika był pusty.
Na przykład:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml"
Ponieważ ładunek wejściowy XML jest pusty, występuje błąd:
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
Rozdzielczość
Sprawdź, czy dane wejściowe przekazywane do zasady XSLTransform to prawidłowy ładunek XML oraz niepuste.
Aby rozwiązać problem z przykładową zasadą XSLTransform, przekaż prawidłowy ładunek XML. Na przykład:
Utwórz plik o nazwie
city.xml
z tą zawartością:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
Wykonaj wywołanie interfejsu API za pomocą polecenia cURL w ten sposób:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
Przyczyna: nieprawidłowy format danych wejściowych w formacie XML
Dane wejściowe XML przekazane jako część żądania interfejsu API do reguły XSLTransform są nieprawidłowe lub mają nieprawidłowy format.
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
Diagnostyka
Określ plik XSL, którego nie udało się przetworzyć na podstawie zasad dotyczących przetwarzania XML, oraz przyczynę niepowodzenia. Jeśli wejściowy ładunek XML ma nieprawidłowy format, przyczyną oznacza niespodziewany znak. Znajdziesz to wszystko informacje w elemencie
faultstring
odpowiedzi na błąd. Na przykład w następującym komunikaciefaultstring
plik XSL toXSL-Transform.xsl
, a przyczyna błędu toUnexpected char while looking for open tag ('<') character
. Oznacza to, że „<
” brakuje w ładunku XML."faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
Sprawdź wejściowy ładunek XML przekazany do zasady XSLTransform i zobacz, czy ma prawidłową treść XML. Jeśli ładunek wejściowy nie jest prawidłowym kodem XML, to informacje o przyczynie błędu.
W przykładowym żądaniu poniżej ładunek wejściowy (czyli treść żądania) wysłany przez użytkownika był nieprawidłowy.
Na przykład:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
Gdzie
city.xml
to:{ "City": "Bengaluru", "Name": "Apigee", "Pincode": "560016" }
Ponieważ ładunek wejściowy jest w formacie JSON, a nieprawidłowy XML, pojawia się błąd:
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
Rozdzielczość
Upewnij się, że dane wejściowe przekazane do reguły XSLTransform są prawidłowym ładunkiem XML i nie są puste.
Aby rozwiązać problem z przykładową zasadą XSLTransform, przekaż prawidłowy ładunek XML. Na przykład:
Zmodyfikuj plik
city.xml
, aby zawierał zawartość w formacie XML, jak pokazano poniżej:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
Wywołanie interfejsu API przy użyciu polecenia cURL w następujący sposób:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
Przyczyna: nieprawidłowy prefiks
Dane wejściowe w formacie XML przekazane do reguły XSLTransform zawierają element, który nie jest zdefiniowany jako prefiks w pliku XSL określonym w zasadzie.
Przykładowy komunikat o błędzie
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
Diagnostyka
Zidentyfikuj plik XSL, którego nie mogła ocenić zasada przekształcania XML i przyczynie niepowodzenia. W tym przypadku przyczyna błędu wskazuje, że w danym wierszu w danych wejściowych XML występuje nierozwiązany prefiks. Wszystkie te informacje znajdziesz w elemencie
faultstring
odpowiedzi na błąd. Na przykład w plikufaultstring
plik XSL toXSL-Transform.xsl
, a przyczyna błędu toUnresolved Prefix
, a numer wiersza to1
."faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
Sprawdź zawartość pliku XSL (zidentyfikowanego w kroku 1 powyżej) i wejściowy ładunek XML. Jeśli prefiks używany w numerze wiersza (podany w kroku 1 powyżej) wiersza ponieważ wejściowy ładunek XML nie istnieje w pliku XSL, to właśnie to jest przyczyną błędu.
Oto przykładowy plik XSL i odpowiedni ładunek XML, który powoduje błąd:
XSL-Transform.xsl <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>
Dane wejściowe w formacie XML
<?xml version="1.0"?> <Life:Books> <title>A few of my favorite albums</title> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> </Life:Books>
Przykładowy ładunek XML pokazany powyżej zawiera element
<Life:Books>
. Zwróć uwagę, że plik XSL nie ma tego prefiksu. Zamiast tego ma prefiks<xsl:text><Life></xsl:text>
. W związku z tym pojawia się błąd:"faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
Rozdzielczość
Sprawdź, czy wejściowy ładunek XML przekazany do zasady XSLTransform ma wszystkie formaty elementów zdefiniowane jako prefiksy w pliku XSL używanym w zasadzie.
Aby naprawić powyższy przykładowy plik XML, możesz go zmodyfikować w ten sposób:
Zaktualizowano wejściowy ładunek XML
<?xml version="1.0"?>
<Life>
<title>A few of my favorite albums</title>
<listitem>Beat Crazy</listitem>
<listitem>Here Come the Warm Jets</listitem>
<listitem>Kind of Blue</listitem>
<listitem>London Calling</listitem>
</Life>