निम्नलिखित XML दस्तावेज़ और स्कीमा एक बहुत बड़ा स्कीमा जिसमें समस्या पहले हुई से नीचे उबला हुआ था:'null-namespace' को xml तत्व के लिए क्यों अपेक्षित किया गया है जिसे स्कीमा में नामस्थान 'परिभाषित किया गया था?
एक्सएमएल दस्तावेज़:
<f2b:Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:f2b="http://www.outerfoospace.com/schemas/foo2bar" xsi:schemaLocation="http://www.outerfoospace.com/schemas/foo2bar f2b-0-0-0.xsd">
<f2b:Bar>text</f2b:Bar>
</f2b:Foo>
स्कीमा:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:f2b="http://www.outerfoospace.com/schemas/foo2bar" targetNamespace="http://www.outerfoospace.com/schemas/foo2bar">
<xs:complexType name="T_Foo">
<xs:sequence>
<xs:element name="Bar" xmlns="f2b"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Foo" type="f2b:T_Foo"/>
</xs:schema>
जब मैं स्कीमा के खिलाफ दस्तावेज़ को मान्य करें, मुझे <f2b:Bar>
पर एक त्रुटि संदेश मिलता है - यह कहकर कि <f2b:Bar>
अपेक्षित नहीं है। दस्तावेज़ को वैध बनाने के लिए मुझे <Bar>
को स्पष्ट रूप से (!) 'शून्य-नामस्थान' में रखना होगा: <Bar xmlns="">
। मुझे नहीं पता कि एक शून्य-नामित तत्व की अपेक्षा क्यों की जानी चाहिए। स्कीमा सभी तत्वों के लिए नामस्थान परिभाषित करता है और <Foo>
-f2b
- नामस्थान को वास्तव में सत्यापनकर्ता द्वारा अपेक्षित किया जाता है। लेकिन अगर मैंने स्पष्ट रूप से <Bar>
में नामस्थान सेट किया है- जैसा कि मैंने उपरोक्त किया है, सत्यापनकर्ता अभी भी -element के लिए xmlns=""
की अपेक्षा करता है। मैंने स्कीमा और दस्तावेज के कई बदलावों को कोई भाग्य के साथ उत्तर खोजने की कोशिश की - और मैं बस अनुमान नहीं लगा सकता कि इस विशेष मामले में नरक नाम की उम्मीद क्यों है।
किसी भी संकेत की सराहना की ... Ekke
स्पष्ट उत्तर के लिए धन्यवाद - आप बिल्कुल सही हैं। Ekke – ekke