2016-11-28 3 views
0

XMLを取得してDTDを見るだけでなく、DTDを検証しようとしているときにエラーが発生しました。よく形成される。私が間違ってやっていることや両方のファイルがうまく動作するようにする方法が不明です。どんな助けもありがとう。私のDTDとXMLを正しく動作させようとしています

DTD:

<!ELEMENT measurements (#PCDATA|distance|weight|volume)> 
    <!ELEMENT weight (#PCDATA)> 
    <!ELEMENT volume (#PCDATA)> 
    <!ELEMENT distance (#PCDATA)> 
    <!ATTLIST distance status (metric|imperial) #REQUIRED> 

はXML:あなたのDTDで

<?xml version="1.0"?> 
    <!DOCTYPE measurements PUBLIC "-//American Sentinel//XML Applications//EN" "measurements.dtd"> 
    <measurement> 
     <weight>5</weight> 
     <volume>10</volume> 
     <distance>metric</distance> 
    </measurement> 

答えて

1

measurementsのための宣言はする必要があります:

<!ELEMENT measurements (#PCDATA|distance|weight|volume)*> 

への唯一の方法があるためでありますmixed contentと宣言してください。

また、measurements(複数)をDTDで宣言しましたが、XMLではmeasurement(単数)を使用しています。 DTDまたはXMLを変更する必要があります。 DTDを変更する場合は、XMLのdoctype宣言を変更することを忘れないでください。

もう1つのことは、status属性がDTDで必須と宣言されていることです。固定DTDとXMLの

例...

DTD

<!ELEMENT measurements (#PCDATA|distance|weight|volume)*> 
<!ELEMENT weight (#PCDATA)> 
<!ELEMENT volume (#PCDATA)> 
<!ELEMENT distance (#PCDATA)> 
<!ATTLIST distance status (metric|imperial) #REQUIRED> 

XML

<!DOCTYPE measurements PUBLIC "-//American Sentinel//XML Applications//EN" "measurements.dtd"> 
<measurements> 
    <weight>5</weight> 
    <volume>10</volume> 
    <distance status="metric"/> 
</measurements> 
+0

は間違いなく有用であり、間違いなく感謝されたこと、ありがとうございます。 –

関連する問題