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|list of (extension|restriction)) final=(#all|list of (extension|restriction)) कोई गुण > (annotation?,(simpleContent|complexContent|((group|all| choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?)))) </complexType>
(? चिह्न complexType एलीमेंट में घोषित है, एलीमेंट शून्य या एक बार दिखाई दे सकता है,* चिह्न घोषित एलीमेंट शून्य या अनेक बार दिखाई दे सकता है。)
गुण
id
चुनौती।इस एलीमेंट के अद्वितीय ID निर्धारित करता है।
name
चुनौती।एलीमेंट का नाम निर्धारित करता है।
abstract
चुनौती।इस जटिल तरीके का उपयोग इस्तेमाल करने के लिए इस्तेमाल किया जा सकता है क्या।यदि यह मान true है तो एलीमेंट को इस जटिल तरीके को सीधे इस्तेमाल नहीं किया जा सकता है बल्कि इस जटिल तरीके से उत्पन्न जटिल तरीके का इस्तेमाल करना चाहिए।मूलभूत मान false है।
mixed
चुनौती।क्या अक्षर डाटा इस जटिल तरीके के उपएलीमेंट के बीच दिखाई देना चाहिए।मूलभूत मान false है।
- यदि simpleContent एलीमेंट उपएलीमेंट है तो mixed गुण का उपयोग नहीं किया जा सकता।
- यदि complexContent एलीमेंट उपएलीमेंट है तो इस mixed गुण को complexContent एलीमेंट के mixed गुण द्वारा परिवर्तित किया जा सकता है।
block
चुनौती।निर्दिष्ट उत्पन्न तरीके वाले जटिल तरीके को इस complexType के स्थान पर उपयोग करने से रोकने के लिए।इस मान को #all या एक सूची शामिल कर सकते हैं जो extension या restriction का उपसमूह है:
- extension - इस complexType के स्थान पर विस्तार के माध्यम से उत्पन्न जटिल तरीकों को रोकने के लिए।
- restriction - इस complexType के स्थान पर विनियमन के माध्यम से उत्पन्न जटिल तरीकों को रोकने के लिए।
- #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"。