XSD কম্পলেক্স এলিমেন্ট
- পূর্ববর্তী পৃষ্ঠা XSD নিয়ন্ত্রণ
- পরবর্তী পৃষ্ঠা XSD খালি এলিমেন্ট
复合元素包含了其他的元素及/或属性。
什么是复合元素?
复合元素指包含其他元素及/或属性的 XML 元素。
有四种类型的复合元素:
- 空元素
- 包含其他元素的元素
- 仅包含文本的元素
- 包含元素和文本的元素
注释:上述元素均可包含属性!
复合元素的例子
复合元素,"product",是空的:
<product pid="1345"/>
复合元素,"employee",仅包含其他元素:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
复合元素,"food",仅包含文本:
<food type="dessert">Ice cream</food>
复合元素,"description",包含元素和文本:
<description> It happened on <date lang="norwegian">03.03.99</date> .... </description>
如何定义复合元素?
请看这个复合 XML 元素,"employee",仅包含其他元素:
<employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee>
在 XML Schema 中,我们有两种方式来定义复合元素:
1. 通过命名此元素,可直接对"employee"元素进行声明,就像这样:
<xs:element name="employee"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
যদি আপনি উপরোক্ত পদ্ধতিটি ব্যবহার করেছেন, তবে কেবল "employee"-এর জন্য নির্দিষ্ট কম্পোজিট টাইপকে ব্যবহার করা যাবে। দৃষ্টিগোচর করুন তার সাব-ইলেমেন্ট, "firstname" এবং "lastname"-কে, <sequence> ইনডিকেটরের মধ্যে বেঁধা রয়েছে। এই মানে যে, সাব-ইলেমেন্টগুলি তাদের ঘোষণার ক্রমে প্রকাশ করা হবে। XSD ইনডিকেটর এই ধাপে ইনডিকেটরের বিষয়ে আরও একটু শিখুন。
2. "employee" ইলেমেন্টটি type অ্যাট্রিবিউট ব্যবহার করতে পারে, এই অ্যাট্রিবিউটটির কাজ হল যে কম্পোজিট টাইপের নাম উল্লেখ করা হয়:
<xs:element name="employee" type="personinfo"/> <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:element name="employee" type="personinfo"/> <xs:element name="student" type="personinfo"/> <xs:element name="member" type="personinfo"/> <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: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>
- পূর্ববর্তী পৃষ্ঠা XSD নিয়ন্ত্রণ
- পরবর্তী পৃষ্ঠা XSD খালি এলিমেন্ট