我有一个包含一些模式的XSD文件,需要创建一堆XML文档来测试匹配此模式。我知道有一些工具和框架,比如xsd.exe,JAXB等,它们都是从XSD创建的。
基本上我需要执行以下步骤:
示例:
<xs:simpleType name="typeName">
<xs:restriction base="xs:string">
<xs:pattern value="[A-ZÄÖÜß][A-ZÄÖÜß'/\-.+ ]*"/>
<xs:pattern value="+[ ]*"/>
</xs:restriction>
</xs:simpleType>
这样做的标准方法是什么?关键是所有这些都应该在运行时发生,即不通过xsd.exe或其他方式创建类。最好是C#或Java,但欢迎使用任何语言。
答案 0 :(得分:2)
Microsoft有一种称为XmlSampleGenerator的东西。看看这个:
http://msdn.microsoft.com/en-us/library/aa302296.aspx
这是它的局限性:
答案 1 :(得分:0)
OxygenXml和XmlSpy可以根据XSD模板生成示例XML文件。两者均提供1个月免费试用AFAIK。如果你想购买OxygenXml更便宜。如果内存正确地为我提供服务,那么就不会填充随机字符串等等 - 你需要自己做。但是,它们会为您提供与模式匹配的格式正确的文档。
修改强> 如果你想以编程方式生成xml,你可以试试这样的想法吗?可能会让你走出一个洞?我自己没试过,只是用谷歌搜索。
答案 2 :(得分:0)
如果XSD相当简单(除了定义文件结构的1之外没有复杂的类型)并且没有深层次结构,您可以尝试自己滚动。我曾经做过一次个人项目(我没有计划分发),也没有我想象的那么糟糕。我也想说实现是特定于XSD的,所以如果你打算从许多不同的XSD生成XML或使用未知的XSD,那么这可能不是你的答案。
我必须看看能否找到代码,但步骤非常简单:
显然这只会生成XML的结构,由你来添加你想要的值,但是一旦完成,你可以回过头来使用传统的XSD来验证XML数据。捕获任何数据错误的方法。
加载XSD并使用LINQ解析它在我的答案中有所涉及question在答案的底部还有一些链接可以链接到其他问题/博客,以便在必要时解析更复杂的XSD。