我无法理解如何在文档类型定义语言中使用“ANY”

时间:2011-10-08 19:50:13

标签: xml dtd any

假设我们有这个XML文档

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE note [

<!ELEMENT note (to,from,heading,body, foo)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
<!ELEMENT foo ANY>

]>

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<foo><stuff>test</stuff></foo>
</note>

我正在使用元素“foo”的ANY关键字,但是我收到错误说

Line 20, Column 16: element "stuff" undefined

来自此网站http://validator.w3.org/check

为什么会这样?是不是应该接受foo元素中的任何类型的可解析数据?

1 个答案:

答案 0 :(得分:1)

ANY表示“DTD中定义的任何元素类型”不是“作者关心发明的任何元素类型”。

来自the specification

  

声明与ANY匹配,内容(在用替换文本替换任何实体引用之后)由字符数据,CDATA部分,注释,PI和子元素组成,其类型已声明为。 / p>

(我的重点)