使用 DFDL 模式 CSV_1

此 DFDL 模式 CSV_1.xsd 描述了逗号分隔值消息的最简单模型。此样本输入数据 CSV_1.csv 包含重复逗号分隔记录。此样本输入数据将通过使用样本 DFDL 模式文件进行解析,Mapping 节点会将 DFDL 域逻辑结构树复制到 XMLNSC 域树,然后此树会序列化为 XML 消息。

本主题包括用于运行样本的指示信息。还包括样本输入数据和预期输出消息,使您能够确认样本是否有效。

有关在此样本中使用的消息模型的更多详细说明,请参阅探索逗号分隔值 (CSV) 样本

如果运行此样本时遇到任何问题,请参阅 IBM Integration Bus 文档中的解决运行样本时的问题

测试 DFDL 模式 CSV_1

您可以使用 IBM Integration Toolkit 根据 DFDL 模式文件来测试样本输入数据。

要测试 DFDL 模式文件:

  1. 打开 DFDL 模式 CSV_1.xsd
  2. 在“消息根目录”下,右键单击“CSV_1”,然后单击“测试解析模型”。
  3. 在“测试解析模型”窗口中,选择“来自数据文件的内容”,然后单击“浏览”。
  4. 在“文件选择”窗口中名为 CSVSchemas 的 Integration 项目下,选择文件 CSV_1.csv。单击“确定”。
  5. 可能会显示一个窗口,询问您是否想要打开“DFDL 测试”透视图。请单击“”。

这将打开“DFDL 测试”透视图,测试/解析的结果将显示在“DFDL 测试/解析”视图中。如果测试解析成功,会出现一条消息,该消息指出“解析已成功完成”。

您可以在“逻辑实例”视图中查看测试/解析的结果。“逻辑实例”视图会在逻辑树视图中显示数据。请使用“DFDL/跟踪”视图中的解析器日志来查看解析期间发生的任何错误。

输入测试消息

运行此样本时使用的测试消息基于以下格式:

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
<CRLF> 表示具有 ASCII 十六进制代码点 x'0D' 和 x'0A' 的字符。

运行样本

此样本使用消息流 CSV2XML。此消息流包含单个连接到队列 CSV2XML.IN1 的 MQInput 节点。消息流通过 Mapping 节点传递消息,该节点将消息的域更改为 XMLNSC 并将消息放到队列 CSV2XML.OUT1 上。输出 XML 消息将显示解析的消息的逻辑结构。

要运行样本:

  1. 在“应用程序开发”视图中,展开名为 CSVMessageFlows 的 Integration 项目,然后在“流测试”下打开 CSVApplication.mbtest
  2. 在“编辑器”视图中,选择标签为“调用消息流(CSV_1 到 XML)”的条目,然后观察 CSV 格式的数据。
  3. 在编辑器的左上角单击“启动”图标。
  4. 消息流将解析 CSV 消息并将该消息序列化为 XML。输出消息将放入 CSV2XML.OUT 队列。
  5. 消息可能以一个连续的行显示在“查看器”中。 要更加方便地查看此消息,请单击“主体”列表并选择“在 XML 结构编辑器中查看”。
  6. 将此消息与预期输出消息相比较。

如果所有步骤都成功,那么样本就完成了。

现在,查看名为 CSVSchemas 的 Integration 项目中的 DFDL 模式文件以及探索逗号分隔值 (CSV) 样本中对此消息模型的说明。

预期输出消息

预期输出 XML 消息为:

<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>

返回到“运行样本”

返回到样本主页