【问题标题】:how to create a dtd for this xml?如何为这个 xml 创建一个 dtd?
【发布时间】:2011-03-26 00:05:52
【问题描述】:

我被要求为此 xml 创建一个简单的 dtd:

<?xml version='1.0' encoding='ISO-8859-1'?>
<QUERY>
  <PORT>
    <NB></NB>
  </PORT>
  <BLOCK>
    <TAB></TAB>
  </BLOCK>
  <STAND>
    <LEVEL></LEVEL>
  </STAND>
</QUERY>

我正在使用 java,我以前从未做过 dtd,也不知道它是什么意思。 如果可能的话,我想请一些指导,谢谢

【问题讨论】:

    标签: java xml dtd


    【解决方案1】:

    DTD 是文档类型定义,用于表示您的 XML 文档的结构。其他表示包括 XML Schema、Relax NG 等:

    它看起来像下面这样(虽然我的语法可能不太正确):

    <!ELEMENT QUERY (PORT, BLOCK, STAND)>
    <!ELEMENT PORT (NB)>
    <!ELEMENT NB (#PCDATA)>
    <!ELEMENT BLOCK (TAB)>
    <!ELEMENT TAB (#PCDATA)>
    <!ELEMENT STAND (LEVEL)>
    <!ELEMENT LEVEL (#PCDATA)>
    

    如果您查看 QUERY 的定义,您会发现它定义了它包含以下元素:“PORT”、“BLOCK”和“STAND”。如果您查看 NB 的定义,我们已经声明它应该包含文本(已解析的字符数据)。

    【讨论】:

    • 谢谢很多人,我认为这对了解如何开始和实施它很有帮助:)
    【解决方案2】:

    XMLBeans 带有一个名为inst2xsd 的工具,它可以检查 XML 文件并为其创建 XSD,然后您可以对其进行编辑/优化。我用过,效果不错。

    只需阅读 installation guide for XMLBeans,当您安装 XMLBeans 时,您也将安装 inst2xsd 工具。

    编辑 - 刚刚意识到您想要的是 DTD 而不是 XSD,将其留在这里以防 XSD(目的非常相似)实际上可以解决您的问题

    【讨论】:

      【解决方案3】:

      那里有一些 DTD 生成器。快速搜索产生this。不过没用过。

      【讨论】:

      • thx 伙计,我试过了,但是它不起作用,当我从 cmd 行运行它时说 classnotfoundexception(正如他们提到的那样)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多