如何为这个xml创建一个dtd?

时间:2011-03-25 02:11:05

标签: java xml dtd

我被要求为这个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,也不知道它究竟是什么意思。 如果有可能,我想要一些指导,谢谢

3 个答案:

答案 0 :(得分: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的定义,我们已经声明它应该包含文本(解析后的字符数据)。

答案 1 :(得分:0)

XMLBeans附带了一个名为inst2xsd的工具,它可以检查XML文件并为其创建一个XSD,然后您可以编辑/优化它。我用它的效果非常好。

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

编辑 - 刚刚意识到你想要一个DTD而不是XSD,留下这个以防万一XSD(目的非常相似)实际上可以解决你的问题

答案 2 :(得分:0)

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