web-dev-qa-db-ja.com

1つのXMLスキーマ(XSD)に別のXMLスキーマを含めることはできますか?

私は現在2つのXSDスキームを使用しており、1つは他の「ライト」バージョンです。現在、「完全」スキーマで繰り返される「軽量」バージョンのすべてを持っていますが、変更を加える必要があるときにこれは面倒になり、とにかくDRY原則に反します、そのため、別のスキーマをスキーマに含めるのに役立つ要素があるかどうか疑問に思っていたので、「完全な」スキーマを「軽い」スキーマから継承して、メンテナンスのハードルを減らすことができます。

40
Robert Gould

これには2つの方法があります。

<xsd:include schemaLocation="pathToFile" />は、同じ名前空間のファイルを含めるために使用する必要があります。

<xsd:import namespace="namespace" schemaLocation="pathToFile" />は、別の名前空間のインクルードファイルに使用する必要があります。通常は、インポートされたスキーマのtargetNamespaceとして指定された名前空間を指定します。

57
jdmichal

<include>要素を使用します。例 here を参照してください。

5
David Norman