Xsd: include ve xsd: import arasındaki fark nedir?


Yanıtlar:


206

Arasındaki temel fark includeve importkullanmak gerektiğidir importbir olan açıklama veya tanımları başvurmak için farklı hedef ad ve kullanmak zorundadır includeiçinde açıklama veya (veya olacak) tanımları başvurmak için aynı hedef ad.

Kaynak: https://web.archive.org/web/20070804031046/http://xsd.stylusstudio.com/2002Hun/post08016.htm



@Pops'ın bahsettiği stylusstudio yayını burada: web.archive.org/web/20140831005739/http://xsd.stylusstudio.com/…
tony19 28:16


19

Başka bir fark, <import>başka bir ad alanına başvurarak içe aktarmaya izin vermesidir. <include>yalnızca amaçlanan şema URI'sine başvurarak içe aktarmaya izin verir. Bu kesinlikle intra-intra ad alanı ithalatından başka bir fark.

Örneğin, xml şema doğrulayıcısı, tüm şemaların konumlarını ad alanına göre zaten biliyor olabilir . Özellikle URI tarafından XML ad alanlarına atıfta bulunmanın classpath: // 'nin hiçbir şey ifade etmediği veya http: //' nin izin verilmediği veya bazı URI'ların üzerinde olduğu şeyi işaret etmediği farklı sistemlerde sorunlu olabileceği düşünüldüğünde başka bir sistem.

Geçerli ve geçersiz ithalatların kod örneğini içerir ve şunları içerir:

Geçerli:

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

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

Geçersiz:

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

XML ad alanlarına URI yerine konum URL'lerine atıfta bulunmaktan bahsettiğinizi düşünüyorum . Ad alanı URI'ları (yani namespaceoznıtelığı <xs:import>) Tamam hep olduğunu ve bir olarak kabul tanımlayıcı ederken, (yorumlanır sadece metin) schemaLocation(URL olmayan bir URI) tipik çözülecek, işlenmesi gerekir. Ve aslında, Java'ya özgü classpath:URL şeması hiçbir şey ifade etmeyebilir. Ancak bu düzgün seçimin yanı sıra, bu değerli bir yorum, teşekkürler.
ddevienne

7

Ben de bununla ilgileniyorum. Bulduğum tek açıklama xsd:include, adlar xsd:importarası dahil etme için kullanılırken, adlar arası dahil etme için kullanılıyor.


0

MSDN'den doğrudan alıntı : <xsd: import> Element, Notlar bölümü

Arasındaki fark bulunmaktadır elemanı ve ithalat elemanı olmasıdır ithalat elemanı farklı hedef ad ile şema belgelerden şema bileşenleri başvurular izin verir ve alır eleman aynı hedef ad (ya da hiç belirtilen hedef ad olan diğer şema belgelerden şema bileşenleri ekler ) içeren şemaya. Kısacası, içe aktarma öğesi herhangi bir şemadaki şema bileşenlerini kullanmanızı sağlar; dahil öğesi içeren şemaya dahil bir şema tüm bileşenlerini eklemenizi sağlar.


-3

Use xsd: include, harici bir şema belgesinin tüm bildirimlerini ve tanımlarını geçerli şemaya getirir.

Farklı bir ad alanından bir XSD getirmek için xsd: import kullanın ve mevcut şema belgelerini genişleterek yeni bir şema oluşturmak için kullanılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.