Este ejemplo se basa en el ejemplo 4 para añadir soporte básico para el escape entrecomillado de campos de serie de caracteres. Por lo tanto, caracteres reservados como la coma (,) pueden usarse en los datos. Este ejemplo analiza campos con o sin comillas y soporta la utilización de comas en los datos de los campos entre comillas. Conserva las comillas como parte de los datos empresariales y no tiene soporte para el uso de comillas en datos entrecomillados. Si desea ver un tratamiento más completo y complejo del escape entrecomillado, consulte el ejemplo 6 y 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 y 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.IN5. 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:
Intente ahora repetir los pasos 2-6, usando el archivo XML_msg5.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_5>
<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_5>