DFDL-Schema CSV_1 verwenden

Das vorliegende DFDL-Schema CSV_1.xsd veranschaulicht das einfachste Modell für eine durch Kommas getrennte Nachricht (Comma Separated Value, CSV). Die Mustereingabedaten (CSV_1.csv) enthalten einen wiederkehrenden, durch Kommas getrennten Datensatz. Die Mustereingabedaten werden unter Verwendung der DFDL-Schemadatei des Mustercodes analysiert, ein Zuordnungsknoten kopiert den logischen Strukturbaum der DFDL-Domäne in eine XMLNSC-Domänenbaumstruktur und diese Baumstruktur wird als XML-Nachricht serialisiert.

Dieser Abschnitt enthält Anweisungen für die Ausführung des Beispiels. Er enthält außerdem die Mustereingabedaten und erwartete Ausgabenachricht, damit Sie feststellen können, ob der Mustercode erfolgreich war.

Eine ausführliche Erläuterung des in diesem Mustercode verwendeten Nachrichtenmodells finden Sie im Abschnitt Mustercode 'Comma Separated Value (CSV)' testen.

Sollten bei der Ausführung des Mustercodes Probleme auftreten, beachten Sie die Informationen in der Dokumentation für WebSphere Message Broker im Abschnitt Probleme bei der Ausführung von Mustercodes beheben.

DFDL-Schema CSV_1 testen

Sie können die Mustereingabedaten anhand der DFDL-Schemadatei mithilfe des Message Broker Toolkits testen.

So testen Sie die DFDL-Schemadatei:

  1. Öffnen Sie das DFDL-Schema CSV_1.xsd.
  2. Klicken Sie unter Message Roots (Nachrichtenstammelemente) mit der rechten Maustaste auf CSV_1. Klicken Sie auf Test Parse Model (Modell für die Syntaxanalyse testen).
  3. Wählen Sie im Fenster für den Test des Syntaxanalysemodells Content from a data file (Inhalt aus einer Datendatei) aus und klicken Sie auf Browse (Durchsuchen).
  4. Wählen Sie im Fenster für die Dateiauswahl unter dem Nachrichtenbrokerprojekt CSVSchemas die Datei CSV_1.csv aus. Klicken Sie auf OK.
  5. Möglicherweise werden Sie in einem Fenster gefragt, ob die DFDL-Testperspektive geöffnet werden soll. Klicken Sie auf Yes (Ja).

Daraufhin wird die DFDL-Testperspektive geöffnet und die Ergebnisse Ihrer Testanalyse werden in der Ansicht 'DFDL Test - Parse' (DFDL-Test - Syntaxanalyse) angezeigt. Verläuft die Testanalyse erfolgreich, wird die Nachricht "Parsing completed successfully" (Syntaxanalyse erfolgreich abgeschlossen) angezeigt.

In der Ansicht 'Logical Instance' (Logische Instanz) werden die Ergebnisse Ihrer Testanalyse angezeigt. Die Daten werden dort in einer logische Baumstrukturansicht dargestellt. Zeigen Sie mithilfe des Parserprotokolls in der Ansicht 'DFDL - Trace' alle Fehler an, die während der Syntaxanalyse aufgetreten sind.

Eingabetestnachricht

Die Testnachricht, die zur Ausführung dieses Mustercodes verwendet wird, basiert auf folgendem Format:

Bob,Dyson,true,23,23456,0,1543543.36<CRLF>
Jimmy,Pace,false,1002,10001,-4.32423,654654.99<CRLF>
Ralf,McCartney,false,67,89125,4324307.35,986545.12<CRLF>
Elvis,John,true,3,60699,-0.343242356675,99999999999999.99<CRLF>
Rick,Clayton,true,461,33101,0.000000000000001,100.01
Dabei steht '<CRLF>' für die Zeichen mit den hexadezimalen ASCII-Codepunkten x'0D' und x'0A'.

Mustercode ausführen

Dieser Mustercode verwendet den Nachrichtenfluss CSV2XML. Dieser Nachrichtenfluss enthält einen einzelnen MQInput-Knoten, der an die Warteschlange CSV2XML.IN1 angehängt ist. Der Nachrichtenfluss gibt die Nachricht über einen Mapping-Knoten weiter, der die Domäne in XMLNSC ändert und die Nachricht in die Warteschlange CSV2XML.OUT1 stellt. Die XML-Ausgabenachricht stellt die logische Struktur der syntaktisch analysierten Nachricht dar.

Gehen Sie folgendermaßen vor, um den Mustercode auszuführen:

  1. Erweitern Sie in der Ansicht 'Brokerentwicklung' das Nachrichtenbrokerprojekt CSVMessageFlows und öffnen Sie unter Flusstests die Datei CSVApplication.mbtest.
  2. Wählen Sie in der Ansicht 'Editor' den Eintrag mit der Bezeichnung 'Invoke Message flow(CSV_1 to XML)' aus. Beobachten Sie die Daten im CSV-Format.
  3. Klicken Sie auf das Symbol Starten oben links im Editor.
  4. Der Nachrichtenfluss führt eine Syntaxanalyse der CSV-Nachricht aus und serialisiert die Nachricht als XML. Die Ausgabenachricht wird in die Warteschlange CSV2XML.OUT eingereiht.
  5. Die Nachricht wird im Viewer unter Umständen in einer fortlaufenden Zeile angezeigt. Für eine übersichtlichere Anzeige klicken Sie auf die Liste Hauptteil und wählen Sie Als XML-Struktur anzeigen aus.
  6. Vergleichen Sie diese Nachricht mit der erwarteten Ausgabenachricht.

Wenn alle Schritte erfolgreich ausgeführt wurden, ist der Mustercode damit beendet.

Weitere Informationen zur DFDL-Schemadatei im Nachrichtenbrokerprojekt CSVSchemas sowie eine Erläuterung dieses Nachrichtenmodells finden Sie im Abschnitt Mustercode 'Comma Separated Values (CSV)' erkunden.

Erwartete Ausgabenachricht

Die erwartete XML-Ausgabenachricht lautet:

<io:CSV_1 xmlns:io="http://www.example.org">
  <customer>
    <firstname>Bob</firstname>
    <lastname>Dyson</lastname>
    <goldmember>true</goldmember>
    <housenumber>23</housenumber>
    <postcode>23456</postcode>
    <float>0E+0</float>
   <balance>1543543.36</balance>
  </customer><customer>
    <firstname>Jimmy</firstname>
    <lastname>Pace</lastname>
    <goldmember>false</goldmember>
    <housenumber>1002</housenumber>
    <postcode>10001</postcode>
    <float>-4.3242301940918E+0</float>
    <balance>654654.99</balance>
  </customer>
  <customer>
    <firstname>Ralf</firstname>
    <lastname>McCartney</lastname>
    <goldmember>false</goldmember>
    <housenumber>67</housenumber>
    <postcode>89125</postcode>
    <float>4.3243075E+6</float>
    <balance>986545.12</balance>
  </customer>
  <customer>
    <firstname>Elvis</firstname>
    <lastname>John</lastname>
    <goldmember>true</goldmember>
    <housenumber>3</housenumber>
    <postcode>60699</postcode>
    <float>-3.43242347240448E-1</float>
    <balance>99999999999999.99</balance>
  </customer>
  <customer>
    <firstname>Rick</firstname>
    <lastname>Clayton</lastname>
    <goldmember>true</goldmember>
    <housenumber>461</housenumber>
    <postcode>33101</postcode>
    <float>1.00000000362749E-15</float>
    <balance>100.01</balance>
  </customer>
</io:CSV_1>

Zurück zu 'Mustercode ausführen'

Zurück zum Beginn des Mustercodes