2017-06-27 40 views
0

整形式のXML文書を生成従いながら私の問題文です:早すぎる終わり

XYZの学校はxmlファイルで学生 とスタッフの詳細を格納したいと考えています。次のシナリオ は、XMLドキュメントの設計に役立ちます。ユーザーがルートタグになります。各人の名前、年齢、性別、住所を入力する必要があります。 人は学生でもスタッフでもあります。学生はロールノ、スタンダード、セクションを持ちます。スタッフの場合は、staffidとsubjectです。 すべての人は、次の項目の住所を持っていなければなりません - doorno、street、cityとstate。次のように私が書いた

コードは次のとおりです。

 <?xml version="1.0" encoding="UTF-8"?> 
     <!DOCTYPE persons 
[ 
<!ELEMENT name (#PCDATA)> 
<!ELEMENT age (#PCDATA)> 
<!ELEMENT gender (#PCDATA)> 
<!ELEMENT address (doorno,street,city,state)> 
<!ELEMENT student (rollno,standard,section)> 
<!ELEMENT rollno (#PCDATA)> 
<!ELEMENT standard (#PCDATA)> 
<!ELEMENT section (#PCDATA)> 
<!ELEMENT staff (staffid,subject)> 
<!ELEMENT staffid (#PCDATA)> 
<!ELEMENT subject (#PCDATA)> 
<!ELEMENT doorno (#PCDATA)> 
<!ELEMENT street (#PCDATA)> 
<!ELEMENT city (#PCDATA)> 
<!ELEMENT state (#PCDATA)> 

]>

それはエラー - 例外を与える:ファイルの早すぎる終わり。私はXMLで非常に新しいので、苦労しています。助けていただければ幸いです

+0

どのプログラムがエラーを出力しますか? – ceving

答えて

0

文書をチェックするために使用しているものは、ルートノードを持っていないため整形式ではないと不平を言うと思います。あなたのケースでは、私はルートノードが人であるべきだと思うので、<persons/>を追加すると整形式文書が得られますが、まだ有効ではありません。

xmllintのような検証ツールを使用して、有効性をチェックすることができます。 Is there a difference between 'valid xml' and 'well formed xml'?

DTDのルートノードが人であると指定していますが、実際にはpersonまたはperson要素を定義していません。例はあなたを正しい経路に設定するかもしれません。 https://www.w3schools.com/xml/xml_dtd_intro.asp

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE person [ 
<!ELEMENT person (student | staff)> 
<!ELEMENT staff EMPTY> 
<!ELEMENT student EMPTY> 
<!ATTLIST person name CDATA #REQUIRED age CDATA #REQUIRED> 
<!ATTLIST student rollno CDATA #REQUIRED> 
]> 
<person age="1" name="A"> 
<student rollno="20013456"/> 
</person> 
+0

ありがとうマイク..それを働いた – tron042

関連する問題