【问题标题】:how to add DTD element if I dont know the child elements如果我不知道子元素,如何添加 DTD 元素
【发布时间】:2011-06-27 06:37:29
【问题描述】:

我需要根据 DTD 验证 xml 文件。

有时候子元素会比较多,不知道下次会出现什么子元素,我尝试了以下方法:

<!ELEMENT Story (StoryPara+ , ANY+)+>

但这不起作用,如何使用 DTD 验证任何子元素?

【问题讨论】:

    标签: xml validation dtd


    【解决方案1】:

    您不能在内容模型中将“ANY”与其他任何内容混合使用。 (你可以像使用“EMPTY”一样使用它。)

    您当前的元素声明是:至少出现一次:一个或多个“StoryPara”元素后跟一个或多个“ANY”元素

    将您的元素声明更改为:

    <!ELEMENT Story ANY>
    

    请注意,还必须定义“Story”的任何子级。

    例如,这是有效的:

    <?xml version="1.0"?>
    <!DOCTYPE test [
    <!ELEMENT test ANY>
    <!ELEMENT foo (#PCDATA)>
    ]>
    <test>
      <foo>This element is defined.</foo>
    </test>
    

    但这不是因为“bar”没有定义:

    <?xml version="1.0"?>
    <!DOCTYPE test [
    <!ELEMENT test ANY>
    <!ELEMENT foo (#PCDATA)>
    ]>
    <test>
      <foo>This element is defined.</foo>
      <bar>This element is not defined.</bar>
    </test>
    

    【讨论】:

      猜你喜欢
      • 2014-03-14
      • 2017-02-12
      • 2020-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 2017-12-23
      相关资源
      最近更新 更多