可以使用Python从XML文件生成DTD吗?
答案 0 :(得分:1)
您问的问题的简单答案是“是的,可以使用Python从XML文档生成DTD”。
Python是一种图灵完备语言,有一些算法可以从任意XML或SGML集合中生成DTD。我相信标准参考是Rick Kazman,“构建牛津英语词典的文本 有限状态转导,“新牛津英语中心 字典技术。报告OED-86-20,大学滑铁卢(1986年6月),117页。
在20世纪80年代后期,图书馆联盟OCLC开发了一个名为Fred的工具,它为SGML文件的主体引入了DTD;我非正式地听了很多关于它的事情,但是不记得曾经看过它的算法的公开描述。但是,快速搜索Web“OCLC Fred SGML DTD”会产生指向Keith E. Shafer, Fred: the SGML Grammar Builder (1996)的指针。 (快速浏览显示了大量材料,但我没有看到任何关于所用算法的高级描述的明确参考。)
1994年还有一篇挪威论文:Sunniva M. K. Solstrand,“Automatisk generering av DTD fra SGML-kodet materiale”,Hovedfagsoppgave i informasjonsvitenskap,Universitetet i Bergen 1994)。
可以看出,有几位计算机科学家不同意那些告诉你你的问题毫无意义或错误的评论者。当然,通过自动语法归纳实现的文档语法质量往往低于人类文档分析师和DTD编写者实现的文档语法质量。
我怀疑,如果它被限制在Fabio Vitali及其在博洛尼亚的合作者的各种文章中所描述的内容模型模式中,那么生成的DTD将更加合理。我相信,最初的论文是Fabio Vitali, Angelo Di Iorio, and Daniele Gubellini, "Design patterns for descriptive document substructures",极限标记语言2005,后来的论文详细阐述并描述了应用。 Francesco Poggi在博洛尼亚的新工作(尚未发表)扩展并深化了分析。对“XML设计模式”的Web搜索可以提供对类似语法模式集的其他尝试。从语法归纳的角度来看,这种模式的作用是通过针对更简单的语法来降低归纳问题的复杂性。
如果您想问一个相当不同的问题“任何人都可以推荐基于Python的工具从XML文档生成DTD吗?”,那么我无法帮助您(并且有很多Stack Overflow主持人会立刻关闭这个问题,因为提出工具建议的问题令人不悦。)