wake-up-neo.com

Was ist der Unterschied zwischen xsd: include und xsd: import?

Was ist der Unterschied zwischen xsd:include und xsd:import? Wann würden Sie eins anstelle des anderen verwenden, und wann könnte es egal sein?

182
Pops

Der grundlegende Unterschied zwischen include und import besteht darin, dass Sie import verwenden müssen, um auf Deklarationen oder Definitionen zu verweisen, die sich in einem unterschiedlichen Ziel-Namespace und Sie müssen include verwenden, um auf Deklarationen oder Definitionen zu verweisen, die sich in demselben befinden Zielnamensraum.

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

189

Verwenden Sie xsd: include, um eine XSD von same einzubringen oder kein Namespace.

Verwenden Sie xsd: import, um eine XSD aus einer different zu importieren Namespace.

48
kjhughes

Ein weiterer Unterschied ist, dass <import> ermöglicht das Importieren durch Verweisen auf einen anderen Namespace. <include> ermöglicht den Import nur unter Bezugnahme auf einen URI des beabsichtigten Include-Schemas. Das ist definitiv ein anderer Unterschied als der Import von Intra-Namespaces.

Beispielsweise kennt der XML-Schema-Validator möglicherweise bereits die Speicherorte aller Schemas nach Namespace. Insbesondere wenn man bedenkt, dass der Verweis auf XML-Namespaces durch URI auf verschiedenen Systemen problematisch sein kann, auf denen classpath: // nichts bedeutet oder http: // nicht zulässig ist oder einige URIs nicht auf dasselbe verweisen wie auf ein anderes System.

Codebeispiel für gültige und ungültige Importe und enthält:

Gültig:

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

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

Ungültig:

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

Das interessiert mich auch. Die einzige Erklärung, die ich gefunden habe, ist, dass xsd:include wird für Intra-Namespace-Einschlüsse verwendet, während xsd:import steht für die Einbindung zwischen Namespaces.

7
Matt Luongo

Direktes Zitat aus MSDN: <xsd: import> -Element, Abschnitt "Bemerkungen"

Der Unterschied zwischen dem Element include und dem Element import besteht darin, dass das Element import Verweise auf Schemakomponenten aus Schemadokumenten mit zulässt Unterschiedliche Zielnamespaces und das Element include fügen die Schemakomponenten aus anderen Schemadokumenten, die denselben Zielnamespace (oder keinen angegebenen Zielnamespace) aufweisen, zum enthaltenen Schema hinzu. Kurz gesagt, mit dem Element import können Sie Schemakomponenten aus jedem Schema verwenden. Mit dem Element include können Sie alle Komponenten eines eingeschlossenen Schemas zum enthaltenen Schema hinzufügen.

0
Mrinmoy Sarkar