Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于测试数据生成的XSD_Java_Xml_Xsd_Mapping_Flat File - Fatal编程技术网

Java 用于测试数据生成的XSD

Java 用于测试数据生成的XSD,java,xml,xsd,mapping,flat-file,Java,Xml,Xsd,Mapping,Flat File,我正在尝试使用JAVA为测试数据生成平面文件。平面文件有自己的映射文档,描述每行的所有字段 有人建议我使用XSD进行映射,我对XSD做了一些研究。据我所知,XSD只用于验证XML。在这种情况下,我必须基于XSD随机生成XML文件,并将其转换为txt或其他格式。因为作为输出,我需要平面文件,而不是XML 我似乎在使用XSD创建文件时添加了额外的步骤,首先创建XML,使用XSD进行验证并将其转换为预期格式 在我的情况下,你对遵循地图文档有什么建议 提前谢谢。我以前看过你的设置。原因可能与您的特定场景

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

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

我似乎在使用XSD创建文件时添加了额外的步骤,首先创建XML,使用XSD进行验证并将其转换为预期格式

在我的情况下,你对遵循地图文档有什么建议


提前谢谢。

我以前看过你的设置。原因可能与您的特定场景不同,但仍然是有道理的。有一件事要考虑的是人们所能掌握的技能和工具,因此,无论是什么使工作快速、顺利进行。 您似乎描述了一种基于偏移量的“扁平”数据结构。在我的例子中,人们使用COBOL文案,这些文案非常擅长描述这一点。IBMRationalDeveloper有一个内置向导,它允许从COBOL副本创建Java数据绑定。这就是说,在一分钟内就可以得到一个Java类,它可以在短时间内为平面文件创建一个记录(它附带了进行填充等操作所需的所有逻辑)

要生成数据,有一些工具能够生成XML文件,这些文件涵盖XSD定义的所有约束(例如,替代内容,即XSD:choice、枚举值等)。现在,假设您有一个正确的XSD描述平面文件的逻辑模型,则可以得到10秒、100秒、,即使是从XSD规范生成的100K XML,也需要单击,再加上工具创建这些文件所花费的时间

接下来,为了在生成的Java类中获取XML文件,从而避免使用XSLT或其他任何东西(许多商店没有这种技能),可以简单地在JAXB生成的类和上面创建的类之间编写Java映射代码,或者如果可以匹配,只需注释生成的类以支持JAXB解组。最后一步可能需要更长的时间来编写代码,但任何Java开发人员都知道如何编写这段代码


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

能否提供您尝试过的内容、样本数据和样本输出?是否要求您使用XSD或XSLT进行映射?XSD是一种模式定义,用于说明XML的组织,XSLT可以将XML映射/转换为text/XML/html或其他格式。请学习如何创建XML。老实说,我现在还不太清楚。最终输出应该是带有随机数据的平面文件,但必须与映射文档相同。例如,第一行应该包含FirstName(1-10)、LastName(11-25)、Address(26-50),每个字段都有自己的位置,如果字段的字符数较少,则应该在下一个字段后面加空格。现在我需要制定我的战略和计划,开始创建它,我不知道从什么开始。谢谢