Indikator Tipe Kombinasi XSD
- Halaman Sebelumnya Kandungan Kombinasi campuran XSD
- Halaman Berikutnya XSD <any>
Melalui penanda, kita dapat mengawasi cara penggunaan elemen dalam dokumen.
Penanda
Ada tujuh jenis penanda:
Penanda Order:
- Semua
- Pilihan
- Sequens
Penanda Occurrence:
- maxOccurs
- minOccurs
Penunjuk Group:
- Group name
- attributeGroup name
Penunjuk Order
Penunjuk Order digunakan untuk menentukan urutan elemen.
Penunjuk All
<all> penunjuk menentukan anak elemen boleh muncul dalam urutan bebas, dan setiap anak elemen mesti muncul sekali sahaja:
<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>
Keterangan:Ketika menggunakan penunjuk <all>, anda boleh menetapkan <minOccurs> kepada 0 atau 1, dan hanya boleh menetapkan penunjuk <maxOccurs> kepada 1 (akan dijelaskan <minOccurs> dan <maxOccurs> nanti).
Penunjuk Choice
<choice> penunjuk menentukan penampilan anak elemen atau penampilan anak elemen lain (atau salah satu):
<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>
Petikan:}Untuk mengatur penampilan anak elemen berangka bebas,atur <maxOccurs> (akan dijelaskan nanti) kepada unbounded (tidak terbatas).
Penunjuk Sequence
<sequence> menentukan urutan munculnya anak elemen:
<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>
Penunjuk Occurrence
Penunjuk Occurrence digunakan untuk menentukan frekuensi penampilan suatu elemen.
Keterangan:Untuk semua penunjuk "Order" dan "Group" (any, all, choice, sequence, nama group serta referensi group), nilai baku maxOccurs serta minOccurs adalah 1.
Penunjuk maxOccurs
<maxOccurs> penunjuk boleh menentukan jumlah maksimum penampilan suatu elemen:
<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 bahawa anak elemen "child_name" boleh muncul di dalam elemen "person" sekurang-kurangnya 1 kali (di mana nilai baku minOccurs adalah 1), dan maksimum 10 kali.
Penunjuk minOccurs
<minOccurs> penunjuk boleh menentukan jumlah minimum penampilan suatu elemen:
<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 bahawa anak elemen "child_name" boleh muncul di dalam elemen "person" sekurang-kurangnya 0 kali dan maksimum 10 kali.
Petikan:}Untuk membuat kemunculan sebarang elemen tanpa had, sila gunakan deklarasi maxOccurs="unbounded":
Contoh sebenar:
Fail XML bernama "Myfamily.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>Tony Smith</full_name> <child_name>Cecilie</child_name> </person> <person> <full_name>David Smith</full_name> <child_name>Jogn</child_name> <child_name>mike</child_name> <child_name>kyle</child_name> <child_name>mary</child_name> </person> <person> <full_name>Michael Smith</full_name> </person> </persons>
Fail XML ini mengandungi satu elemen utama bernama "persons". Dalam elemen utama ini, kami mendefinikan tiga elemen "person". Setiap elemen "person" mesti mengandungi elemen "full_name", dan ia boleh mengandungi sehingga 5 elemen "child_name".
Ini adalah fail schema "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 Group
Indikator Group digunakan untuk menetapkan elemen yang relevan dalam batch.
Kelompok elemen
Kelompok elemen ditetapkan melalui deklarasi group:
<xs:group name="组名称"> ... </xs:group>
Anda harus menetapkan elemen all, choice atau sequence di dalam deklarasi group. Contoh di bawah ini mendefinisikan group yang dinamakan "persongroup", yang menetapkan kelompok elemen yang harus muncul 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 menetapkan definisi group, anda dapat merujuk ke definisi lainnya:
<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>
Kumpulan atribut
Kumpulan atribut ditetapkan melalui deklarasi attributeGroup:
<xs:attributeGroup name="组名称"> ... </xs:attributeGroup>
Contoh di bawah ini mendefinisikan kumpulan atribut yang dinamakan "personattrgroup":
<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 selesai menetapkan kumpulan atribut, anda dapat merujuk ke definisi lainnya seperti ini:
<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>
- Halaman Sebelumnya Kandungan Kombinasi campuran XSD
- Halaman Berikutnya XSD <any>