为二叉树创建DTD

时间:2013-06-08 13:00:22

标签: xml xsd dtd xml-dtd

我想创建一个DTD文件来检查XML文件是否是一个二叉树,其中每个节点最多有2个儿子,每个节点都应该有一个指向childern的指针(如果它们退出)

如何在XML中实现它?

提前致谢

1 个答案:

答案 0 :(得分:3)

有许多方法可以用XML编写二进制树。这是一个;它假定每个节点的值都在名为“value”的属性中携带。

<!ELEMENT node (node, node?) >
<!ATTLIST node value CDATA #REQUIRED >

也可以要求一个节点有两个孩子或没有孩子(维基百科说这被称为完整的二叉树):

<!ELEMENT node (node, node)? >

第一个DTD但不是第二个DTD将接受简单二叉树的XML表示(来自维基百科关于二叉树的文章):

<node value="2">
  <node value="7">
    <node value="2"/>
    <node value="6">
      <node value="5"/>
      <node value="11"/>
   </node>
  <node value="5">
    <node value="9">
      <node value="4"/>
    </node>
  </node>
</node>

[哦,是的,还有一件事。如果您以允许其他人重现问题的形式显示您尝试过的内容,那么您更有可能对Stack Overflow上的问题做出良好的回答(如果您不知道从哪里开始,这当然很难)。没有展示你的作品会给人留下你没有做过的印象,只是希望别人为你做你的工作。在SO help files以及Eric Raymond和Rick Moen的论文How to ask questions the smart way中提出有效问题的建议很好。[/ p>