Ein XML-Schema oder WSDL-Dokument kann andere XML-Schemata im Hauptdokument enthalten.
Dazu stehen die Möglichkeiten Schemaeinschluss, Schemaeinschluss mit Neudefinition
und Namespaceimport zur Verfügung.
Informationen zu diesem Vorgang
- Schemaeinschluss
- Sie können andere XML-Schemafragmente in das XML-Hauptschema oder in das WSDL-Dokument einschließen,
indem Sie das Element 'include' wie im folgenden Beispiel gezeigt verwenden: <xsd:include
schemaLocation="myTypes.xsd"/>
- Schemaeinschluss mit Neudefinition
- Die XML Schema-Spezifikation unterstützt eine Neudefinition von Definitionen, die von anderen
XML-Schemafragmenten in das aktuelle XML-Schema bzw. WSDL-Dokument eingeschlossen werden. Zum Beispiel
definiert das XML-Schemafragment myTypes.xsd einen komplexen Typ mit dem Namen
PurchaseOrderType. Ein weiteres XML-Schema mit dem Namen
PurchaseOrder.xsd schließt das XML-Schemafragment myTypes.xsd ein,
indem es mit dem Element 'redefine' den komplexen Typ mit dem Namen PurchaseOrderType neu
definiert.
- Sie können andere XML-Schemafragmente in das XML-Hauptschema oder in das WSDL-Dokument einschließen,
indem Sie das Element redefine wie im folgenden Beispiel gezeigt verwenden:
<xsd:redefine schemaLocation="myTypes.xsd"/>
- Namespaceimport
- Sie können einen Namespace (Namensbereich) mit dem Element import in das aktuelle Dokument einschließen,
wie im folgenden Beispiel gezeigt: <xs:import namespace="http://acme.com/ns/example
schemaLocation="mySchema.xsd" /> .
Wenn Sie ein XML-Hauptschema oder eine WSDL
in das Projekt über das Dialogfenster 'Dokument hinzufügen' hochladen oder hinzufügen, werden Sie aufgefordert, ein enthaltenes
XML-Schema bzw. enthaltene XML-Schemata im Projekt zu suchen, wie in der folgenden Prozedur demonstriert wird. Alle enthaltenen
XML-Schemata müssen sich vor dem XML-Hauptschema befinden oder das WSDL-Dokument wird auf der Registerkarte
Projekt angezeigt und kann im Projekt verwendet werden.
Vorgehensweise
- Laden Sie ein XML-Schema oder WSDL-Dokument in das aktuelle Projekt hoch. Wenn das XML-Schema oder WSDL-Dokument
weitere XML-Schemata enthält, werden alle enthaltenen XML-Schemata im Dialogfenster 'Enthaltene XML-Schemata hochladen'
wie in Abbildung 1 gezeigt aufgeführt.
Abbildung 1. Enthaltene XML-Schemata hochladen
Wenn das enthaltene XML-Schema automatisch lokalisiert wird,
wird das Häkchensymbol
neben dem XML-Schema im Dialogfenster 'Enthaltene XML-Schemata hochladen'
(wie beim XML-Schema commonTypes.xsd in obiger Abbildung) angezeigt. Wenn sich das XML-Hauptschema oder das WSDL-Dokument im lokalen Dateisystem befand, sucht Studio nach
den enthaltenen XML-Schemata im selben Verzeichnis und lokalisiert sie automatisch. Wenn Sie zum Beispiel
mySchema.xsd aus dem Verzeichnis C:\temp hochgeladen haben und
mySchema.xsd das XML-Schema commonTypes.xsd enthält, sucht Studio das
XML-Schema commonTypes.xsd automatisch im Verzeichnis C:\temp. Wenn das eingeschlossene XML-Schema nicht automatisch lokalisiert wird, wird das Warnsymbol
neben dem XML-Schema im Dialogfenster 'Enthaltene XML-Schemata hochladen'
(wie beim XML-Schema poTypes.xsd in Abbildung 1) angezeigt.
- Wiederholen Sie die folgenden Schritte, um alle nicht lokalisierten XML-Schemata zu lokalisieren:
- Wählen Sie das XML-Schema im Dialogfenster 'Enthaltene XML-Schemata hochladen' aus. Das XML-Schema
wird in der Tabelle hervorgehoben, wie in Abbildung 2 gezeigt.
Abbildung 2. XML-Schema hochladen
- Klicken Sie auf Suchen. Das Dialogfenster 'Ausgewähltes XML-Schema suchen' wird angezeigt.
- Geben Sie im Feld Position die Position des enthaltenen XML-Schemas
an einer externen Webadresse oder im Dateisystem an.
- Klicken Sie auf OK. Wenn das XML-Schema lokalisiert wurde, wird das Häckchensymbol
neben dem XML-Schema im Dialogfenster
Enthaltene XML-Schemata hochladen angezeigt.
- Standardmäßig ist das Kontrollkästchen Alle enthaltenen Dokumente im selben Projektknoten wie
das Hauptdokument speichern ausgewählt.
Wenn dieses Kontrollkästchen ausgewählt ist, werden die enthaltenen XML-Schemata und das XML-Hauptschema bzw.
das WSDL-Dokument in Form eines einzigen Projektknotens hochgeladen. Wenn dieses Kontrollkästchen abgewählt
ist, werden alle enthaltenen XML-Schemata und das XML-Hauptschema bzw. das WSDL-Dokument auf der
Registerkarte Projekt separat angezeigt. Neben jedem aufgelisteten XML-Schema wird ein Häkchensymbol angezeigt, um anzugeben, dass alle
enthaltenen XML-Schemata lokalisiert wurden.
- Klicken Sie auf OK.
Beispiel
Wenn das Kontrollkästchen
Alle enthaltenen Dokumente im selben Projektknoten wie das
Hauptdokument speichern ausgewählt ist, werden nur das XML-Hauptschema oder die WSDL
auf der Registerkarte
Projekt wie in
Abbildung 3
angezeigt.
Abbildung 3. Beispiel
Wenn das Kontrollkästchen ausgewählt ist, werden die
enthaltenen XML-Schemata zwar immer noch in das Projekt hochgeladen, werden aber nicht auf der Registerkarte
Projekt angezeigt. Daher können Sie diese XML-Schemata nicht wie in Enthaltene XML-Schemata hochladen beschrieben einzeln aktualisieren.
Wenn das
Kontrollkästchen
Alle enthaltenen Dokumente im selben Projektknoten wie das Hauptdokument
speichern abgewählt ist, werden das XML-Hauptschema oder die WSDL angezeigt und alle enthaltenen
XML-Schemata werden in das Projekt hochgeladen und auf der Registerkarte
Projekt wie
in
Abbildung 4 angezeigt.
Abbildung 4. Beispiel
Wenn das Kontrollkästchen abgewählt ist, können alle enthaltenen
XML-Schemata einzeln aktualisiert werden, wie in Enthaltene XML-Schemata hochladen
beschrieben.
Anmerkung: Laden Sie nach Möglichkeit das XML-Hauptschema oder die WSDL immer unter Auswahl dieses
Kontrollkästchens (als einen Projektknoten) hoch, um die Wahrscheinlichkeit potenzieller
Abhängigkeitskonflikte zwischen XML-Schemata zu verringern. Wenn Sie zum Beispiel die Hauptdatei
myTypes.xsd in das Projekt bei abgewähltem Kontrollkästchen
Alle enthaltenen
Dokumente im selben Projektknoten wie das Hauptdokument speichern hochladen, werden auch die
folgenden XSD-Dateien hochgeladen und auf der Registerkarte
Projekt angezeigt:
- commonTypes.xsd
- poTypes.xsd
Wenn Sie eine dritte XSD-Datei mit dem Namen
myTypesTwo.xsd erstellen und hochladen würden, die ebenfalls eingeschlossen wird,
und die Typen in der Datei commonTypes.xsd verwenden würden und anschließend die Namen der in der
Datei commonTypes.xsd definierten Typen ändern würden und in der Datei myTypes.xsd
außerhalb von Studio verwenden würden, und neue Versionen dieser Dateien hochladen würden, würde sich die
Datei myTypesTwo.xsd im Projekt immer noch auf die ursprünglichen Namen der Typen beziehen, sodass
sie jetzt ungültig wäre.