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 .
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:
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.
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.
Jawaban:
Perbedaan mendasar antara
include
danimport
adalah bahwa Anda harus menggunakanimport
untuk merujuk ke deklarasi atau definisi yang ada di ruang nama target yang berbeda dan Anda harus menggunakaninclude
untuk 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
sumber
Gunakan xsd: termasuk untuk membawa XSD dari namespace yang sama atau tidak.
Gunakan xsd: import untuk membawa XSD dari namespace yang berbeda .
sumber
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:
Tidak valid:
sumber
namespace
atribut<xs:import>
) selalu OK, dan dianggap sebagai pengidentifikasi (hanya teks, tidak ditafsirkan), sedangkanschemaLocation
(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.Saya tertarik dengan ini juga. Satu-satunya penjelasan yang saya temukan adalah yang
xsd:include
digunakan untuk inklusi intra-namespace, sedangkanxsd:import
untuk inklusi antar-namespace.sumber
Kutipan langsung dari MSDN: <xsd: import> Elemen, bagian Keterangan
sumber
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 ..
sumber