2011-12-06 16 views
8

मिलान करना चाहिए, मैं बाहरी एक्सटीडी के साथ अपनी एक्सएमएल फ़ाइल को सत्यापित करने की कोशिश कर रहा हूं। लेकिन मुझे हर बार यह त्रुटि मिलती है।एक्सएमएल सत्यापन त्रुटि- रूट तत्व को डॉक्टरेट

Document root element "A", must match DOCTYPE root "test". 

मैं इसे समझ नहीं सकता।

मेरी एक्सएमएल फ़ाइल का विचार यह है कि इसकी आवश्यकता जितनी कम हो सके। मुझे लगता है कि यह सब अच्छा है लेकिन जैसा कि मैंने कहा, मैं मान्य नहीं हूं। क्या किसी के पास कोई विचार है?

यह मेरा एक्सएमएल फ़ाइल

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE test SYSTEM "test.dtd"> 

<A> 
<B> 
<F>name</F> 
</B> 
<D>lastname</D> 
<F>name</F> 
</A> 

और मेरे DTD

<!ELEMENT A (B, (C|D), E?, (F, G?)+)> 
<!ELEMENT B (F|G)+> 
<!ELEMENT D (#PCDATA|C)*> 
<!ELEMENT F (#PCDATA)> 
<!ELEMENT G (#PCDATA)> 
<!ELEMENT C (#PCDATA)> 
<!ELEMENT E (#PCDATA)> 

धन्यवाद

उत्तर

14

Doctype का दावा मूल तत्व <test> है है, लेकिन आप <A>

<!DOCTYPE test 
      ^^^^ 
का इस्तेमाल किया है

या तो डॉक्टरेट को बदलें, इसलिए यह दावा करता है कि रूट <A> है या <test> का उपयोग करने के लिए XML और DTD को बदलें।

4
<!DOCTYPE test SYSTEM "test.dtd"> 

घोषणा करता है कि DTD-conformant दस्तावेज़ के मूल तत्व test कहा जाता है। आप चाहते हैं:

<!DOCTYPE A SYSTEM "test.dtd"> 
संबंधित मुद्दे