Apa perbedaan antara xsd: include dan xsd: import?


Jawaban:


205

Perbedaan mendasar antara includedan importadalah bahwa Anda harus menggunakan importuntuk merujuk ke deklarasi atau definisi yang ada di ruang nama target yang berbeda dan Anda harus menggunakan includeuntuk merujuk ke deklarasi atau definisi yang (atau akan) di ruang nama target yang sama .

Sumber: https://web.archive.org/web/20070804031046/http://xsd.stylusstudio.com/2002Jun/post08016.htm



Posting stylusstudio yang merujuk @Pops ada di sini: web.archive.org/web/20140831005739/http://xsd.stylusstudio.com/…
tony19


19

Perbedaan lain adalah yang <import>memungkinkan mengimpor dengan merujuk ke namespace lain. <include>hanya mengizinkan impor dengan merujuk ke URI dari skema penyertaan yang dimaksudkan. Itu jelas perbedaan lain dari pengimporan namespace antar intra.

Misalnya, validator skema xml mungkin sudah mengetahui lokasi semua skema berdasarkan namespace . Terutama mengingat bahwa merujuk ruang nama XML oleh URI mungkin bermasalah pada sistem yang berbeda di mana classpath: // tidak berarti apa-apa, atau di mana http: // tidak diizinkan, atau di mana beberapa URI tidak menunjuk ke hal yang sama seperti pada sistem lain.

Contoh kode impor yang valid dan tidak valid dan mencakup:

Sah:

<xsd:import namespace="some/name/space"/>
<xsd:import schemaLocation="classpath://mine.xsd"/>

<xsd:include schemaLocation="classpath://mine.xsd"/>

Tidak valid:

<xsd:include namespace="some/name/space"/>

Saya pikir maksud Anda merujuk ruang nama XML dengan URL lokasi daripada oleh URI . Namespace URI (yaitu namespaceatribut <xs:import>) selalu OK, dan dianggap sebagai pengidentifikasi (hanya teks, tidak ditafsirkan), sedangkan schemaLocation(URL bukan URI) biasanya harus diproses, untuk diselesaikan. Dan memang, skemaclasspath: URL khusus Java mungkin tidak ada artinya. Tapi selain pilihan yang rapi ini, ini adalah komentar yang berharga, terima kasih.
ddevienne

7

Saya tertarik dengan ini juga. Satu-satunya penjelasan yang saya temukan adalah yang xsd:includedigunakan untuk inklusi intra-namespace, sedangkan xsd:importuntuk inklusi antar-namespace.


0

Kutipan langsung dari MSDN: <xsd: import> Elemen, bagian Keterangan

Perbedaan antara elemen sertakan dan elemen impor adalah bahwa elemen impor memungkinkan referensi ke komponen skema dari dokumen skema dengan ruang nama target yang berbeda dan elemen include menambahkan komponen skema dari dokumen skema lain yang memiliki namespace target yang sama (atau tidak ada namespace target yang ditentukan ) ke skema yang mengandung. Singkatnya, elemen impor memungkinkan Anda untuk menggunakan komponen skema dari skema apa pun; yang meliputi unsur memungkinkan Anda untuk menambahkan semua komponen skema dimasukkan untuk skema mengandung.


-3

Gunakan xsd: include membawa semua deklarasi dan definisi dokumen skema eksternal ke dalam skema saat ini.

Gunakan xsd: import untuk membawa XSD dari namespace yang berbeda dan digunakan untuk membangun skema baru dengan memperluas dokumen skema yang ada ..

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.