您是否知道将从一组XML文件样本中派生出DTD(或其他XML结构规范格式)的工具?
目前我们对xml编码DSL的唯一(自动)验证是用Perl编写的遗留解析器,但出于一致性原因,所有perl代码必须移植到C-sharp。
答案 0 :(得分:8)
您可以使用xsd.exe
(visual studio的一部分)为给定的XML文件生成XML架构。
答案 1 :(得分:7)
http://www.stylusstudio.com/dtd_generator.html是实现DTD生成器的实际软件。
http://www.pmg.csail.mit.edu/~chmoh/pubs/wecwis.pdf似乎是一篇关于你需要的东西的好文章,但到目前为止,我无法在论文的任何地方找到(链接)实际代码。
这是关于此的另一篇论文,同样没有找到代码:http://www.softnet.tuc.gr/~minos/Papers/debull03.pdf。
最后,我还建议您考虑使用RELAX NG或Schematron来验证您的XML。这些语言更具表现力,使它们更易于阅读,并且在您可以验证的各种事物中更加强大。 (一定要跳过XML Schema,这被广泛认为是一团糟。)
答案 2 :(得分:4)
通过仅提供xml数据,您可以使用以下链接在线生成架构。 http://www.xmlforasp.net/codebank/system_xml_schema/buildschema/buildxmlschema.aspx
答案 3 :(得分:4)
您可以免费下载JetBrains IDEA社区版。它具有用于生成GTD和模式的内置工具:
http://www.jetbrains.com/idea/webhelp/generating-dtd.html
也许并不完美,但它确实存在。
答案 4 :(得分:3)
这是适合我DTDGenerator的程序。您需要使用Java编译它,但它运行良好。我对于已经存在很长时间的语言缺乏免费软件感到惊讶,但是这个软件在Mozilla Public License Version 1.0下是免费的。
答案 5 :(得分:1)
Altova's XMLSpy有一个DTD / XML Schema生成器。
生成的DTD / XML Schema通常需要稍微调整一下。例如,当您“意味着”它允许任何值时,该工具可以枚举属性或元素的列表。你只是给它一个问题空间的样本,但它必须从特定到一般。出于这个原因,当我无法理解时,我不会变得太弯曲。
我认为生成的dtd或schema是一个起点。它比从零手动滚动更好。呃,如果您从现有的XML文档开始,那就是。
即使您不打算使用生成的dtd,也可以很好地了解一组不熟悉的XML文档的结构。
答案 6 :(得分:1)
XMLMax编辑器将从XML文件创建XSD。免费试用(无注册/小型下载文件)将为您完成此操作。如果要在代码中执行此操作,.NET Framework有一个XmlSchemaInference类,可以从xml文件自动创建XSD。
答案 7 :(得分:1)
刚刚使用http://www.freeformatter.com/xsd-generator.html从xml文件生成xsd。 它还有很多其他格式化的可能性!
答案 8 :(得分:0)
您可以尝试Trang
或Instance to Schema Tool
(XMLBeans的一部分)。
我将它们放入1GB XML文件的测试中。结果如下:
max memory [kB] - 98,480
time [MM:SS] - 0:24
max memory [kB] - 5,993,240
time [MM:SS] - 7:36