使用DTD,是否可以声明允许任何XML内容的元素?

前端之家收集整理的这篇文章主要介绍了使用DTD,是否可以声明允许任何XML内容的元素?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试为 XML文档创建DTD.该文件有两个孩子 – 一个包含结构化数据,另一个包含非结构化数据;
  1. <doc>
  2. <structured>
  3. <foo x="9"/>
  4. <foo x="4"/>
  5. </structured>
  6. <unstructured>
  7. <hello/>
  8. <world x="2">
  9. <hi msg="something"/>
  10. <anything/>
  11. </world>
  12. </unstructured>
  13. </doc>

我想为上面的XML创建一个DTD,允许< unstructured>元素包含任何有效的XML.我试过这个DTD;

  1. <!ELEMENT doc (structured,unstructured)
  2. <!ELEMENT structured (foo*)
  3. <!ELEMENT foo EMPTY>
  4. <!ATTLIST foo x CDATA #required>
  5. <!ELEMENT unstructured ANY>

错误是这样产生的;

  1. No declaration for element hello
  2. No declaration for element world

..等等

我想允许< unstructured>包含任何有效的XML.在DTD中是否有一种方法允许指定的元素包含任何可解析的XML?

我正在使用PHP 5.3 DOMDocument :: validate.

不,那里没有.

通过使用ANY关键字,您可以接近DTD.但是ANY匹配#PCDATA和DTD中声明的每个元素的混合.它不接受未申报的要素; DTD没有太多部分有效性的概念.

这是在XSD中引入通配符的激励用例之一,可以选择要求对匹配元素进行严格,宽松或跳过处理.

猜你在找的XML相关文章