在DTD

2016-03-05 72 views
0

檢查錯誤,我需要寫的東西的XML像在DTD

<student Name = "aaa"> 

<subject id="abc"> 
    <assignment id="1"> 
     <name>ddd</name> 
     <Submission>12/2/1999</Submission> 
    </assignment> 
    <assignment id="2"> 
     <name>ddd</name> 
     <Submission>12/2/1999</Submission> 
    </assignment>  
</subject> 

<subject id="hjd"> 
    <assignment id="1"> 
     <name>ddd</name> 
     <Submission>12/2/1999</Submission> 
    </assignment> 
    <assignment id="2"> 
     <name>ggg</name> 
     <Submission>12/2/1999</Submission> 
    </assignment> 
</subject> 
</student> 

至於我的DTD文件(因爲我需要把它寫爲外部DTD)

我寫的

<!ELEMENT student (subject*)> 
<!ELEMENT subject (assignment*)> 
<!ELEMENT assignment (name,submission)> 
<!ATTLIST student name PCDATA #REQUIRED> 
<!ATTLIST subject ID PCDATA #REQUIRED> 
<!ATTLIST assignment ID PCDATA #REQUIRED> 

提交必須以日期格式,我不知道這是什麼問題。任何人都可以幫忙

+0

你是什麼意思與「*我不知道這是什麼問題*」?你有錯誤嗎? – potame

+0

我不知道錯誤是什麼,我似乎無法檢查我是錯的還是什麼。但是通過查看我創建的數據,是否有辦法知道是否有任何問題? – helloworld1

+0

您可以根據DTD解析並驗證您的輸入XML,以檢查它是否正確。順便說一句,我們不是在這裏告訴你所做的事是對還是錯 - 你寧願知道你想做什麼,並解釋你所困擾的問題。 – potame

回答

0

就像potame說的那樣,你可以根據DTD驗證你的XML來檢查它是否正確。不過,我確實看到了幾件事情是肯定不正確......

  • 在你的ATTLIST聲明,您使用PCDATA這是無效的。改爲使用CDATA
  • 對於student元素,聲明屬性name,但是XML使用屬性Name。案件事宜。
  • ID屬性subjectassignment相似的問題;案件應該匹配。
  • 您的DTD指定assignment元素必須包含一個name元素後跟一個submission元素,但不聲明這些元素。 (此外,您的XML使用Submission。此外,案件很重要。)

這是一個更正的DTD和實例。我也改變了DTD的格式和順序,使它更容易閱讀,但這一部分並不重要。

XML DTD

<!ELEMENT student (subject*)> 
<!ATTLIST student 
      name CDATA #REQUIRED> 

<!ELEMENT subject (assignment*)> 
<!ATTLIST subject 
      id CDATA #REQUIRED> 

<!ELEMENT assignment (name,submission)> 
<!ATTLIST assignment 
      id CDATA #REQUIRED> 

<!ELEMENT name (#PCDATA)> 
<!ELEMENT submission (#PCDATA)> 

XML實例

<student name="aaa"> 
    <subject id="abc"> 
     <assignment id="1"> 
      <name>ddd</name> 
      <submission>12/2/1999</submission> 
     </assignment> 
     <assignment id="2"> 
      <name>ddd</name> 
      <submission>12/2/1999</submission> 
     </assignment> 
    </subject> 
    <subject id="hjd"> 
     <assignment id="1"> 
      <name>ddd</name> 
      <submission>12/2/1999</submission> 
     </assignment> 
     <assignment id="2"> 
      <name>ggg</name> 
      <submission>12/2/1999</submission> 
     </assignment> 
    </subject> 
</student> 

你也應該引用DTD與在XML DOCTYPE聲明,但我不知道如何或在哪裏你'提交這些數據。

我也不知道什麼「提交必須是日期格式」的意思。什麼格式? ISO 8601?如果您提供更多詳細信息,我應該能夠回答有關日期格式的任何問題。