1

我正在自己学习一些 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 >

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

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

我做错什么了?

4

1 回答 1

1

那是因为:

<!ATTLIST country name (PCDATA)

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

<!ATTLIST country 
          name CDATA #REQUIRED 
          population CDATA #REQUIRED 
          area CDATA #REQUIRED>
于 2013-01-24T17:16:12.753 回答