Questo esempio si basa sull'esempio 4 ed aggiunge supporto base per l'utilizzo, nei campi di stringa, del carattere escape formato da apici nello stile CSV. Quindi, è possibile utilizzare nei dati caratteri riservati quali la virgola (,). Questo esempio analizza campi con o senza apici e supporta la virgola nei dati per i campi racchiusi tra apici. Considera gli apici come parte dei dati aziendali e non supporta l'utilizzo di apici all'interno dei dati racchiusi tra apici. Per una discussione più completa e complessa sull'utilizzo del carattere escape CSV consultare l'esempio 6 e l'esempio 7. Nel messaggio di input vi è un singolo record header, seguito da un singolo record separato da virgole che si ripete, a sua volta seguito da un singolo record trailer. Tale messaggio viene analizzato utilizzando la serie di messaggi di esempio e scritto come messaggio XML.
Questo argomento include istruzioni per l'esecuzione dell'esempio. Include inoltre un esempio di messaggio di prova di input e un messaggio di output corrispondente previsto, in modo da poter confermare il funzionamento dell'esempio.
Per una spiegazione dettagliata del modello di messaggio utilizzato in questo esempio fare riferimento a Esame dell'esempio CSV (Comma Separated Value).
Il messaggio di prova utilizzato nell'esecuzione di questo esempio si basa sul seguente formato:
2005-04-01,X123456IB7,dettagli cliente<CRLF>
Bob,Dyson,"House of the Rising Sun, 1, Desolation Row",Orlando,FL,32802,HYT-457-AX<CRLF>
Jimmy,Pace,"1002, Misty Mountain Drive",New York,NY,10001,ADU-239-BX<CRLF>
Ralf,McCartney,67 Penny Lane,Las Vegas,NV,89125,JUI-854-CF<CRLF>
Elvis,John,3 Yellow Brick Road,Chicago,IL,60699,GGY-118-AS<CRLF>
Rick,Clayton,"461, Ocean Boulevard",Miami,FL,33101,LOP-212-TY<CRLF>
5
<CRLF> rappresenta i caratteri con punti codice esadecimale ASCII x'0D' e x'0A'.
Questo esempio utilizza il flusso di messaggi CSV2XML. Contiene molti nodi di input ma per questo esempio utilizza il nodo con la coda denominata CSV2XML.IN5. Il flusso di messaggi trasmette il messaggio ad un nodo Compute che ne modifica il formato in XML e scrive il messaggio. Questo fa sì che il messaggio CSV venga analizzato in un albero logico e quindi scritto in formato XML. Il messaggio XML di output mostra la struttura logica del messaggio analizzato.
Per eseguire l'esempio:
Provare a ripetere i passi da 2 a 6, utilizzando il file XML_msg5.enqueue (che contiene lo stesso messaggio XML emesso dal primo flusso) e XML2CSV.IN e XML2CSV.OUT come le due code. In questo modo si trasmette il messaggio XML al flusso inverso rispetto a quello utilizzato nel primo stadio che dà come risultato un messaggio CSV come output. Confrontare questo messaggio con il messaggio CSV originale. Dovrebbero essere identici.
Se tutti i passi sono riusciti, l'esempio è completato.
Ora è opportuno consultare il progetto della serie di messaggi e la spiegazione di questa definizione di messaggio contenuti nella sezione Esame dell'esempio CSV (Comma Separated Value).
Il messaggio XML di output previsto è:
<?xml version="1.0"?>
<CSV_5>
<header>
<requestDate>2005-04-01</requestDate>
<requestID>X123456IB7</requestID>
<requestType>dettagli cliente</requestType>
</header>
<customer>
<firstname>Bob</firstname>
<lastname>Dyson</lastname>
<streetaddress>"House of the Rising Sun, 1, Desolation Row"</streetaddress>
<cityname>Orlando</cityname>
<statecode>FL</statecode>
<postcode>32802</postcode>
<referencecode>HYT-457-AX</referencecode>
</customer>
<customer>
<firstname>Jimmy</firstname>
<lastname>Pace</lastname>
<streetaddress>"1002, Misty Mountain Drive"</streetaddress>
<cityname>New York</cityname>
<statecode>NY</statecode>
<postcode>10001</postcode>
<referencecode>ADU-239-BX</referencecode>
</customer>
<customer>
<firstname>Ralf</firstname>
<lastname>McCartney</lastname>
<streetaddress>67 Penny Lane</streetaddress>
<cityname>Las Vegas</cityname>
<statecode>NV</statecode>
<postcode>89125</postcode>
<referencecode>JUI-854-CF</referencecode>
</customer>
<customer>
<firstname>Elvis</firstname>
<lastname>John</lastname>
<streetaddress>3 Yellow Brick Road</streetaddress>
<cityname>Chicago</cityname>
<statecode>IL</statecode>
<postcode>60699</postcode>
<referencecode>GGY-118-AS</referencecode>
</customer>
<customer>
<firstname>Rick</firstname>
<lastname>Clayton</lastname>
<streetaddress>"461, Ocean Boulevard"</streetaddress>
<cityname>Miami</cityname>
<statecode>FL</statecode>
<postcode>33101</postcode>
<referencecode>LOP-212-TY</referencecode>
</customer>
<trailer>
<totalRecords>5</totalRecords>
</trailer>
</CSV_5>