Esta amostra é construída na amostra 4 para incluir suporte básico para estilo CSV com aspas que escapam dos campos de cadeia. Portanto, caracteres reservados como vírgula (,) podem ser utilizados nos dados. Ela analisa campos com ou sem aspas e suporta vírgula nos dados para campos com aspas. No entanto, ela mantém as aspas como parte dos dados de negócios e não suporta o uso de aspas nos dados com aspas. Para um tratamento mais completo e complexo de aspas de escape do CSV, consulte a amostra 6 e a amostra 7. Na mensagem de entrada existe um único registro de cabeçalho seguido por um único registro de repetição separado por vírgula seguido por um registro de marca de fim de arquivo único. Isso é analisado utilizando o conjunto de mensagens de amostra e gravado como uma mensagem XML.
Este tópico inclui instruções para a execução da amostra. Ele também inclui um exemplo de mensagem de teste de entrada e uma mensagem de saída expecgted correspondente para que você possa confirmar que a amostra funcionou.
Para obter uma explicação mais detalhada do modelo de mensagem utilizado nesta amostra consulte Explorando a Amostra CSV (Comma Seaprated Value).
A mensagem de teste utilizada na execução dessa amostra é baseada no seguinte 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 os caracteres com pontos de código ASCII hexadecimais x'0D' e x'0A'.
Esta amostra utiliza o fluxo de mensagens CSV2XML. Ela contém muitos nós de entrada, mas para esta amostra ela utiliza o nó com a fila denominada CSV2XML.IN5. O fluxo de mensagens transmite a mensagem através de um nó de computação que altera o formato para XML e escreve a mensagem. Isso faz com que a mensagem CSV seja analisada em uma árvore lógica e gravada no formato XML. A mensagem XML de saída mostra a estrutura lógica da mensagem que foi analisada.
Para executar a amostra:
Agora tente repetir as etapas de 2 a 6, utilizando o arquivo XML_msg5.enqueue (que contém a mesma saída de mensagem XML através do primeiro fluxo) e XML2CSV.IN e XML2CSV.OUT como as duas filas. Isso transmite a mensagem XML através do fluxo reverso daquele utilizado no primeiro estágio, resultando em uma mensagem CSV como saída. Compare isso com a mensagem CSV original. Elas devem ser idênticas.
Se todas as etapas tiverem funcionado, a amostra estará concluída.
Agora dê uma olhada no projeto do conjunto de mensagens e na explicação desta definição de mensagem em Explorando a Amostra CSV (Comma Seaprated Value).
A mensagem XML de saída esperada é:
<?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>