XML Schema complexType एलिमेंट
परिभाषा और उपयोग
complexType एलिमेंट जटिल प्रकार की परिभाषा करता है। जटिल प्रकार के एलिमेंट XML एलिमेंट हैं जो अन्य एलिमेंट और/या गुणों को शामिल करते हैं।
एलीमेंट सूचना
उपस्थिति बार | ढांचे में अनिवार्यता; एलीमेंट में एक बार। |
पितृ एलीमेंट | element、redefine、schema |
विषय | annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute |
व्याकरण
<complexType id=ID name=NCName abstract=true|false mixed=true|false block=(#all|सूची में (extension|restriction))) final=(#all|सूची में (extension|restriction))) किसी अन्य गुण > (annotation?,(simpleContent|complexContent|((group|all| choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?)))) </complexType>
(? संकेतक जो complexType एलीमेंट में घोषित होता है, एलीमेंट को शून्य या एक बार दिखाई देता है,* संकेतक घोषित एलीमेंट को शून्य या अनेक बार दिखाई देता है。)
गुण
आईडी
वैकल्पिक। इस एलीमेंट के अद्वितीय आईडी निर्धारित करता है।
नाम
वैकल्पिक। एलीमेंट का नाम निर्धारित करता है।
अब्जक्ट
वैकल्पिक। इस गुण को निर्धारित करता है कि इस परिवर्ती का प्रयोग करने के लिए वास्तविक दस्तावेज़ में इस परिवर्ती का प्रयोग किया जा सकता है कि नहीं। यदि यह मान true है, तो एलीमेंट को यह परिवर्ती प्रयोग में नहीं लाया जा सकता है, बल्कि उसके परिवर्ती परिवर्ती का प्रयोग करना आवश्यक है। मूलभूत मान false है।
मिक्सेड
वैकल्पिक। इस गुण को निर्धारित करता है कि चरित्र डाटा इस परिवर्ती के उपएलीमेंट के बीच में दिखाई देने चाहिए कि नहीं। मूलभूत मान false है।
- यदि simpleContent एलीमेंट उपएलीमेंट है, तो mixed गुण को नहीं अनुमति है।
- यदि complexContent एलीमेंट उपएलीमेंट है, तो इस mixed गुण को complexContent एलीमेंट के mixed गुण द्वारा प्रतिस्थापित किया जा सकता है।
ब्लॉक
वैकल्पिक। निर्दिष्ट परिवर्ती जो परिवर्ती प्रयोग में लाया जाए, उसे प्रयोग में नहीं आने देना। इस मान को #all या एक सूची में शामिल किया जा सकता है जो extension या restriction का सबसे छोटा उपसमूह है:
- विस्तार - परिवर्तीय परिवर्ती जो परिवर्ती प्रयोग में लाया जाए, उसे प्रयोग में नहीं आने देना।
- प्रतिबंध - परिवर्तीय परिवर्ती जो परिवर्ती प्रयोग में लाया जाए, उसे प्रयोग में नहीं आने देना।
- #all - इस complexType के लिए उत्पन्न सभी जटिल प्रकार को रोकता है।
final
वैकल्पिक।इस complexType तत्व से उत्पन्न निर्दिष्ट प्रकार को रोकने के लिए।यह मान #all या extension और restriction के सबसे छोटे से समूह की सूची हो सकता है。
- extension - द्वारा विस्तारित उत्पन्न को रोकता है。
- restriction - द्वारा प्रतिबंधित उत्पन्न को रोकता है。
- #all - सभी उत्पन्न (विस्तार और प्रतिबंध) को रोकता है。
किसी अन्य गुण
वैकल्पिक।non-schema नामस्पति के साथ किसी अन्य गुण को निर्दिष्ट करता है。
उदाहरण
उदाहरण 1
इस उदाहरण में "note" नाम के जटिल प्रकार का एक तत्व है:
<xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
उदाहरण 2
इस उदाहरण में एक जटिल प्रकार "fullpersoninfo" है, जो तीन अतिरिक्त तत्व (address, city और country) के जरिए अभिप्रेत प्रकार को विस्तारित करता है, जो एक अन्य जटिल प्रकार "personinfo" से उत्पन्न होता है:
<xs:element name="employee" type="fullpersoninfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="fullpersoninfo"> <xs:complexContent> <xs:extension base="personinfo"> <xs:sequence> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>
ऊपरी उदाहरण में, ऊपरी "employee" एलीमेंट को निम्नलिखित एलीमेंट को क्रमिक रूप से समाविष्ट करना चाहिए: "firstname", "lastname", "address", "city" और "country"。