2017-06-01 64 views
0

這是我從頭開始編寫DTD的第一次嘗試,我似乎遇到了麻煩。當我在www.xmlvalidation.com上檢查它時,它告訴我我有一個錯誤,但我似乎沒有看到問題。 這是我從講師給出的樣本中提取的xml代碼。我的DTD是否正確,如何檢查?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE studentMarks SYSTEM "marks.dtd"> 
<studentMarks> 
<matricNO>S123</matricNO> 
<courseCode>CYY505</courseCode> 
<mark>70</mark> 
<matricNO>S123</matricNO> 
<courseCode>CYY502</courseCode> 
<mark>84</mark> 
<matricNO>S123</matricNO> 
<courseCode>CYY503</courseCode> 
<mark>72</mark> 
<matricNO>S123</matricNO> 
<courseCode>CYY501</courseCode> 
<mark>90</mark> 
<matricNO>S123</matricNO> 
<courseCode>CYY506</courseCode> 
<mark>87</mark> 
</studentMarks> 

,這是我DTD

<?xml version="1.0" encoding="UTF-8"?> 
<!ELEMENT studentMarks (matricNO,courseCode,mark)> 
<!ELEMENT matricNO (#PCDATA)> 
<!ELEMENT courseCode (#PCDATA)> 
<!ELEMENT mark (#PCDATA)> 

任何幫助,將不勝感激!謝謝:)

+0

你有什麼錯誤信息? – Oscar

+0

@Oscar我得到了這個錯誤信息。元素類型「studentMarks」的內容必須匹配「(matricNO,courseCode,mark)」 – Deb

+0

順便說一句,我不認爲這是一個好的XML設計。如果在每個三個子元素的組周圍添加一個包裝元素,數據將更容易處理。 –

回答

0

聲明

<!ELEMENT studentMarks (matricNO,courseCode,mark)> 

意味着studentMarks必須恰好有三個元素孩子,用指定的名稱。如果你想這組三個元素的重複,使用

<!ELEMENT studentMarks (matricNO,courseCode,mark)*> 

(而下一次你問一個問題在計算器上,請不要說你沒有告訴我們什麼錯誤是得到了一個錯誤)。