<xdr:ElementType>-Element
Definiert einen Elementtyp für die Verwendung im Schema-Element des XDR-Schemas (XML-Data Reduced).
<ElementType
content="{empty | textOnly | eltOnly | mixed}"
dt:type="datatype"
model="{open | closed}"
name="idref"
order="{one | seq | many}">
Attribute
content
Ein Indikator, der angibt, ob der Inhalt leer sein muss oder Text und/oder Elemente enthalten darf. Diesem Attribut können die folgenden Werte zugewiesen werden. Der Standardwert für das content-Attribut ist mixed. Wenn das content-Attribut auf mixed festgelegt wurde, ist für das order-Attribut der Wert many erforderlich.empty
Das Element kann keinen Inhalt enthalten.
textOnly
Das Element kann lediglich Text und keine Elemente enthalten. Wenn das model-Attribut auf open festgelegt ist, kann das Element Text und andere unbenannte Elemente enthalten.
eltOnly
Das Element kann nur die angegebenen Elemente enthalten. Es kann keinen freien Text enthalten.
mixed
Das Element kann eine Kombination aus benannten Elementen und Text enthalten. Der Standardwert ist mixed. Wenn der Wert des content-Attributs mixed ist, lösen das minOccurs-Attribut und das maxOccurs-Attribut keinen Validierungsfehler aus, wenn die Anzahl der untergeordneten Elemente außerhalb der angegebenen Grenzwerte liegt.
![]() |
---|
Elemente mit content="empty" und model="open" sind unzulässig. |
Beispiel
Beschreibung
Im folgenden Beispiel wird die Verwendung des content-Attributs mit verschiedenen Werten veranschaulicht.
Legacy-Codebeispiel
Im folgenden Beispiel wird das content-Attribut für eine äquivalente DTD (Document Type Definition) dargestellt.
- dt:type
Der Datentyp des Elements. Die gültigen Datentypen sind in der Datentypreferenz für das XDR-Schema definiert.
model
Ein Indikator, der angibt, ob der Inhalt nur die im Inhaltsmodell definierten Daten enthalten darf. Der Standardwert ist open.<ElementType name="x" model="open"/>
Wenn das Modell als open definiert ist, kann das Element zusätzliche Elemente oder Attribute enthalten, die nicht explizit im Inhaltsmodell deklariert sind. Diese zusätzlichen Tags können aus demselben oder aus einem anderen Namespace stammen. Wenn sie aus demselben Namespace stammen, muss eine entsprechende ElementType-Definition bzw. AttributeType-Definition dafür im Schema vorhanden sein.
Wenn das Modell als closed definiert ist, kann das Element keine zusätzlichen Elemente und gemischten Inhalt enthalten, die nicht im Inhaltsmodell angegeben sind. Die DTD verwendet ein closed-Modell.
name
Der Name des Elements. Dieses Attribut ist erforderlich. Wenn dieser Elementtyp als gültiges untergeordnetes Element eines anderen Elementtyps deklariert ist, wird dieser Name innerhalb eines element-Elements angegeben.<ElementType name="x"> </ElementType>
Das DTD-Äquivalent lautet wie folgt.
<!ELEMENT x EMPTY>
order
Ein Indikator, der angibt, wie die Elemente dargestellt werden müssen. Dieser Indikator kann die folgenden Werte aufweisen.one
Lässt lediglich ein Element aus einer Menge von Elementen zu. Damit ein Dokument bei der Angabe des one-Attributs ordnungsgemäß validiert wird, muss das model-Attribut für den ElementType auf closed festgelegt sein.
seq
Erfordert, dass die Elemente in der angegebenen Reihenfolge aufgeführt werden.
many
Lässt zu, dass die Elemente in beliebiger Reihenfolge aufgeführt (oder nicht aufgeführt) werden. Wenn Sie many für das order-Attribut angeben, sind maxOccurs-Werte während der Validierung nicht mehr relevant.
Der seq-Wert ist erforderlich, um gültige Folgen anzugeben. Beispielsweise kann damit angegeben werden, dass eine bestimmte Folge, z. B.
x1,y1
oderx2,y2
, gültig und alle anderen möglichen Kombinationen ungültig sind. Der seq-Wert erfüllt dieselbe Rolle wie Klammern in einer DTD. Der Standardwert ist seq.Im folgenden Beispiel wird die one-Einstellung veranschaulicht. Der Wert des model-Attributs muss closed sein, wenn one für das order-Attribut angegeben ist.
Im folgenden Beispiel wird die seq-Einstellung veranschaulicht.
Im folgenden Beispiel wird die many-Einstellung veranschaulicht.
Die many-Einstellung des order-Attributs führt dazu, dass das minOccurs-Attribut und das maxOccurs-Attribut während der Validierung irrelevant werden. Verwenden Sie anstelle der many-Einstellung für das order-Attribut in Verbindung mit minOccurs und maxOccurs die seq-Einstellung. Betrachten Sie z. B. das folgende Schema, in dem
order="seq"
festgelegt ist.
Wenn das folgende XML-Dokument anhand des obigen Schemas validiert wird, tritt ein Fehler bei der Validierung auf, da die Anzahl von Publisher-Elementen den angegebenen maxOccurs-Wert von 1 überschreitet. Wenn jedoch der order-Wert auf many festgelegt wird, ist die Validierung fälschlicherweise erfolgreich, da die maxOccurs="1"
-Einstellung ignoriert wird.
Elementinformationen
Anzahl der Vorkommen |
Unbegrenzt |
Übergeordnete Elemente |
|
Untergeordnete Elemente |
attribute, AttributeType, datatype, description, element, group |
Elementeigenschaften
TAG | Erklärung |
---|---|
Name="idref" |
Das ElementType-Element und das AttributeType-Element müssen benannt sein. |
Model="open" |
Elemente oder gemischter Inhalt, die nicht im Inhaltsmodell angegeben sind, sind in diesem Element zulässig. Um eine Unterklasse einer bestimmten Definition zu erstellen, muss diese Einstellung open sein (wenn künftig die Vererbung implementiert wird). |
Model="closed" |
Elemente oder gemischter Inhalt, die nicht im Inhaltsmodell angegeben sind, sind in diesem Element nicht zulässig. |
content="empty" |
Das Element darf nichts enthalten. |
content="textOnly" |
Das Element darf lediglich Text und keine Elemente enthalten. Bei model="open" darf das Element immer noch Text und andere unbenannte Elemente enthalten. |
* content="mixed" |
Das Element darf eine Kombination aus benannten Elementen und darunter gemischtem Text enthalten. Bei model="open" darf das Element immer noch Text und andere unbenannte Elemente enthalten. Impliziert order='many' und maxOccurs="*"! |
order='one' |
Lässt lediglich ein Element aus einer Menge von Elementen zu. |
* order='seq' |
Gibt an, dass die Elemente in der aufgelisteten Abfolge aufgeführt werden müssen. Dies ähnelt der Standardeinstellung für eine Liste von Elementen, ist jedoch für das Zusammenstellen von Abfolgen erforderlich, wie in dem Beispiel dargestellt, in dem entweder |
order='many' |
Die Elemente dürfen in beliebiger Reihenfolge aufgeführt (oder nicht aufgeführt) werden. |
dt:type=datatype |
Gibt an, dass das Element eine ganze Zahl enthalten muss. Eine Liste primitiver Datentypen finden Sie in der Datentypenreferenz zum XDR-Schema. |
Hinweise
Der Begriff "Elementtyp" bezieht sich auf den Elementtyp, für den sämtliche Elemente mit einem gemeinsamen Namen Instanzen darstellen. Elementtypen werden in Schemata deklariert. Elemente müssen in Dokumenten aufgeführt werden. Elementtypen werden mit dem ElementType-Elementtyp deklariert.