php脚本将xml转换为dtd

时间:2010-02-23 10:11:18

标签: php xml dtd

是否有任何PHP脚本可以将XML文件转换为DTD。

我尝试了很多。我能找到工具但不能用PHP脚本。

有没有?

任何帮助都会感激...

FERO

2 个答案:

答案 0 :(得分:4)

从XML文件生成DTD是我经常看不到的事情 - 其中一个主要原因是你无法确定用于生成DTD的XML文件将包含所有的DTD应该定义

即。生成的DTD将只包含该特定XML文件中存在的元素和属性 - 这并不一定意味着以后使用它时应该接受的所有元素和属性


话虽这么说,我还没有找到任何PHP工具来从XML文件创建DTD ......

...但我找到了一个JAVA: DTDGenerator - A tool to generate XML DTDs (引用)

  

DTDGenerator是采用的程序   XML文档作为输入和生成   文档类型定义(DTD)为   输出

     

该计划的目的是给你   快速开始编写DTD。
的   DTD是许多可能的DTD之一   输入文件符合的内容。   
通常你会想要检查   DTD并编辑它来描述你的   准确的文件。


关于这个DTDGenerator计划的一些好处是:

  • 网站上有一些关于如何运作的基本思路的解释
  • 提供源代码
  • 只有600行长
    • 这意味着一个人应该能够毫不费力地理解
    • 可能将其移植到PHP
    • 源代码中有一些注释 - 这有助于
  • 它发布在MPL 下 - 这意味着开源;这很好,如果你想移植它


从该程序的源代码开始,应该可以编写一些PHP代码(如果你不能执行JAVA,并且真的需要用PHP编写)来做同样的事情:基本的想法是不那么难:

  • 您必须完成XML结构
  • 在每个起始标记上构建它的树形表示
    • 表示元素
    • 可以拥有属性
  • 而且,当您完成XML文档的阅读后,您必须根据文档的再现来构建DTD
    • 这可能是困难的部分 - 看看我链接到的JAVA工具的来源,它代表了相当多的代码行^^

在开始之前看一下这个 DTDGenerator 的好处是它的作者已经考虑过这个过程了 - 并且已经确定了一些你可能没想过的情况; - )

答案 1 :(得分:0)

以下是我发现可能有用的内容:http://www.hitsw.com/xml_utilites/

还有一个似乎很有希望的课程:http://phpclasses.2by2host.com/browse/package/250.html