Esta amostra é construída na amostra 6 para incluir suporte mais abrangente para estilo CSV com aspas que escapam dos campos de cadeia. Ela suporta a análise de campos com ou sem aspas e suporta vírgula nos dados para campos com aspas. Além disso, essa amostra trata aspas como parte dos metadados e, portanto, elas são removidas dos dados quando analisadas e reaplicadas quando o modelo é utilizado para saída de uma mensagem CSV. Ela inclui aspas nos dados de um campo com aspas utilizando duas aspas duplas juntas. Na mensagem de entrada existe um único registro de cabeçalho seguido por um único registro de repetição separado por vírgulas 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 Separated 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.IN7. 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:
O fluxo de mensagens analisa a mensagem CSV e escreve a mesma mensagem lógica em XML. Uma mensagem deve aparecer na fila CSV2XML.OUT.
Agora tente repetir as etapas de 2 a 6, utilizando o arquivo XML_msg7.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 Separated Value).
A mensagem XML de saída esperada é:
<?xml version="1.0"?>
<CSV_7>
<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_7>