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

Penggantian elemen Skema XML


XSD Penggantian Elemen


Melalui Skema XML, satu elemen boleh menggantikan elemen lain.


Penggantian Elemen

Mari kita berikan contoh: pengguna kami berasal dari UK dan Norway. Kami ingin mempunyai keupayaan untuk pengguna memilih sama ada untuk menggunakan nama unsur bahasa Norway atau Inggeris dalam dokumen XML.

Untuk menyelesaikan masalah ini, kita boleh mentakrifkan Group penggantian dalam skema XML. Pertama, kami mengisytiharkan elemen utama, dan kemudian kami mengisytiharkan elemen sekunder, yang mengisytiharkan bahawa ia boleh menggantikan elemen utama.

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

Dalam contoh di atas, elemen "nama" ialah elemen utama, dan elemen "navn" boleh menggantikan elemen "nama".

Sila lihat serpihan skema XML:

<xs:element name="name" type="xs:string"/>
<xs : element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
<xs:jujukan>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name ="kunde" substitutionGroup="customer"/>

Dokumen XML yang sah kelihatan seperti ini (mengikut skema di atas):

<pelanggan>
<name>John Smith</name>
</customer>

atau sesuatu seperti ini:

<kunde>
<navn>John Smith</navn>
</kunde>


Halang penggantian elemen

Untuk mengelakkan elemen lain daripada menggantikan elemen Untuk elemen yang ditentukan, sila gunakan atribut blok:

<xs:element name="name" type="xs:string" block="substitution"/>

Sila lihat serpihan skema XML:

<xs:element name="name" type="xs:string" block="substitution"/>
< ;xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
<xs:jujukan>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
< ;xs:element name="kunde" substitutionGroup="customer"/>

Dokumen XML undang-undang hendaklah serupa dengan ini (mengikut skema di atas):

< ;pelanggan>
<name>John Smith</name>
</customer>

Tetapi dokumen berikut tidak lagi sah:

<kunde>
<navn>John Smith</navn>
</kunde>


Gunakan substitutionGroup

Jenis elemen yang boleh diganti mestilah sama dengan unsur utama Identik, atau berasal dari unsur primer. Jika jenis elemen yang boleh diganti adalah sama dengan jenis elemen utama, maka anda tidak perlu menentukan jenis elemen yang boleh diganti.

Sila ambil perhatian bahawa semua elemen dalam substitutionGroup (elemen utama dan elemen boleh diganti) mesti diisytiharkan sebagai elemen global, jika tidak, ia tidak akan berfungsi!


Apakah Elemen Global?

Elemen global merujuk kepada elemen anak langsung elemen "skema"! Elemen tempatan merujuk kepada elemen yang bersarang dalam elemen lain.

Laman web PHP Cina