XSD murakkab elementlar


Murakkab element boshqa elementlar va/yoki atributlarni o‘z ichiga oladi.


ULASHISH

Murakkab element nima?

Murakkab element — boshqa elementlar va/yoki atributlarni o‘z ichiga olgan XML elementi.

Murakkab elementlarning to‘rt turi bor:

  • bo‘sh elementlar
  • faqat boshqa elementlarni o‘z ichiga olgan elementlar
  • faqat matnni o‘z ichiga olgan elementlar
  • ham boshqa elementlarni, ham matnni o‘z ichiga olgan elementlar

Eslatma: Bu elementlarning har biri atributlarni ham o‘z ichiga olishi mumkin!


Murakkab elementlarga misollar

Bo‘sh "product" murakkab XML elementi:

<product pid="1345"/>

Faqat boshqa elementlarni o‘z ichiga olgan "employee" murakkab XML elementi:

<employee>   <firstname>John</firstname>   <lastname>Smith</lastname> </employee>

Faqat matnni o‘z ichiga olgan "food" murakkab XML elementi:

<food type="dessert">Ice cream</food>

Ham elementlarni, ham matnni o‘z ichiga olgan "description" murakkab XML elementi:

<description> It happened on <date lang="norwegian">03.03.99</date> .... </description>


Murakkab elementni qanday aniqlash mumkin

Faqat boshqa elementlarni o‘z ichiga olgan ushbu "employee" murakkab XML elementiga qarang:

<employee>   <firstname>John</firstname>   <lastname>Smith</lastname> </employee>

XML sxemasida murakkab elementni ikki xil usulda aniqlashimiz mumkin:

1. "employee" elementini to‘g‘ridan-to‘g‘ri, elementga nom berish orqali quyidagicha e’lon qilish mumkin:

<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>

Yuqorida tavsiflangan usuldan foydalansangiz, belgilangan murakkab tipdan faqat "employee" elementi foydalana oladi. E’tibor bering, "firstname" va "lastname" bola elementlari <sequence> indikatori ichiga olingan. Bu bola elementlar e’lon qilingan tartibda kelishi kerakligini bildiradi. Indikatorlar haqida "XSD indikatorlari" bobida batafsil bilib olasiz.

2. "employee" elementi ishlatiladigan murakkab tipning nomiga ishora qiluvchi type atributiga ega bo‘lishi mumkin:

<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>

Yuqorida tavsiflangan usuldan foydalansangiz, bir nechta element bitta murakkab tipga quyidagicha ishora qilishi mumkin:

<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>

Shuningdek, murakkab tipni mavjud murakkab tip asosida yaratib, unga ba’zi elementlarni quyidagicha qo‘shishingiz mumkin:

<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>

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!