2011-12-05 6 views
8

क्या यह एक वैध एक्सएमएल उदाहरण है? इसमें एक्सएमएल घोषणा और रूट नोड के बीच कुछ भी नहीं है।क्या एक नई लाइन एक्सएमएल घोषणा का पालन करना चाहिए?

<?xml version="1.0" encoding="UTF-8"?><data></data> 

मैं XML विवरण में सही जगह अपने आप को नहीं मिल रहा है और उम्मीद है कि किसी ने मुझसे मदद मिलेगी सकता है ...

उत्तर

7

कल्पना (2.8 Prolog and Document Type Declaration देखें) की आवश्यकता नहीं है (लेकिन अनुमति नहीं है) करने के लिए एक नई पंक्ति एक्सएमएल घोषणा का पालन करें।

[16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
...
[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
[23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
...
[27] Misc ::= Comment | PI | S

आप [22] prolog एक्सएमएल में देख सकते हैं:

औपचारिक रूप से इस रूप में लिखा है घोषणापत्र वैकल्पिक (प्रतीक के बाद प्रश्नपत्र देखें) और शून्य, एक या अधिक (स्टार देखें) Misc का पालन कर सकते हैं: टिप्पणियां, अन्य प्रसंस्करण निर्देश (PI) या व्हाइटस्पेस (S)। व्हाइटस्पेस में नई लाइन शामिल है।

क्योंकि Misc यहां वैकल्पिक है, लेकिन घोषणा के बाद एक नई लाइन का पालन करने की आवश्यकता नहीं है।

+0

लेकिन शायद विनिर्देश में कहीं और एक बयान है? – Andrej

+0

फिर कल्पना खुद के खिलाफ विरोधाभास होगा। –

+0

लेकिन शायद यह कहता है कि दस्तावेज़ सामग्री कैसे शुरू होनी चाहिए? – Andrej

2

नई लाइनें या तो spec का हिस्सा नहीं हैं। उदाहरण के लिए, जब आप XMLOutputter क्लास (जावा में) के साथ एक XML दस्तावेज़ लिखते हैं, तो आपको बिना किसी नई फ़ाइल के फ़ाइल मिलती है। न्यूलाइन इंसानों के लिए हैं।

+3

धन्यवाद। लेकिन मैं केवल इसलिए सुनिश्चित नहीं हो सकता क्योंकि कुछ जावा कार्यान्वयन ऐसा करते हैं। – Andrej

संबंधित मुद्दे