Está a ver a documentação do Apigee e do Apigee Hybrid.
    Ver documentação do 
    Apigee Edge.
  
XSLSourceMessageNotAvailable
Código de erro
steps.xsl.XSLSourceMessageNotAvailable
Corpo da resposta de erro
{
    "fault": {
        "faultstring": "response message is not available for XSL: policy_name",
        "detail": {
            "errorcode": "steps.xsl.XSLSourceMessageNotAvailable"
        }
    }
}Exemplo de mensagem de erro
{
    "fault": {
        "faultstring": "response message is not available for XSL: xslt",
        "detail": {
            "errorcode": "steps.xsl.XSLSourceMessageNotAvailable"
        }
    }
}
Causa
Este erro ocorre se a variável de string ou de
message
especificada no elemento <Source> da política XSLTransform for:
- Fora do âmbito (não disponível no fluxo específico onde a política está a ser executada)
- Não é possível resolver (não está definido)
Por exemplo, este erro ocorre se a política XSLTransform for suposta ser executada no fluxo de pedidos, mas o elemento <Source> estiver definido para a variável de resposta, que não existe no fluxo de pedidos.
Diagnóstico
- Identifique a política XSLTransform onde ocorreu o erro e o nome da variável que não está disponível. Pode encontrar ambos os itens no elemento - faultstringda resposta de erro. Por exemplo, no seguinte- faultstring, o nome da política é- xslte a variável é- response:- faultstring": "response message is not available for XSL: xslt
- No XML da política XSLTransform com falha, verifique se o nome da variável definida no elemento - <Source>corresponde ao nome da variável identificado na string de falha (passo n.º 1 acima). Por exemplo, a seguinte política XSLTransform especifica uma variável denominada- responseno elemento- <Source>, que corresponde ao que está na string de falha:- <?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>
- Determinar se a variável usada no elemento - <Source>está definida e disponível no fluxo no qual a política XSLTransform está a ser executada.
- Se a variável for: - Fora do âmbito (não disponível no fluxo específico onde a política está a ser executada) ou
- Não é possível resolver (não está definido)
 - Então, essa é a causa do erro. - Por exemplo, suponhamos que a política XSLTransform apresentada acima se destina a ser executada no fluxo de pedidos. Recorde que a variável - responseé usada no elemento- <Source>da política de exemplo. A variável- responsesó está disponível no fluxo de resposta.- Uma vez que a variável - responsenão existe no fluxo de pedidos, recebe o código de erro:- steps.xsl.XSLSourceMessageNotAvailable
Resolução
Certifique-se de que a variável definida no elemento <Source> da política XSLTransform com falha está definida e existe no fluxo onde a política é executada.
Para corrigir a política XSLTransform de exemplo apresentada acima, pode modificar o elemento <Source> para usar a variável request, porque existe no fluxo de pedidos:
<?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
Código de erro
steps.xsl.XSLEvaluationFailed
Corpo da resposta de erro
{
  "fault": {
      "faultstring": "Evaluation of XSL <var>XSL_file_name</var> failed with reason: \"<var>reason_for_failure</var>",
      "detail": {
          "errorcode": "steps.xsl.XSLEvaluationFailed"
      }
  }
}
Exemplo de mensagem de erro
{
    "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"
        }
    }
}
Causas possíveis
Este erro ocorre se:
- O payload XML de entrada está indisponível/com formato incorreto.
- A política XSLTransform falha/não consegue transformar o ficheiro XML de entrada com base nas regras de transformação fornecidas no ficheiro XSL. Podem existir muitas causas diferentes para a falha da política XSLTransform. O motivo da falha na mensagem de erro fornece mais informações sobre a causa. A tabela seguinte lista uma das causas desta falha (prefixo inválido) e é explicada com um exemplo.
| Causa | Descrição | 
|---|---|
| Payload XML de entrada indisponível | A carga útil XML de entrada não é transmitida ou está vazia. | 
| XML de entrada com formato incorreto | A carga útil XML de entrada tem um formato incorreto ou é inválida. | 
| Prefixo inválido | A carga útil XML de entrada tem um prefixo que não está definido no ficheiro XSL. | 
Causa: o payload XML de entrada está indisponível
Este erro ocorre se o payload XML de entrada não for transmitido ou se o payload XML transmitido como parte do pedido da API ao proxy da API com a política XSLTransform estiver vazio.
Exemplo de mensagem de erro
{
    "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"
        }
    }
}
Diagnóstico
- Identificar o ficheiro XSL que não pôde ser avaliado pela política de transformação XML e o motivo da falha. Se a carga útil XML de entrada não for transmitida ou estiver vazia, o motivo da falha indica que existe um fim prematuro do documento durante a análise. Pode encontrar todas estas informações no elemento - faultstringda resposta de erro. Por exemplo, no seguinte- faultstring, o ficheiro XSL é- XSL-Transform.xsle o motivo da falha é- Premature end of document while parsing at line 1 (possibly around char 0). Esse erro significa que a carga útil XML não foi transmitida ou está vazia.- "faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
- Determine se a carga útil XML de entrada que foi transmitida como parte do pedido está vazia. Se o payload de entrada não for transmitido ou estiver vazio, essa é a causa do erro. - No pedido de exemplo abaixo, a carga útil do pedido (ou seja, o corpo do pedido) enviada pelo utilizador estava vazia. - Por exemplo: - curl -v "http://your_host_alias/v1/xsltransform" -H "Content-Type: application/xml" - Em que your_host_alias é um domínio público usado para aceder às suas APIs, conforme configurado na propriedade - virtualhosts.hostAliasesno ficheiro de substituições. Consulte Especifique substituições de configuração.- Uma vez que o payload de entrada XML está vazio, recebe o seguinte erro: - "faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
Resolução
Certifique-se de que a entrada transmitida à política XSLTransform é uma carga útil XML válida e não está vazia.
Para corrigir o problema com a política XSLTransform de exemplo, transmita uma carga útil XML válida. Por exemplo:
- Crie um ficheiro denominado - city.xmlcom o seguinte conteúdo:- <?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
- Faça a chamada da API através de um comando curl da seguinte forma: - curl -v "http://your_host_alias/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml - Em que your_host_alias é um domínio público usado para aceder às suas APIs, conforme configurado na propriedade - virtualhosts.hostAliasesno ficheiro de substituições. Consulte Especifique substituições de configuração.
Causa: XML de entrada com formato incorreto
A carga útil XML de entrada transmitida como parte do pedido da API para a política XSLTransform tem um formato incorreto ou é inválida.
Exemplo de mensagem de erro
{
    "fault": {
        "faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\"",
        "detail": {
            "errorcode": "steps.xsl.XSLEvaluationFailed"
        }
    }
}
Diagnóstico
- Identifique o ficheiro XSL que não pôde ser avaliado pela política de transformação XML e o motivo da falha. Se a carga útil XML de entrada estiver formatada incorretamente, o motivo da falha indica que existe um carater inesperado. Pode encontrar todas estas informações no elemento - faultstringda resposta de erro. Por exemplo, no seguinte- faultstring, o ficheiro XSL é- XSL-Transform.xsle o motivo da falha é- Unexpected char while looking for open tag ('<') character. Ou seja, o elemento "- <" está em falta na carga útil XML.- "faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
- Examine a carga útil XML de entrada transmitida à política XSLTransform e verifique se tem conteúdo XML válido ou não. Se a carga útil de entrada não for XML válido, essa é a causa do erro. - No pedido de exemplo abaixo, a carga útil de entrada (ou seja, o corpo do pedido) que foi enviada pelo utilizador era inválida. - Por exemplo: - curl -v "http://your_host_alias/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml - Em que your_host_alias é um domínio público usado para aceder às suas APIs, conforme configurado na propriedade - virtualhosts.hostAliasesno ficheiro de substituições. Consulte Especifique substituições de configuração.- Neste exemplo, - city.xmlé definido como:- { "City": "Bengaluru", "Name": "Apigee", "Pincode": "560016" }- Uma vez que o payload de entrada é JSON e não XML válido, recebe o seguinte erro: - "faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
Resolução
Certifique-se de que a entrada transmitida à política XSLTransform é uma carga útil XML válida e não está vazia.
Para corrigir o problema com a política XSLTransform de exemplo, transmita uma carga útil XML válida. Por exemplo:
- Modifique o ficheiro - city.xmlpara ter o conteúdo em XML, conforme apresentado abaixo:- <?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
- Faça a chamada da API através do comando curl da seguinte forma: - curl -v "http://your_host_alias/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml - Em que your_host_alias é um domínio público usado para aceder às suas APIs, conforme configurado na propriedade - virtualhosts.hostAliasesno ficheiro de substituições. Consulte Especifique substituições de configuração.
Causa: prefixo inválido
A carga útil XML de entrada transmitida à política XSLTransform tem um elemento que não está definido como um prefixo no ficheiro XSL especificado na política.
Exemplo de mensagem de erro
{
    "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"
        }
    }
}
Diagnóstico
- Identifique o ficheiro XSL que não pôde ser avaliado pela política de transformação XML e o motivo da falha. Neste caso, o motivo da falha indicaria que existe um prefixo não resolvido num número de linha específico na carga útil XML de entrada. Pode encontrar todas estas informações no elemento - faultstringda resposta de erro. Por exemplo, no seguinte- faultstring, o ficheiro XSL é- XSL-Transform.xsl, o motivo da falha é- Unresolved Prefixe o número da linha é- 1.- "faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
- Examine o conteúdo do ficheiro XSL (identificado no passo n.º 1 acima) e a carga útil XML de entrada. Se o prefixo usado no número da linha (identificado no passo n.º 1 acima) da carga útil XML de entrada não existir no ficheiro XSL, essa é a causa do erro. - Seguem-se o XSL de exemplo e a carga útil XML correspondente que originam o erro: - 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>- Payload XML de entrada - <?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>- O payload XML de exemplo apresentado acima contém um elemento - <Life:Books>. Repare que o XSL não tem este prefixo. Em alternativa, tem o prefixo- <xsl:text><Life></xsl:text>. Por isso, recebe o erro:- "faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
Resolução
Certifique-se de que a carga útil XML de entrada transmitida à política XSLTransform tem todos os formatos de elementos definidos como prefixos no ficheiro XSL usado na política.
Para corrigir o ficheiro XML de exemplo apresentado acima, pode modificar o ficheiro conforme apresentado abaixo:
Payload XML de entrada atualizado
<?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>