Altova XMLSpy 2024 Professional Edition

Offene Content Models sind neu in XSD 1.1. Sie werden für complexTypes deklariert. Mit Hilfe von offenen Content Models kann jedes beliebige Element (d.h. ein im Content Model des complexType nicht definiertes Element) beliebig oft entweder (i) zwischen im Content Model definierten Elementen oder (ii) nach im Content Model definierten Elementen vorkommen.

 

Das Element openContent ist ein Child des complexType und steht einmal vor dem Content Model des complexType (siehe Abbildung unten).

 

Modus

Das Element openContent hat ein obligatorisches mode Attribut, das die Werte interleave, suffix oder none (siehe Abbildung unten) haben kann. Der Standardwert ist interleave.

OpenContentModel01

Diese Werte haben die folgende Bedeutung:

 

Wenn als Modus mode="interleave" oder mode="suffix" eingestellt ist, so muss Wildcard Elementinhalt (xs:any) ohne eine Einschränkung durch minimum oder maximum occurrence vorhanden sein. Daraus folgt, dass beliebig viele nicht definierte Elemente (Wildcards) zulässig sind.

Wenn der Modus interleave ist, können vor oder nach einzelnen definierten Elementen im Content Model beliebig viele nicht definierte Elemente stehen. Sie stehen zwischen definierten Elementen.

Wenn der Modus suffix ist, können hinter dem letzten definierten Element des Content Model beliebig viele nicht definierte Elemente stehen.

Wenn der Modus none ist, dürfen keine nicht definierten Elemente (xs:any Child) vorkommen; das Content Model ist nicht offen. Mit Hilfe des Werts none wird das Element defaultOpenContent, das für das gesamte Schema gilt, außer Kraft gesetzt.

 

Offener Content wird in der Content Model-Ansicht (über den Kontextmenübefehl Child hinzufügen) als Child des complexType hinzugefügt. Definieren Sie den Modus entweder durch Doppelklick in das openContent Kästchen im Diagramm (siehe Abbildung oben) und Auswahl eines Werts (interleave, suffix oder none) oder durch Auswahl eines Werts in der Eingabehilfe "Details".

 

Wildcard (xs:any) Eigenschaften

Die Wildcard-Eigenschaften werden in der Details-Eingabehilfe der Wildcard definiert. Wählen Sie die Wildcard im Diagramm aus und geben Sie die Eigenschaftswerte in die Eingabehilfe "Details" ein.

 

Default Open Content

Das Element defaultOpenContent ist neu in XSD 1.1 und definiert, dass ein oder mehrere nicht definierte Elemente zu jedem beliebigen complexTyp mit "mixed" oder "element-only" Content hinzugefügt werden können. Es ähnelt dem Element openContent (welches ebenfalls neu in XSD 1.1 ist), mit dem wichtigen Unterschied, dass das Element openContent für einen einzigen complexType gilt, während das Element defaultOpenContent auf alle complexTypes im Schema angewendet wird.

 

Das Element defaultOpenContent ist eine globale Komponente und kommt nur einmal im Dokument vor (siehe Abbildung unten) und zwar nach Includes, Imports, Redefines und Overrides und vor der Definition von Komponenten. Es hat ein mode Attribut, das entweder den Wert interleave oder suffix haben kann. Der Standardwert ist interleave.

SchOviewDefOpenContent

Das Element defaultOpenContent hat ein Content Model, das Sie in der Content Model-Ansicht  auf dieselbe Art wie das openContent-Element bearbeiten können (siehe oben). Sobald das Element defaultOpenContent deklariert worden ist, wird es automatisch auf alle complexTypes im Schema angewendet und in ihren Content Models angezeigt. In der Abbildung unten sehen Sie, dass das Element defaultOpenContent automatisch auf die complexTypes OfficeType und Desc angewendet wurde.

ContModViewDefOpenContent

Um das Element defaultOpenContent für einen bestimmten complexType außer Kraft zu setzen, fügen Sie ein openContent Child-Element zu diesem complexType hinzu. In der Abbildung unten wurde zum Element Desc mit dem Element defaultOpenContent (siehe Abbildung oben) ein openContent Element hinzugefügt, das das Element defaultOpenContent außer Kraft setzt.

ContModViewDefOpenContent02

 

© 2017-2023 Altova GmbH