Latest web development tutorials

Indikator XML Schema

Dengan indikator, kita dapat mengontrol penggunaan unsur-unsur dalam modus dokumen.


indikator

Ada tujuh indikator:

Indikator Order:

  • semua
  • pilihan
  • urutan

Indikator terjadinya:

  • maxOccurs
  • minOccurs

Kelompok indikator:

  • nama grup
  • nama attributeGroup

indikator rangka

Indikator rangka yang digunakan untuk menentukan urutan elemen.

semua indikator

<Semua> indikator sesuai dengan ketentuan sub-elemen dapat muncul dalam urutan apapun, dan setiap elemen anak harus muncul sekali:

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

Catatan: Bila menggunakan <semua> indikator, Anda dapat menempatkan <minOccurs> diatur ke 0 atau 1, tetapi hanya <maxOccurs> indikator diatur ke 1 (kemudian menjelaskan <minOccurs> dan <maxOccurs>).

pilihan Indicator

<Penghargaan> indikator menyediakan untuk sub-elemen terjadi atau dapat terjadi elemen anak lain (atau yang lain):

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

urutan Indicator

<Urutan> elemen anak harus ditentukan dalam urutan tertentu:

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


indikator terjadinya

indikator terjadinya digunakan untuk menentukan frekuensi elemen terjadi.

Catatan: Untuk semua "Order" dan "Grup" indikator (apapun, semua, pilihan, urut , nama grup dan kelompok referensi), yang maxOccurs dan minOccurs default adalah 1.

indikator maxOccurs

<MaxOccurs> indikator dapat menentukan jumlah maksimum kali elemen dapat terjadi:

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

Contoh di atas menunjukkan bahwa anak elemen "CHILD_NAME" mungkin muncul dalam setidaknya "orang" elemen sekali (di mana nilai default dari minOccurs adalah 1), muncul paling banyak 10 kali.

indikator minOccurs

<MinOccurs> indikator mungkin memerlukan jumlah minimum kali elemen dapat terjadi:

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

Contoh di atas menunjukkan bahwa anak elemen "CHILD_NAME" mungkin ada minimal 0 di "orang" elemen, muncul paling banyak 10 kali.

Tip: Untuk membuat jumlah kejadian dari suatu unsur tidak terbatas, gunakan maxOccurs = "tak terbatas" pernyataan ini:

Sebuah contoh praktis:

Disebut "Myfamily.xml" file XML:

<?xml version="1.0" encoding="ISO-8859-1"?>

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

Di atas file XML ini berisi elemen root bernama "orang" dari. Dalam elemen akar ini, kita telah mendefinisikan tiga "orang" elemen. Setiap "orang" elemen harus berisi "FULL_NAME" elemen, tetapi mungkin berisi hingga 5 "CHILD_NAME" elemen.

Ini adalah skema file "family.xsd":

<?xml version="1.0" encoding="ISO-8859-1"?>
<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>


indikator kelompok

Indikator Group untuk beberapa batch elemen yang terkait dengan definisi.

elemen Grup

kelompok elemen yang didefinisikan oleh kelompok menyatakan:

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

Anda harus menentukan sebuah pernyataan dalam kelompok semua, pilihan atau urutan elemen. Contoh berikut mendefinisikan kelompok bernama "persongroup", yang mendefinisikan satu set elemen yang harus hadir sesuai dengan urutan yang tepat:

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

Setelah Anda telah didefinisikan kelompok selesai, Anda dapat merujuk ke dalam definisi lain dari:

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

kelompok properti

Atribut kelompok didefinisikan oleh pernyataan attributeGroup:

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

Contoh berikut mendefinisikan kelompok properti bernama "personattrgroup" dari:

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

Setelah Anda telah menetapkan satu set lengkap atribut, Anda dapat referensi itu dalam definisi lain, seperti:

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