2014-07-11 7 views
0

XML을 처음 사용합니다. 나는 임무를 수행 중이며 외부 DTD 유효성 검사에 박혀있다. 루트 요소가 잘 형성되어 있지 않다고 말하는 파일을 구문 분석 할 때 오류가 발생합니다. 두 파일 모두 같은 디렉토리에 있습니다.XML DTD를 이해하는 데 문제가 있습니다. 구문 분석 할 때 루트 요소가 잘 형성되지 않는 오류 발생

<?xml version="1.0" encoding="UTF-8"?> 
<!--DTD is in a local directory file named atoms.dtd --> 
<!-- Week 3 Homework --> 
<!DOCTYPE atoms SYSTEM "atoms.dtd">  
    <atoms> 
    <hydrogen> 
     <properties symbol="H" name="Hydrogen" atomicNumber="1" atomicWeight="1.00794"/> 
    </hydrogen> 

    <carbon> 
     <properties symbol="C" name="Carbon" atomicNumber="6" atomicWeight="12.011"/> 
    </carbon> 

    <oxygen> 
     <properties symbol="O" name="Oxygen" atomicNumber="8" atomicWeight="15.999"/> 
    </oxygen> 

    <titanium> 
     <properties symbol="Ti" name="Titanium" atomicNumber="22" atomicWeight="47.867"/> 
    </titanium> 

    <uranium> 
     <properties symbol="U" name="Uranium" atomicNumber="92" atomicWeight="238.03"/> 
    </uranium> 
    </atoms> 

편집 : 여기

<!DOCTYPE atoms [ 
    <!ELEMENT atoms (hydrogen, carbon, oxygen, titanium, uranium)> 
    <!ATTLIST atoms properties CDATA #REQUIRED> 
    <!ELEMENT hydrogen (#PCDATA)> 
    <!ELEMENT carbon (#PCDATA)> 
    <!ELEMENT oxygen (#PCDATA)> 
    <!ELEMENT titanium (#PCDATA)> 
    <!ELEMENT uranium (#PCDATA)> 
    <!ATTLIST properties symbol CDATA #REQUIRED> 
    <!ATTLIST properties name CDATA #REQUIRED> 
    <!ATTLIST properties atomicNumber CDATA #REQUIRED> 
    <!ATTLIST properties atomicWeight CDATA #REQUIRED> 
    ]> 

내 XML 파일입니다

난 그냥 지금이 방법을 시도하고 난 여전히 오류를 받고 있어요 여기

는 외부 DTD입니다 내가 분석 할 때.

외부 DTD :

<!DOCTYPE atoms [ <!ELEMENT atoms (atom+)> 
    <!ELEMENT atom (symbol, name, atomicNumber, atomicWeight)> 
    <!ELEMENT symbol (#PCDATA)> 
    <!ELEMENT name (#PCDATA)> 
    <!ELEMENT atomicNumber (#PCDATA)> 
    <!ELEMENT atomicWeight (#PCDATA)> ]> 

XML :

<?xml version="1.0" encoding="UTF-8"?> 
    <!--DTD is in a local directory file named atomsV2.dtd --> 
    <!-- Week 3 Homework --> 
    <!DOCTYPE atoms SYSTEM "atomsV2.dtd"> 
     <atoms> 
      <atom> 
       <symbol H /> 
       <name Hydrogen /> 
       <atomicNumber 1 /> 
       <atomicWeight 1.00794 /> 
      </atom> 

      <atom> 
       <symbol C /> 
       <name Carbon /> 
       <atomicNumber 6 /> 
       <atomicWeight 12.011 /> 
      </atom> 

      <atom> 
       <symbol O /> 
       <name Oxygen /> 
       <atomicNumber 8 /> 
       <atomicWeight 15.999 /> 
      </atom> 

      <atom> 
       <symbol Ti /> 
       <name Titanium /> 
       <atomicNumber 22 /> 
       <atomicWeight 47.867 /> 
      </atom> 

      <atom> 
       <symbol U /> 
       <name Uranium /> 
       <atomicNumber 92 /> 
       <atomicWeight 238.03 /> 
      </atom> 
     </atoms> 
+0

중복 가능성 http://stackoverflow.com/questions/5455394/problem -with-external-referenced-dtd-in-xml) –

답변

0

여기에 작동하는 버전입니다. 귀하의 질문은 완전히 다른 구조로 2 개의 다른 XML/DTD 쌍을 보여줍니다. 그래서 이것이 당신이 찾고있는 대답이 아니면 질문을 업데이트하십시오.

또한 수행중인 작업이 작동하지 않는 이유에 대한 자세한 설명은 External referenced DTD in XML을 참조하십시오.

외부 DTD

<!ELEMENT atoms (hydrogen, carbon, oxygen, titanium, uranium)> 
<!ATTLIST atoms properties CDATA #IMPLIED> 
<!ELEMENT hydrogen (properties)> 
<!ELEMENT carbon (properties)> 
<!ELEMENT oxygen (properties)> 
<!ELEMENT titanium (properties)> 
<!ELEMENT uranium (properties)> 
<!ELEMENT properties EMPTY> 
<!ATTLIST properties 
    symbol CDATA #REQUIRED 
    name CDATA #REQUIRED 
    atomicNumber CDATA #REQUIRED 
    atomicWeight CDATA #REQUIRED> 

XML

<!DOCTYPE atoms SYSTEM "atoms.dtd"> 
<atoms> 
    <hydrogen> 
     <properties symbol="H" name="Hydrogen" atomicNumber="1" atomicWeight="1.00794"/> 
    </hydrogen> 

    <carbon> 
     <properties symbol="C" name="Carbon" atomicNumber="6" atomicWeight="12.011"/> 
    </carbon> 

    <oxygen> 
     <properties symbol="O" name="Oxygen" atomicNumber="8" atomicWeight="15.999"/> 
    </oxygen> 

    <titanium> 
     <properties symbol="Ti" name="Titanium" atomicNumber="22" atomicWeight="47.867"/> 
    </titanium> 

    <uranium> 
     <properties symbol="U" name="Uranium" atomicNumber="92" atomicWeight="238.03"/> 
    </uranium> 
</atoms> 
([XML에서 참조되는 외부 DTD에 문제]의