2014-09-29 89 views
-1

我對XML相當陌生,真的有問題搞清楚我做錯了什麼。大多數返回的錯誤是文檔類型不允許元素「跟蹤」在這裏。如果有人能告訴我我做錯了什麼,我會很感激。 請記住,我已經這樣做了不到一個月,在此先感謝。 XML驗證錯誤

<?xml version="1.0" encoding="UTF-8"?> 
 
<?xml-stylesheet type="text/xsl" href="CdCollection.xsl"?> 
 
<!DOCTYPE cdCollection [ 
 
<!ELEMENT cdCollection(album)> 
 
<!ELEMENT album(title, artist, label, disk, track+, diskOne, diskTwo)> 
 
<!ELEMENT title(#PCDATA)> 
 
<!ELEMENT artist(#PCDATA)> 
 
<!ELEMENT label(#PCDATA)> 
 
<!ELEMENT disk(#PCDATA)> 
 
<!ELEMENT track(trackTitle, trackNumber, trackTime)> 
 
<!ELEMENT trackTitle(#PCDATA)> 
 
<!ELEMENT trackNumber(#PCDATA)> 
 
<!ELEMENT trackTime(minute, seconds)> 
 
<!ELEMENT minute(#PCDATA)> 
 
<!ELEMENT seconds(#PCDATA)> 
 
<!ELEMENT diskOne(title, artist, label, track+)> 
 
<!ELEMENT diskTwo(title, artist, label, track+)> 
 
]> 
 
<cdCollection> 
 
\t <album> 
 
\t \t <title>Barenaked Ladies Are Men</title> 
 
\t \t <artist>Barenaked Ladies</artist> 
 
\t \t <label> Raisin Records</label> 
 
\t \t <disk> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Serendipity</trackTitle> 
 
\t \t \t \t <trackNumber>1.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t <seconds>11</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Something You&#39;ll Never Find</trackTitle> 
 
\t \t \t \t <trackNumber>2.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t <seconds>57</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t <trackTitle>One and Only</trackTitle> 
 
\t \t \t \t <trackNumber>3.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t <seconds>47</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Angry People</trackTitle> 
 
\t \t \t \t <trackNumber>4.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t <seconds>01</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Down to Earth</trackTitle> 
 
\t \t \t \t <trackNumber>5.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t <seconds>46</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Beautiful</trackTitle> 
 
\t \t \t \t <trackNumber>6.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 2 &#58;</minute> 
 
\t \t \t \t \t <seconds>35</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Running Out of Ink</trackTitle> 
 
\t \t \t \t <trackNumber>7.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t <seconds>58</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Half a Heart</trackTitle> 
 
\t \t \t \t <trackNumber>8.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t <seconds>27</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Maybe Not</trackTitle> 
 
\t \t \t \t <trackNumber>9.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t <seconds>00</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>I Can I Will I Do</trackTitle> 
 
\t \t \t \t <trackNumber>10.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t <seconds>08</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Fun &amp; Games</trackTitle> 
 
\t \t \t \t <trackNumber>11.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t <seconds>45</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>The New Sad</trackTitle> 
 
\t \t \t \t <trackNumber>12.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 2 &#58;</minute> 
 
\t \t \t \t \t <seconds>34</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Quality</trackTitle> 
 
\t \t \t \t <trackNumber>13.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t <seconds>15</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Another Spin</trackTitle> 
 
\t \t \t \t <trackNumber>14.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 2 &#58;</minute> 
 
\t \t \t \t \t <seconds>34</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>What A Letdown</trackTitle> 
 
\t \t \t \t <trackNumber>15.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t <seconds>49</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t \t <track> 
 
\t \t \t \t <trackTitle>Why Say Anything Nice?</trackTitle> 
 
\t \t \t \t <trackNumber>16.</trackNumber> 
 
\t \t \t \t <trackTime> 
 
\t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t <seconds>42</seconds> 
 
\t \t \t \t </trackTime> 
 
\t \t \t </track> 
 
\t \t </disk> 
 
\t </album> 
 
\t <album> 
 
\t \t <diskOne> 
 
\t \t \t <title>Live From Mars</title> 
 
\t \t \t <artist>Ben Harper</artist> 
 
\t \t \t <label> Virgin Records US</label> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Glory &amp; Consequenc</trackTitle> 
 
\t \t \t \t \t <trackNumber>1.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 6 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>01</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Excuse Me Mr</trackTitle> 
 
\t \t \t \t \t <trackNumber>2.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>54</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Alone</trackTitle> 
 
\t \t \t \t \t <trackNumber>3.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 5 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>01</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Sexual Healing</trackTitle> 
 
\t \t \t \t \t <trackNumber>4.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 5 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>14</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Woman In You</trackTitle> 
 
\t \t \t \t \t <trackNumber>5.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 8 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>00</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Ground On Down</trackTitle> 
 
\t \t \t \t \t <trackNumber>6.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 5 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>39</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Steal My Kisses</trackTitle> 
 
\t \t \t \t \t <trackNumber>7.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 5 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>15</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Burn One Down</trackTitle> 
 
\t \t \t \t \t <trackNumber>8.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>53</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Mama&#39;s Got A Girlfriend Now</trackTitle> 
 
\t \t \t \t \t <trackNumber>9.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 2 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>53</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Welcome To The Cruel World</trackTitle> 
 
\t \t \t \t \t <trackNumber>10.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 5 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>52</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Forgiven</trackTitle> 
 
\t \t \t \t \t <trackNumber>11.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 9 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>26</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Faded&#47;Whole Lotta Love</trackTitle> 
 
\t \t \t \t \t <trackNumber>12.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 10 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>45</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t </diskOne> 
 
\t \t <diskTwo> 
 
\t \t \t <title>Live From Mars</title> 
 
\t \t \t <artist>Ben Harper</artist> 
 
\t \t \t <label> Virgin Records US</label> 
 
\t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Waiting On An Angel</trackTitle> 
 
\t \t \t \t \t <trackNumber>1.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>27</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Rose From My Friends</trackTitle> 
 
\t \t \t \t \t <trackNumber>2.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 5 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>36</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Power Of The Gospel</trackTitle> 
 
\t \t \t \t \t <trackNumber>3.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 6 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>49</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Pleasure And Pain</trackTitle> 
 
\t \t \t \t \t <trackNumber>4.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>29</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Please Bleed</trackTitle> 
 
\t \t \t \t \t <trackNumber>5.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>56</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>The Drugs Don&#39;t Work</trackTitle> 
 
\t \t \t \t \t <trackNumber>6.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>37</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>The Lord&#39;s Arms</trackTitle> 
 
\t \t \t \t \t <trackNumber>7.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>15</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Not Fire &#44; Not Ice</trackTitle> 
 
\t \t \t \t \t <trackNumber>8.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>45</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Beloved One</trackTitle> 
 
\t \t \t \t \t <trackNumber>9.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 3 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>47</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Number Three</trackTitle> 
 
\t \t \t \t \t <trackNumber>10.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 2 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>31</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Walk Away</trackTitle> 
 
\t \t \t \t \t <trackNumber>11.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>35</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Another Lonely Day</trackTitle> 
 
\t \t \t \t \t <trackNumber>12.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 4 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>48</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t \t \t <track> 
 
\t \t \t \t \t <trackTitle>Like A King&#47;I&#39;ll Rise (Medley)</trackTitle> 
 
\t \t \t \t \t <trackNumber>13.</trackNumber> 
 
\t \t \t \t \t <trackTime> 
 
\t \t \t \t \t \t <minute>&#45; 10 &#58;</minute> 
 
\t \t \t \t \t \t <seconds>02</seconds> 
 
\t \t \t \t \t </trackTime> 
 
\t \t \t \t </track> 
 
\t \t </diskTwo> 
 
\t </album> 
 
</cdCollection>

+0

你能我們收到的具體錯誤,而不是如此普遍地描述它們? – skrrgwasme 2014-09-29 02:16:30

+0

我的主要錯誤信息是「行27,列10:文檔類型不允許元素」在這裏「跟蹤」多行,但我也收到「錯誤行156,列9:未完成」專輯「的結束標記」。 – Sparked 2014-09-29 02:21:22

回答

0

再壞的結束標記 - 聽起來像是你缺少一個>字符。查看文件的第156行或附近的</album>標籤,並找出錯誤輸入的方式。

重新驗證錯誤:你已經聲明

<!ELEMENT disk(#PCDATA)> 

你告訴它<disk>應該只包含未標記的文字。你想要什麼可能是

<!ELEMENT disk(#PCDATA | track)> 

甚或

<!ELEMENT disk(track)> 

如果不是<track>元素以外唯一的內容將被格式化的空白。

請參閱http://www.w3.org/TR/REC-xml/#sec-mixed-content和描述DTD元素聲明的相關章節,或者一個很好的XML DTD教程。

(你可能要考慮從DTD遷移到XML模式,它是描述文檔的預期結構更強大的方式...除非你需要保留的兼容性與老年人的解析器。)

+0

感謝您的幫助,馬上清除了我的大部分錯誤。我重新檢查了我的標籤,並且我沒有錯誤輸入或拼寫錯誤。我目前在一個XML類中,實際上我們下週正在學習XML Schemas。 – Sparked 2014-09-29 05:54:54

+0

如果您收到「壞的標籤」,解析器會提示您輸錯了某些內容,並指向哪裏。再看一遍。這可能不是我提出的具體錯誤,但文檔是錯誤的,這就是解析器發現錯誤的地方。 – keshlam 2014-09-29 13:50:05