Tutorial Skema ...login
Tutorial Skema XML
pengarang:php.cn  masa kemas kini:2022-04-20 14:13:02

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:element name="person">
<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:element name="person">
<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:element name="person">
<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:element name="person " >
<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:element name="person " >
<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":

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

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

<?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: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 name="groupname">
...
</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:group name="persongroup">
<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:group name="persongroup">
<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>

Contoh berikut mentakrifkan kumpulan bernama "personattrgroup" An kumpulan atribut:


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

Selepas anda menentukan kumpulan atribut, anda boleh Rujukan dalam takrif lain, 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>
<🎜><🎜>

Laman web PHP Cina