Este ejemplo se basa en el ejemplo 5 para añadir un soporte más amplio para el escape entrecomillado de estilo de CSV de campos de serie de caracteres. Analiza campos con o sin comillas y para la utilización de comas en los datos de los campos entre comillas. Trata las comillas como parte de los metadatos y, por lo tanto, éstas se eliminan de los datos cuando se analizan y vuelven a aparecer cuando se utiliza el modelo para efectuar la salida de un mensaje CSV. Para saber cómo incluir comillas en los datos de un campo de serie entrecomillada, consulte el ejemplo 7. En el mensaje de entrada hay un solo registro de cabecera seguido de un solo registro de repetición separado por coma, seguido de un solo registro de cola. Se analizará utilizando el conjunto de mensajes de ejemplo y escrito como mensaje XML.
Este apartado incluye instrucciones para ejecutar el ejemplo. Incluye también un ejemplo de un mensaje de prueba entrada y el mensaje de salida esperado correspondiente, de forma que podrá confirmar que el ejemplo ha funcionado.
Si desea ver una explicación más detallada sobre el modelo usado en este ejemplo, consulte el apartado Explorar el ejemplo de Valor separado por coma (CSV).
El mensaje de prueba usado para la ejecución de este ejemplo se basa en el siguiente formato:
2005-04-01,X123456IB7,customer details<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> representa los caracteres ASCII con puntos de código hexadecimales x'0D' y x'0A'.
Este ejemplo usa el flujo de mensajes CSV2XML. Contiene muchos nodos de entrada, pero para este ejemplo utiliza el nodo con la cola cola llamada CSV2XML.IN6. El flujo de mensajes pasa el mensaje a través de un nodo Compute que cambia el formato del mensaje por XML y efectúa la salida del mismo. Esto hace que el mensaje CSV se analice en un árbol lógico y después se grabe en formato XML. El mensaje XML de salida muestra la estructura lógica del mensaje que se ha analizado.
Para ejecutar el ejemplo:
El flujo de mensajes analiza el mensaje CSV y graba el mismo mensaje lógico en XML. Debería aparecer un mensaje en la cola CSV2XML.OUT.
Intente ahora repetir los pasos 2-6, usando el archivo XML_msg6.enqueue (que contiene el mismo mensaje XML de salida del primer flujo) y XML2CSV.IN y XML2CSV.OUT como nombres de las dos colas. Esto pasará el mensaje XML a través del flujo inverso usado la primera etapa que dio como resultado un mensaje CSV como salida. Compárelo con el mensaje CSV original. Tendrían que ser idénticos.
Si todos los pasos anteriores han funcionado correctamente, el ejemplo ha terminado.
Vea ahora el proyecto de conjunto de mensajes y la explicación de esta definición de mensaje en el apartado Explorar el ejemplo de Valor separado por coma (CSV).
El mensaje XML de salida esperado es el siguiente:
<?xml version="1.0"?>
<CSV_6>
<header>
<requestDate>2005-04-01</requestDate>
<requestID>X123456IB7</requestID>
<requestType>customer details</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_6>