用于测试数据生成的XSD

时间:2016-07-28 14:46:30

标签: java xml xsd mapping flat-file

我试图使用JAVA为测试数据生成平面文件。平面文件具有自己的映射文档,该文档描述了每行的所有字段。

我被建议使用XSD进行映射,我对XSD进行了一些研究。据我所知,XSD仅用于验证XML。在这种情况下,我必须随机生成基于XSD的XML文件并将其转换为txt或其他格式。因为作为输出我需要平面文件,而不是XML。

似乎使用XSD我在创建文件时添加了额外的步骤作为第一个创建XML,使用XSD验证并转换它预期的格式。

根据我的情况,您对推荐地图文档的建议是什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

之前我见过你的设置。原因可能与您的特定情况不同,但仍然有意义。要考虑的一件事与人们可以使用的技能和工具有关,所以无论什么事情都可以使工作快速而顺利地完成。

您似乎描述了基于偏移的"平坦"数据结构。就我而言,人们使用COBOL抄写本非常擅长描述这一点。 IBM Rational Developer有一个内置向导,允许从COBOL副本创建Java数据绑定。这就是说,在一分钟之内就会得到一个Java类,它可以立即为你的平面文件创建一个记录(它带有填充所需的所有逻辑等)。

为了获得生成的数据,有一些工具能够生成XML文件,这些文件涵盖XSD定义的所有约束(例如,替代内容,即xsd:choice,枚举值等)。现在,假设您有一个适当的XSD描述您的您的平面文件的逻辑模型,可以从XSD规范生成10s,100s甚至100K XML。只需点击一下,再加上工具创建这些文件所花费的时间。

接下来,要在生成的Java类中获取XML文件,以避免通过XSLT或其他任何东西(许多商店没有技能),它可能就像在生成的JAXB之间编写Java映射代码一样简单class和上面创建的类,或者如果可以匹配,只需注释生成的类以支持JAXB解组。最后一步可能需要更长的代码,但任何Java开发人员都知道如何操作它将是一个简单的代码。

这可能会让您了解为什么有人可能会为此任务推荐Java和XSD。 XSD是一种建模语言,内置支持约束,这可能有助于通过组合技术生成测试数据。