XSD indikatorlari


Indikatorlar yordamida elementlar hujjatlarda QANDAY ishlatilishini boshqarishimiz mumkin.


ULASHISH

Indikatorlar

Yettita indikator mavjud:

Tartib indikatorlari:

  • All
  • Choice
  • Sequence

Takrorlanish indikatorlari:

  • maxOccurs
  • minOccurs

Guruh indikatorlari:

  • Group nomi
  • attributeGroup nomi

Tartib indikatorlari

Tartib indikatorlari elementlarning tartibini aniqlash uchun ishlatiladi.

All indikatori

<all> indikatori bola elementlar istalgan tartibda kelishi mumkinligini va har bir bola element faqat bir marta kelishi kerakligini belgilaydi:

<xs:element name="person">   <xs:complexType>     <xs:all>       <xs:element name="firstname" type="xs:string"/>       <xs:element name="lastname" type="xs:string"/>     </xs:all>   </xs:complexType> </xs:element>

Eslatma: <all> indikatoridan foydalanganda <minOccurs> indikatorini 0 yoki 1 ga o‘rnatishingiz mumkin, <maxOccurs> indikatorini esa faqat 1 ga o‘rnatish mumkin (<minOccurs> va <maxOccurs> keyinroq tavsiflanadi).

Choice indikatori

<choice> indikatori yo bir bola element, yo boshqasi kelishi mumkinligini belgilaydi:

<xs:element name="person">   <xs:complexType>     <xs:choice>       <xs:element name="employee" type="employee"/>       <xs:element name="member" type="member"/>     </xs:choice>   </xs:complexType> </xs:element>

Sequence indikatori

<sequence> indikatori bola elementlar ma’lum bir tartibda kelishi kerakligini belgilaydi:

<xs:element name="person">    <xs:complexType>     <xs:sequence>       <xs:element name="firstname" type="xs:string"/>       <xs:element name="lastname" type="xs:string"/>     </xs:sequence>   </xs:complexType> </xs:element>


Takrorlanish indikatorlari

Takrorlanish indikatorlari element necha marta kelishi mumkinligini aniqlash uchun ishlatiladi.

Eslatma: Barcha "Order" (tartib) va "Group" (guruh) indikatorlari (any, all, choice, sequence, group name va group reference) uchun maxOccurs va minOccurs’ning standart qiymati 1 ga teng.

maxOccurs indikatori

<maxOccurs> indikatori element ko‘pi bilan necha marta kelishi mumkinligini belgilaydi:

<xs:element name="person">   <xs:complexType>     <xs:sequence>       <xs:element name="full_name" type="xs:string"/>       <xs:element name="child_name" type="xs:string" maxOccurs="10"/>     </xs:sequence>   </xs:complexType> </xs:element>

Yuqoridagi misol "child_name" elementi "person" elementida kamida bir marta (minOccurs’ning standart qiymati 1) va ko‘pi bilan o‘n marta kelishi mumkinligini bildiradi.

minOccurs indikatori

<minOccurs> indikatori element kamida necha marta kelishi mumkinligini belgilaydi:

<xs:element name="person">   <xs:complexType>     <xs:sequence>       <xs:element name="full_name" type="xs:string"/>       <xs:element name="child_name" type="xs:string"       maxOccurs="10" minOccurs="0"/>     </xs:sequence>   </xs:complexType> </xs:element>

Yuqoridagi misol "child_name" elementi "person" elementida kamida nol marta va ko‘pi bilan o‘n marta kelishi mumkinligini bildiradi.

Maslahat: Element cheksiz marta kelishiga ruxsat berish uchun maxOccurs="unbounded" ko‘rsatmasidan foydalaning:

Ishlaydigan misol:

"Myfamily.xml" nomli XML fayl:

<?xml version="1.0" encoding="UTF-8"?> <persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="family.xsd"> <person>   <full_name>Hege Refsnes</full_name>   <child_name>Cecilie</child_name> </person> <person>   <full_name>Tove Refsnes</full_name>   <child_name>Hege</child_name>   <child_name>Stale</child_name>   <child_name>Jim</child_name>   <child_name>Borge</child_name> </person> <person>   <full_name>Stale Refsnes</full_name> </person> </persons>

Yuqoridagi XML fayl "persons" nomli ildiz elementni o‘z ichiga oladi. Bu ildiz element ichida uchta "person" elementini aniqlaganmiz. Har bir "person" elementi "full_name" elementini o‘z ichiga olishi shart va beshtagacha "child_name" elementini o‘z ichiga olishi mumkin.

Mana "family.xsd" sxema fayli:

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="persons">   <xs:complexType>     <xs:sequence>       <xs:element name="person" maxOccurs="unbounded">         <xs:complexType>           <xs:sequence>             <xs:element name="full_name" type="xs:string"/>             <xs:element name="child_name" type="xs:string"             minOccurs="0" maxOccurs="5"/>           </xs:sequence>         </xs:complexType>       </xs:element>     </xs:sequence>   </xs:complexType> </xs:element> </xs:schema>

Guruh indikatorlari

Guruh indikatorlari o‘zaro bog‘liq element to‘plamlarini aniqlash uchun ishlatiladi.

Element guruhlari

Element guruhlari group e’loni bilan quyidagicha aniqlanadi:

<xs:group name="groupname"> ... </xs:group>

group e’loni ichida all, choice yoki sequence elementini aniqlashingiz kerak. Quyidagi misol aniq ketma-ketlikda kelishi kerak bo‘lgan elementlar guruhini belgilaydigan "persongroup" nomli guruhni aniqlaydi:

<xs:group name="persongroup">   <xs:sequence>     <xs:element name="firstname" type="xs:string"/>     <xs:element name="lastname" type="xs:string"/>     <xs:element name="birthday" type="xs:date"/>   </xs:sequence> </xs:group>

Guruhni aniqlaganingizdan so‘ng, unga boshqa ta’rifda quyidagicha havola qilishingiz mumkin:

<xs:group name="persongroup">   <xs:sequence>     <xs:element name="firstname" type="xs:string"/>     <xs:element name="lastname" type="xs:string"/>     <xs:element name="birthday" type="xs:date"/>   </xs:sequence> </xs:group> <xs:element name="person" type="personinfo"/> <xs:complexType name="personinfo">   <xs:sequence>     <xs:group ref="persongroup"/>     <xs:element name="country" type="xs:string"/>   </xs:sequence> </xs:complexType>

Atribut guruhlari

Atribut guruhlari attributeGroup e’loni bilan quyidagicha aniqlanadi:

<xs:attributeGroup name="groupname"> ... </xs:attributeGroup>

Quyidagi misol "personattrgroup" nomli atribut guruhini aniqlaydi:

<xs:attributeGroup name="personattrgroup">   <xs:attribute name="firstname" type="xs:string"/>   <xs:attribute name="lastname" type="xs:string"/>   <xs:attribute name="birthday" type="xs:date"/> </xs:attributeGroup>

Atribut guruhini aniqlaganingizdan so‘ng, unga boshqa ta’rifda quyidagicha havola qilishingiz mumkin:

<xs:attributeGroup name="personattrgroup">   <xs:attribute name="firstname" type="xs:string"/>   <xs:attribute name="lastname" type="xs:string"/>   <xs:attribute name="birthday" type="xs:date"/> </xs:attributeGroup> <xs:element name="person">   <xs:complexType>     <xs:attributeGroup ref="personattrgroup"/>   </xs:complexType> </xs:element>

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!