回答:
基本的な違いinclude
とは、import
あなたが使用しなければならないということであるimport
である宣言や定義を参照するために異なるターゲット名前空間とあなたが使用する必要がありますinclude
している(または予定)の宣言や定義を参照するために同じターゲット名前空間。
出典:https : //web.archive.org/web/20070804031046/http : //xsd.stylusstudio.com/2002Jun/post08016.htm
xsd:includeを使用して、同じ名前空間または同じ名前空間からXSDを取り込みます。
xsd:importを使用して、別の名前空間からXSDを取り込みます。
別の違いは、<import>
別の名前空間を参照してインポートできることです。<include>
意図したインクルードスキーマのURIを参照することによってのみインポートを許可します。これは、内部の名前空間のインポートとは明らかに異なる違いです。
たとえば、xmlスキーマバリデーターは、名前空間によってすべてのスキーマの場所をすでに知っている場合があります。特に、URIによるXML名前空間の参照は、classpath://が何も意味しない場合、http://が許可されていない場合、または一部のURIがそれと同じことを指していない場合に、異なるシステムで問題になる可能性があることを考慮します。別のシステム。
有効なインポートと無効なインポートのコードサンプルには以下が含まれます。
有効:
<xsd:import namespace="some/name/space"/>
<xsd:import schemaLocation="classpath://mine.xsd"/>
<xsd:include schemaLocation="classpath://mine.xsd"/>
無効:
<xsd:include namespace="some/name/space"/>
namespace
<xs:import>
schemaLocation
classpath:
MSDNからの直接の引用:<xsd:import>要素、備考セクション
差含む要素およびインポート要素は、あるインポート要素は、異なるターゲット名前空間を持つスキーマ文書からスキーマコンポーネントへの参照を可能にし、含まれる要素は、同じターゲット名前空間(または全く指定されたターゲット名前空間を持つ他のスキーマ文書からスキーマコンポーネントを追加します)含むスキーマに。つまり、インポート要素を使用すると、任意のスキーマのスキーマコンポーネントを使用できます。含める要素はあなたが含むスキーマに含まれたスキーマのすべてのコンポーネントを追加することができます。