DTD有效性错误

时间:2013-01-24 17:03:41

标签: dtd

我正在研究一些SQL和DTD。我不习惯太多。在做一些运动时,我遇到了一些问题。 以下是数据:https://prod-c2g.s3.amazonaws.com/db/Winter2013/files/countries.xml 我正在尝试为此编写DTD。这就是我写的:

<!ELEMENT countries (country*)>
<!ELEMENT country (city*, population*)>
<!ATTLIST country name (PCDATA) #REQUIRED population (CDATA) #REQUIRED area (CDATA) #REQUIRED >
<!ELEMENT city (name, population) >
<!ELEMENT name ANY>
<!ELEMENT population ANY>
<!ELEMENT language ANY>
<!ATTLIST language percentage CDATA #IMPLIED >

可能存在一些小错误,但我经常得到的错误是有效性错误。例如它说

  

国家属性名称的“阿富汗”值不在枚举集中。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

那是因为:

<!ATTLIST country name (PCDATA)

它认为PCDATA是枚举中的值。尝试将其更改为CDATA(不带括号)...

<!ATTLIST country 
          name CDATA #REQUIRED 
          population CDATA #REQUIRED 
          area CDATA #REQUIRED>