2013-01-24 25 views
1

我正在學習一些SQL和DTD。我不習慣它太多。在做一些練習時,我遇到了一些問題。 這裏是數據:https://prod-c2g.s3.amazonaws.com/db/Winter2013/files/countries.xml 我想爲它編寫DTD。在這裏我寫了: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

這是因爲:

<!ATTLIST country name (PCDATA) 

它認爲PCDATA是一個枚舉值。嘗試將其更改爲CDATA(沒有括號)...

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

非常感謝現在它的正常工作:-) –

+0

@JohnRock - !非常歡迎。請考慮通過點擊旁邊的複選標記來接受這個答案(和/或對其進行投票:-)) –

+0

@JohnRock - 另外,如果這是爲斯坦福db類,請隨時給我發一封電子郵件(它在我的個人資料),如果你需要別的東西。 –