2014-09-29 3 views
-1

저는 XML을 처음 접했고 실제로 잘못하고있는 것을 알아내는 데 문제가 있습니다. 되돌아 오는 오류의 대부분은 문서 유형이 요소 "트랙"을 허용하지 않는다는 것입니다. 누군가가 내가 뭘 잘못하고 있는지 말할 수 있다면 정말 고마워. 사전에 1 달도 안되는 시간 동안이 작업을 해왔습니다. 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

+0

내 주요 오류 메시지는 "줄 27, 열 10 : 문서 형식에서 여러 줄에"여기에 "요소를 허용하지 않지만"오류 줄 156, 열 9 : 끝나지 않은 "앨범"에 대한 끝 태그 ". – Sparked

답변

0

나쁜 종료 태그 재 - 당신이 > 문자를 놓치고처럼 들린다. 파일의 라인 156 번을 </album> 태그로보고 어떻게 잘못 입력했는지 파악하십시오.

유효성 검사 오류가 다시 : 당신은 당신이 <disk>는 태그가 지정되지 않은 텍스트를 포함해야 함을 말 했어요

<!ELEMENT disk(#PCDATA)> 

을 선언했습니다. 당신이 원하는 것은 아마

<!ELEMENT disk(#PCDATA | track)> 

또는 심지어

<!ELEMENT disk(track)> 

<track> 요소 이외의 내용 만이 공백을 포맷 될 경우입니다.

http://www.w3.org/TR/REC-xml/#sec-mixed-content 및 DTD 요소 선언을 설명하는 관련 섹션이나 좋은 XML DTD 자습서를 참조하십시오. 당신이 얻을 수있는

(그리고 당신은 당신이 노인 파서와 호환성을 유지할 필요가없는 ... 문서의 예상 구조를 설명하기 위해 더 강력한 방법 XML 스키마로의 DTD에서 이동하는 것이 좋습니다.)

+0

즉시 대부분의 오류를 해결 한 도움에 감사드립니다. 내 태그를 다시 확인했는데 실수로 철자를 잘못 입력하지 않았습니다. 저는 현재 XML 클래스에 있으며 다음 주에 XML 스키마에 대해 실제로 배우고 있습니다. – Sparked

+0

"악성 종료 태그"가 발생하는 경우 파서가 잘못 입력했다고 말하고 어디로 향하고 있는지 말합니다. 다시 봐. 내가 제안한 특정 오류가 아닐 수도 있지만 문서가 잘못되어 파서가 잘못되었음을 발견 한 것입니다. – keshlam