Penunjuk Skema XML
XSD Penunjuk
Penunjuk membolehkan kami mengawal cara elemen digunakan dalam dokumen.
Penunjuk
Terdapat tujuh jenis penunjuk:
Penunjuk pesanan:
Semua
Pilihan
Jujukan
Penunjuk Kejadian:
maxBerlaku
minBerlaku
Penunjuk kumpulan:
Nama kumpulan
-
Nama kumpulan atribut
Penunjuk pesanan
Penunjuk tertib digunakan untuk mentakrifkan susunan unsur.
Semua penunjuk
<semua> Penunjuk menentukan bahawa elemen anak boleh muncul dalam sebarang susunan dan setiap elemen anak mesti muncul sekali sahaja:
<xs:complexType>
<xs:semua>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:semua>
</xs:complexType>
</xs:element>
Nota: Apabila menggunakan penunjuk <semua> ditetapkan kepada 0 atau 1, dan hanya penunjuk <maxOccurs> boleh ditetapkan kepada 1 (<minOccurs> dan <maxOccurs> akan diterangkan kemudian).
Penunjuk pilihan
<pilihan> Penunjuk menentukan bahawa elemen kanak-kanak tertentu boleh muncul atau elemen kanak-kanak lain boleh muncul (sama ada satu atau yang lain):
<xs:complexType>
<xs:choice>
<xs:element name="pekerja" type="pekerja"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>
Penunjuk jujukan
<jujukan> menyatakan bahawa elemen anak mesti muncul dalam susunan tertentu:
<xs:complexType>
<xs:jujukan>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Penunjuk kejadian
Penunjuk kejadian digunakan untuk mentakrifkan kejadian sesuatu kekerapan unsur.
Nota: Untuk semua penunjuk "Pesanan" dan "Kumpulan" (mana-mana, semua, pilihan, urutan, nama kumpulan dan rujukan kumpulan), nilai lalai maxOccurs dan minOccurs ialah Kedua-duanya adalah 1.
penunjuk maxOccurs
<maxOccurs> Penunjuk menentukan bilangan kali maksimum elemen boleh muncul:
<xs:complexType>
<xs:jujukan>
<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 bahawa elemen anak "child_name" boleh muncul sekurang-kurangnya sekali dalam elemen "orang" (di mana minOccurs Nilai lalai ialah 1), yang boleh berlaku sehingga 10 kali.
penunjuk minOccurs
<minOccurs> Penunjuk menentukan bilangan kali minimum elemen boleh muncul:
<xs:complexType>
<xs:jujukan>
<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 bahawa elemen anak "nama_anak" boleh muncul sekurang-kurangnya 0 kali dan paling banyak 10 kali dalam elemen "orang".
Petua: Untuk menjadikan bilangan kejadian unsur tidak terhad, sila gunakan penyataan maxOccurs="unbounded":
Contoh praktikal:
Fail XML bernama "Myfamily.xml":
<orang xmlns :xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">
<person>
<nama_penuh>Hege Refsnes</nama_penuh>
<nama_anak>Cecilie</nama_anak>
</orang>
<orang>
<nama_penuh>Tove Refsnes</nama_penuh>
<child_name>Hege</child_name>
<nama_anak>Lapuk</nama_anak>
<child_name>Jim</child_name>
<nama_anak>Borge</nama_anak>
</orang>
<orang>
<nama_penuh>Stale Refsnes</full_name>
</person>
</persons>
Fail XML di atas mengandungi elemen akar bernama "orang". Di dalam elemen akar ini, kami mentakrifkan tiga elemen "orang". Setiap elemen "orang" mesti mengandungi elemen "nama_penuh" dan ia boleh mengandungi sehingga 5 elemen "nama_anak".
Ini ialah fail skema "family.xsd":
< ;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="persons" > ;
<xs:complexType>
<xs:jujukan>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:jujukan>
<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>
Penunjuk kumpulan
Penunjuk kumpulan digunakan untuk menentukan elemen kelompok yang berkaitan.
Kumpulan elemen
Kumpulan elemen ditakrifkan melalui pengisytiharan kumpulan:
...
</xs:group>
Anda mesti menentukan elemen semua, pilihan atau jujukan di dalam pengisytiharan kumpulan. Contoh berikut mentakrifkan kumpulan bernama "kumpulan orang", yang mentakrifkan satu set elemen yang mesti muncul dalam susunan yang tepat:
<xs:jujukan>
<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>
Selepas anda mentakrifkan kumpulan, anda boleh merujuknya dalam definisi lain:
<xs:jujukan>
<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:jujukan>
<xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Kumpulan Atribut
Kumpulan atribut ditakrifkan melalui pengisytiharan kumpulan atribut:
<xs:attributeGroup name="groupname">
<xs:attributeGroup name="personattrgroup">
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<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"/>