Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Cosa
Questo criterio converte i messaggi dal formato Extensible Markup Language (XML) in JavaScript JSON (Object Notation), che offre diverse opzioni per controllare il modo in cui i messaggi vengono convertito.
Supponendo che lo scopo sia convertire una risposta in formato XML in un la risposta, il criterio viene collegato a un flusso di risposta (ad esempio Response / ProxyEndpoint) / PostFlow).
Informazioni
In uno scenario di mediazione tipico, un criterio da JSON a XML nel flusso di richieste in entrata è spesso abbinate a un criterio da XML a JSON sul flusso di risposta in uscita. Combinando i criteri in questo modo, un'API JSON può essere esposta per i servizi di backend che supportano in modo nativo solo XML.
Per scenari in cui le API vengono utilizzate da diverse app client che potrebbero richiedere JSON o XML, il formato della risposta può essere impostato dinamicamente configurando da JSON a XML e da XML a JSON e i criteri da eseguire in modo condizionale. Consulta Variabili e condizioni di flusso per un'implementazione di questo scenario.
Esempi
Per una discussione dettagliata sulla conversione tra JSON e XML, visita http://community.apigee.com/articles/1839/converting-between-xml-and-json-what-you-need-to-k.html.
Conversione di una risposta
<XMLToJSON name="ConvertToJSON"> <Options> </Options> <OutputVariable>response</OutputVariable> <Source>response</Source> </XMLToJSON>
Questa configurazione, che è la minima richiesta per convertire il file XML
JSON: prende un messaggio di risposta in formato XML come origine e poi crea un
Messaggio in formato JSON che viene compilato nell'attributo OutputVariable response. Dispositivi periferici
utilizza automaticamente i contenuti di questa variabile come messaggio per la successiva fase di elaborazione.
Riferimento elemento
Di seguito sono riportati gli elementi e gli attributi che puoi configurare in questo criterio.
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XML-to-JSON-1"> <DisplayName>XML to JSON 1</DisplayName> <Source>response</Source> <OutputVariable>response</OutputVariable> <Options> <RecognizeNumber>true</RecognizeNumber> <RecognizeBoolean>true</RecognizeBoolean> <RecognizeNull>true</RecognizeNull> <NullValue>NULL</NullValue> <NamespaceBlockName>#namespaces</NamespaceBlockName> <DefaultNamespaceNodeName>&</DefaultNamespaceNodeName> <NamespaceSeparator>***</NamespaceSeparator> <TextAlwaysAsProperty>true</TextAlwaysAsProperty> <TextNodeName>TEXT</TextNodeName> <AttributeBlockName>FOO_BLOCK</AttributeBlockName> <AttributePrefix>BAR_</AttributePrefix> <OutputPrefix>PREFIX_</OutputPrefix> <OutputSuffix>_SUFFIX</OutputSuffix> <StripLevels>2</StripLevels> <TreatAsArray> <Path unwrap="true">teachers/teacher/studentnames/name</Path> </TreatAsArray> </Options> <!-- Use Options or Format, not both --> <Format>yahoo</Format> </XMLToJSON>
<XMLtoJSON> attributi
<XMLtoJSON async="false" continueOnError="false" enabled="true" name="XML-to-JSON-1">
La tabella seguente descrive gli attributi comuni a tutti gli elementi principali del criterio:
| Attributo | Descrizione | Predefinito | Presenza |
|---|---|---|---|
name |
Il nome interno del criterio. Il valore dell'attributo Se vuoi, puoi utilizzare l'elemento |
N/D | Obbligatorio |
continueOnError |
Imposta il valore su Imposta su |
falso | Facoltativo |
enabled |
Imposta il valore su Imposta |
true | Facoltativo |
async |
Questo attributo è obsoleto. |
falso | Deprecato |
<DisplayName> elemento
Da utilizzare in aggiunta all'attributo name per etichettare il criterio in
editor proxy della UI di gestione con un nome diverso e in linguaggio naturale.
<DisplayName>Policy Display Name</DisplayName>
| Predefinito |
N/D Se ometti questo elemento, il valore dell'attributo |
|---|---|
| Presenza | Facoltativo |
| Tipo | Stringa |
<Source> elemento
La variabile, la richiesta o la risposta, contenente il messaggio XML da convertire JSON.
L'intestazione Content-type HTTP del messaggio di origine deve essere impostata su
application/xml, altrimenti il criterio non viene applicato in modo forzato.
Se <Source> non viene definito, viene considerato come messaggio (e viene risolto
da richiedere quando il criterio è collegato a un flusso di richiesta o una risposta quando il criterio è collegato.
a un flusso di risposta).
Se la variabile di origine non può essere risolta o si risolve in un tipo non messaggio, il criterio genera un errore.
<Source>response</Source>
| Predefinita | richiesta o risposta, determinata da dove il criterio viene aggiunto al flusso proxy API |
| Presenza | Facoltativo |
| Tipo | messaggio |
<OutputVariable> elemento
Archivia l'output della conversione in formato da XML a JSON. Di solito corrisponde al valore , ovvero di solito la risposta XML viene convertita in una risposta JSON.
Il payload del messaggio XML viene analizzato e convertito in JSON e il tipo di contenuto HTTP
l'intestazione del messaggio in formato XML sia impostata su application/json.
Se OutputVariable non viene specificato, source viene considerato
OutputVariable. Ad esempio, se source è response,
poi il valore predefinito di OutputVariable è response.
<OutputVariable>response</OutputVariable>
| Predefinita | richiesta o risposta, determinata da dove il criterio viene aggiunto al flusso proxy API |
| Presenza | Questo elemento è obbligatorio quando la variabile definita nell'elemento <Source> è di tipo stringa. |
| Tipo | messaggio |
<Options>
Le opzioni ti consentono di controllare la conversione da XML a JSON. Utilizza il
gruppo <Options>, che ti consente di aggiungere impostazioni di conversione specifiche oppure il
<Format>, che ti consente di fare riferimento a un modello di
predefinite. Non puoi utilizzare sia <Options> che
<Format>.
<Options> è obbligatorio se non viene utilizzato <Format>.
<Options>/<RecognizeNumber> elemento
Se impostato su true, i campi numerici nel payload XML mantengono il formato originale.
<RecognizeNumber>true</RecognizeNumber>
Considera il seguente esempio XML:
<a> <b>100</b> <c>value</c> </a>
Se true, converte in:
{
"a": {
"b": 100,
"c": "value"
}
}Se false, converte in:
{
"a": {
"b": "100",
"c": "value"
}
}| Predefinita | falso |
| Presenza | Facoltativo |
| Tipo | Booleano |
<Options>/<RecognizeBoolean> elemento
Consente alla conversione di mantenere i valori booleani vero/falso anziché convertire i valori in stringhe.
<RecognizeBoolean>true</RecognizeBoolean>
Per il seguente esempio XML:
<a> <b>true</b> <c>value</c> </a>
Se true, converte in:
{
"a": {
"b": true,
"c": "value"
}
}Se false, converte in:
{
"a": {
"b": "true",
"c": "value"
}
}| Predefinita | falso |
| Presenza | Facoltativo |
| Tipo | Booleano |
<Options>/<RecognizeNull> elemento
Consente di convertire i valori vuoti in valori null.
<RecognizeNull>true</RecognizeNull>
Per il seguente XML:
<a> <b></b> <c>value</c> </a>
Se true, converte in:
{
"a": {
"b": null,
"c": "value"
}
}Se false, converte in:
{
"a": {
"b": {},
"c": "value"
}
}| Predefinita | falso |
| Presenza | Facoltativo |
| Tipo | Booleano |
<Options>/<NullValue> elemento
Indica il valore a cui devono essere assegnati i valori null riconosciuti nel messaggio di origine
convertito. Per impostazione predefinita, il valore è null. Questa opzione è valida solo
se RecognizeNull è vero.
<NullValue>not-present</NullValue>
| Predefinita | null |
| Presenza | Facoltativo |
| Tipo | Stringa |
<Options>/<NamespaceBlockName>
<Options>/<DefaultNamespaceNodeName>
<Options>/<NamespaceSeparator> elementi
Usa questi elementi insieme.
<NamespaceBlockName>#namespaces</NamespaceBlockName> <DefaultNamespaceNodeName>&</DefaultNamespaceNodeName> <NamespaceSeparator>***</NamespaceSeparator>
Considera il seguente esempio XML:
<a xmlns="http://ns.com" xmlns:ns1="http://ns1.com"> <ns1:b>value</ns1:b> </a>
Se NamespaceSeparator non è specificato, viene applicata la seguente struttura JSON
generato:
{
"a": {
"b": "value"
}
}Se gli elementi NamespaceBlockName, DefaultNamespaceNodeName e
NamespaceSeparator sono specificati come #namespaces, &,
e ***, rispettivamente, viene generata la seguente struttura JSON:
{
"a": {
"#namespaces": {
"&": "http://ns.com",
"ns1": "http://ns1.com"
},
"ns1***b": "value"
}
}| Predefinita | Vedi gli esempi sopra. |
| Presenza | Facoltativo Tuttavia, se specifichi <NamespaceBlockName>, devi specificare anche i campi
altri due elementi. |
| Tipo | Stringa |
<Options>/<TextAlwaysAsProperty>
<Options>/<TextNodeName> elementi
Usa questi elementi insieme.
Se impostato su true, i contenuti dell'elemento XML vengono convertiti in una stringa
proprietà.
<TextAlwaysAsProperty>true</TextAlwaysAsProperty> <TextNodeName>TEXT</TextNodeName>
Per il seguente XML:
<a> <b>value1</b> <c>value2<d>value3</d>value4</c> </a>
Se TextAlwaysAsProperty viene impostato su true e TextNodeName
specificato come TEXT, viene generata la seguente struttura JSON:
{
"a": {
"b": {
"TEXT": "value1"
},
"c": {
"TEXT": [
"value2",
"value4"
],
"d": {
"TEXT": "value3"
}
}
}
}Se il criterio TextAlwaysAsProperty è impostato su false e
TextNodeName specificato come TEXT, la seguente struttura JSON è
generato:
{
"a": {
"b": "value1",
"c": {
"TEXT": [
"value2",
"value4"
],
{
"d": "value3",
}
}
}| Predefinita | <TextAlwaysAsProperty>: falso<TextNodeName>: N/D |
| Presenza | Facoltativo |
| Tipo | <TextAlwaysAsProperty>: valore booleano<TextNodeName>: stringa |
<Options>/<AttributeBlockName>
<Options>/<AttributePrefix> elementi
Usa questi elementi insieme.
Consente di raggruppare i valori in un blocco JSON e aggiungere prefissi ai nomi degli attributi.
<AttributeBlockName>FOO_BLOCK</AttributeBlockName> <AttributePrefix>BAR_</AttributePrefix>
Considera il seguente esempio XML:
<a attrib1="value1" attrib2="value2"/>
Se entrambi gli attributi (AttributeBlockName e AttributePrefix) sono
specificata come definito nell'esempio da XML a JSON, viene generata la seguente struttura JSON:
{
"a": {
"FOO_BLOCK": {
"BAR_attrib1": "value1",
"BAR_attrib2": "value2"
}
}
}Se viene specificato solo AttributeBlockName, viene applicata la seguente struttura JSON
generato:
{
"a": {
"FOO_BLOCK": {
"attrib1": "value1",
"attrib2": "value2"
}
}
}Se viene specificato solo AttributePrefix, viene applicata la seguente struttura JSON
generato:
{
"a": {
"BAR_attrib1": "value1",
"BAR_attrib2": "value2"
}
}Se nessuna delle due opzioni viene specificata, viene generata la seguente struttura JSON:
{
"a": {
"attrib1": "value1",
"attrib2": "value2"
}
}| Predefinita | Vedi gli esempi sopra. |
| Presenza | Facoltativo |
| Tipo | Stringa |
<Options>/<OutputPrefix>
<Options>/<OutputSuffix> elementi
Usa questi elementi insieme.
<OutputPrefix>PREFIX_</OutputPrefix> <OutputSuffix>_SUFFIX</OutputSuffix>
Considera il seguente esempio XML:
<a>value</a>
Se sono specificati entrambi gli attributi (OutputPrefix e OutputSuffix)
come definito nell'esempio da XML a JSON, viene generata la seguente struttura JSON:
PREFIX_{
"a": "value"
}_SUFFIXSe viene specificato solo OutputPrefix, viene generata la seguente struttura JSON:
PREFIX_{
"a" : "value"
}Se viene specificato solo OutputSuffix, viene generata la seguente struttura JSON:
{
"a" : "value"
}_SUFFIXSe non viene specificato né OutputPrefix né OutputSuffix, quanto segue
Viene generata la struttura JSON:
{
"a": "value"
}| Predefinita | Guarda gli esempi qui sopra. |
| Presenza | Facoltativo |
| Tipo | Stringa |
<Options>/<StripLevels> elemento
<Options>
<StripLevels>4</StripLevels>
</Options>A volte i payload XML, come SOAP, hanno molti livelli padre che non si desidera includere JSON convertito. Ecco un esempio di risposta SOAP contenente molti livelli:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/Schemata-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <GetCityWeatherByZIPResponse xmlns="http://ws.cdyne.com/WeatherWS/"> <GetCityWeatherByZIPResult> <State>CO</State> <City>Denver</City> <Description>Sunny</Description> <Temperature>62</Temperature> </GetCityWeatherByZIPResult> </GetCityWeatherByZIPResponse> </soap:Body> </soap:Envelope>
Ci sono 4 livelli prima di raggiungere i livelli Stato, Città, Descrizione e Temperatura.
Se non utilizzi <StripLevels>, la risposta JSON convertita sarebbe simile a
questo:
{
"Envelope" : {
"Body" : {
"GetCityWeatherByZIPResponse" : {
"GetCityWeatherByZIPResult" : {
"State" : "CO",
"City" : "Denver",
"Description" : "Sunny",
"Temperature" : "62"
}
}
}
}
}Se vuoi eliminare i primi quattro livelli dalla risposta JSON, devi impostare
<StripLevels>4</StripLevels>, che restituisce quanto segue:
JSON:
{
"State" : "CO",
"City" : "Denver",
"Description" : "Sunny",
"Temperature" : "62"
}Puoi eliminare i livelli fino al primo elemento che contiene più elementi secondari. Che cosa questo significa? Vediamo un esempio JSON più complesso:
{
"Envelope" : {
"Body" : {
"GetCityForecastByZIPResponse" : {
"GetCityForecastByZIPResult" : {
"ResponseText" : "City Found",
"ForecastResult" : {
"Forecast" : [
{
"ProbabilityOfPrecipiation" : {
"Nighttime" : "00",
"Daytime" : 10
} ...Il livello 3 in questo esempio è GetCityForecastByZIPResponse, che ne ha solo uno
figlio/a. Pertanto, se utilizzi <StripLevels>3</StripLevels> (rimuovi il
primi tre livelli), il codice JSON sarà simile al seguente:
{
"GetCityForecastByZIPResult" : {
"ResponseText" : "City Found",
"ForecastResult" : {
"Forecast" : [
{
"ProbabilityOfPrecipiation" : {
"Nighttime" : "00",
"Daytime" : 10
} ...Nota che GetCityForecastByZIPResult ha più elementi secondari. Poiché si tratta
primo elemento contenente più elementi secondari, puoi rimuovere quest'ultimo livello utilizzando
<StripLevels>4</StripLevels>, che ti fornirà quanto segue
JSON:
{
"ResponseText" : "City Found",
"ForecastResult" : {
"Forecast" : [
{
"ProbabilityOfPrecipiation" : {
"Nighttime" : "00",
"Daytime" : 10
} ...Poiché il livello 4 è il primo livello che contiene più livelli secondari, non puoi rimuovere alcun livello inferiore a questo valore. Se imposti il livello della striscia a 5, 6, 7 e così via, continuerai ad avere risposta precedente.
| Predefinita | 0 (nessuna rimozione dei livelli) |
| Presenza | Facoltativo |
| Tipo | Numero intero |
<Options>/<TreatAsArray>/<Path> elemento
<Options>
<TreatAsArray>
<Path unwrap="true">teachers/teacher/studentnames/name</Path>
</TreatAsArray>
</Options>Questa combinazione di elementi ti consente di assicurarti che i valori di un documento XML vengano inseriti in un file JSON
un array di dati. Questo è utile, ad esempio, quando il numero di elementi secondari può variare (da uno a
multipli) e vuoi assicurarti che i valori siano sempre in un array. In questo modo
e la stabilità del codice, perché i dati dall'array possono essere acquisiti sempre nello stesso modo. Per
esempio: $.teachers.teacher.studentnames[0] ottiene il primo valore del nome dello studente
a prescindere dal numero di valori nella matrice.
Facciamo un passo indietro e diamo un’occhiata al comportamento predefinito da XML a JSON, quindi scopriamo come
controlla l'output utilizzando <TreatAsArray>/<Path>.
Quando un documento XML contiene un elemento con più valori figlio (di solito in base a uno schema)
dove maxOccurs='unbounded' dell'elemento), il criterio da XML a JSON automaticamente
inserisce questi valori in un array. Ad esempio, il seguente blocco XML
<teacher>
<name>teacherA</name>
<studentnames>
<name>student1</name>
<name>student2</name>
</studentnames>
</teacher>...viene convertita automaticamente nel seguente JSON senza criteri speciali configurazione:
{
"teachers" : {
"teacher" : {
"name" : "teacherA",
"studentnames" : {
"name" : [
"student1",
"student2"
]}
}
}
}Nota che i due nomi degli studenti vengono inseriti in un array.
Tuttavia, se nel documento XML compare solo uno studente, il criterio da XML a JSON automaticamente tratta il valore come una singola stringa, non come un array di stringhe, come mostrato di seguito esempio:
{
"teachers" : {
"teacher" : {
"name" : "teacherA",
"studentnames" : {
"name" : "student1"
}
}
}
}Negli esempi precedenti, dati simili sono stati convertiti in modo diverso, una volta come array, un'altra come
una singola stringa. È qui che l'elemento <TreatAsArray>/<Path> consente
controllare l'output. Puoi, ad esempio, assicurarti che i nomi degli studenti siano sempre inseriti
anche se è presente un solo valore. La configurazione viene configurata identificando il percorso
elemento di cui desideri inserire i valori in un array, in questo modo:
<Options>
<TreatAsArray>
<Path>teachers/teacher/studentnames/name</Path>
</TreatAsArray>
</Options>La configurazione precedente scriverà il codice JSON in questo modo:
{
"teachers" : {
"teacher" : {
"name" : "teacherA",
"studentnames" : {
"name" : ["student1"]
}
]
}
}
}Nota che studente1 è ora in un array. Indipendentemente dal fatto che ci siano
studenti, puoi recuperarli da un array JSON del tuo codice utilizzando il seguente JSONPath:
$.teachers.teacher.studentnames.name[0]
L'elemento <Path> ha anche un attributo unwrap, spiegato in
nella prossima sezione.
| Predefinita | ND |
| Presenza | Facoltativo |
| Tipo | Stringa |
Attributi
<Options>
<TreatAsArray>
<Path unwrap="true">teachers/teacher/studentnames/name</Path>
</TreatAsArray>
</Options>| Attributo | Descrizione | Presenza | Tipo |
|---|---|---|---|
| sciogliere |
Valore predefinito: false Rimuove l'elemento dall'output JSON. Utilizzalo per snellire o rendere più appiattito ("unwrap")
JSON, che abbrevia anche il JSONPath necessario per recuperare i valori. Ad esempio:
anziché Ecco un esempio in formato JSON: {
"teachers" : {
"teacher" : {
"name" : "teacherA",
"studentnames" : {
"name" : [
"student1",
"student2"
]}...In questo esempio, si potrebbe sostenere che l'elemento <TreatAsArray>
<Path unwrap="true">teachers/teacher</Path>
<Path unwrap="true">teachers/teacher/studentnames/name</Path>
</TreatAsArray>L'attributo {
"teachers" : [{
"name" : "teacherA",
"studentnames" : ["student1","student2"]
}]...Tieni presente che, poiché l'elemento |
Facoltativo | Booleano |
Per altri esempi e una procedura dettagliata della funzionalità, consulta questo articolo della community Apigee: https://community.apigee.com/content/kbentry/33374/new-edge-minifeature-the-treatasarray-option-in-th.html.
<Format>
Il formato consente di controllare la conversione da XML a JSON. Inserisci il nome di un
che contiene una combinazione specifica di elementi Opzioni descritti in questo argomento.
I formati predefiniti includono: xml.com, yahoo, google,
badgerFish.
Utilizza l'elemento <Format> o il gruppo <Options>. Non puoi utilizzare
sia <Format> che <Options>.
Di seguito sono riportate le definizioni del formato di ciascun modello predefinito.
xml.com
<RecognizeNull>true</RecognizeNull> <TextNodeName>#text</TextNodeName> <AttributePrefix>@</AttributePrefix>
yahoo
<RecognizeNumber>true</RecognizeNumber> <TextNodeName>content</TextNodeName>
<TextNodeName>$t</TextNodeName> <NamespaceSeparator>$</NamespaceSeparator> <TextAlwaysAsProperty>true</TextAlwaysAsProperty>
badgerFish
<TextNodeName>$</TextNodeName> <TextAlwaysAsProperty>true</TextAlwaysAsProperty> <AttributePrefix>@</AttributePrefix> <NamespaceSeparator>:</NamespaceSeparator> <NamespaceBlockName>@xmlns</NamespaceBlockName> <DefaultNamespaceNodeName>$</DefaultNamespaceNodeName>
Sintassi dell'elemento:
<Format>yahoo</Format>
| Predefinita | Inserisci il nome di un formato disponibile:xml.com, yahoo, google e badgerFish |
| Presenza | Obbligatorio se non viene utilizzato <Options>. |
| Tipo | Stringa |
Schemi
Messaggi di errore
Questa sezione descrive i codici e i messaggi di errore restituiti, nonché le variabili di errore impostate da Edge quando questo criterio attiva un errore. È importante sapere se stai sviluppando regole di errore per per gestire gli errori. Per saperne di più, consulta Cosa devi sapere sugli errori relativi ai criteri e sulla gestione di errore.
Errori di runtime
Questi errori possono verificarsi quando il criterio viene eseguito.
| Codice di errore | Stato HTTP | Causa | Correggi |
|---|---|---|---|
steps.xmltojson.ExecutionFailed |
500 | Questo errore si verifica quando il payload di input (XML) è vuoto o il codice XML di input non è valido o è in un formato non corretto. | build |
steps.xmltojson.InCompatibleType |
500 | Questo errore si verifica se il tipo di variabile definita nell'elemento <Source> e la
L'elemento <OutputVariable> non è uguale. È obbligatorio che il tipo di variabili
contenuto all'interno dell'elemento <Source> e dell'elemento <OutputVariable> corrisponde.
|
build |
steps.xmltojson.InvalidSourceType |
500 | Questo errore si verifica se il tipo di variabile utilizzato per definire l'elemento <Source> è
non valido.I tipi di variabili validi sono message e stringa. |
build |
steps.xmltojson.OutputVariableIsNotAvailable |
500 | Questo errore si verifica se la variabile specificata nell'elemento <Source> del codice XML da utilizzare
Il criterio JSON è di tipo stringa e l'elemento <OutputVariable> non è definito.
L'elemento <OutputVariable> è obbligatorio quando la variabile definita in <Source> è obbligatorio
è di tipo stringa. |
build |
steps.xmltojson.SourceUnavailable |
500 |
Questo errore si verifica se il messaggio
specificata nell'elemento <Source> del criterio da XML a JSON è:
|
build |
Errori di deployment
Questi errori possono verificarsi quando esegui il deployment di un proxy contenente questo criterio.
| Nome errore | Causa | Correggi |
|---|---|---|
EitherOptionOrFormat |
Se uno degli elementi <Options> o <Format> non è
dichiarato nel criterio da XML a JSON, il deployment del proxy API non va a buon fine.
|
build |
UnknownFormat |
Se l'elemento <Format> all'interno del criterio da XML a JSON presenta un valore sconosciuto
definito, il deployment del proxy API non va a buon fine. I formati predefiniti includono:
xml.com, yahoo, google e badgerFish.
|
build |
Variabili di errore
Queste variabili vengono impostate quando si verifica un errore di runtime. Per ulteriori informazioni, vedi Cosa devi sapere sugli errori relativi alle norme.
| Variabili | Dove | Esempio |
|---|---|---|
fault.name="fault_name" |
fault_name è il nome dell'errore, come elencato nella precedente tabella Errori di runtime. Il nome dell'errore è l'ultima parte del codice di errore. | fault.name = "SourceUnavailable" |
xmltojson.policy_name.failed |
policy_name è il nome specificato dall'utente del criterio che ha generato l'errore. | xmltojson.XMLtoJSON-1.failed = true |
Esempio di risposta di errore
{ "fault": { "faultstring": "XMLToJSON[XMLtoJSON-1]: Source xyz is not available", "detail": { "errorcode": "steps.xml2json.SourceUnavailable" } } }
Esempio di regola di errore
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="XML to JSON Faults"> <Step> <Name>AM-SourceUnavailableMessage</Name> <Condition>(fault.name Matches "SourceUnavailable") </Condition> </Step> <Step> <Name>AM-BadXML</Name> <Condition>(fault.name = "ExecutionFailed")</Condition> </Step> <Condition>(xmltojson.XMLtoJSON-1.failed = true) </Condition> </FaultRule>
Argomenti correlati
Da JSON a XML: da JSON a XML norme