xsd element mit restriction content und attribut

Topsen

Mitglied
Hallo zusammen,

ich habe folgendes Probleme:
Ich möchte so ein Konstrukt gegen .xsd validieren:

<Maske>YES|NO</Maske set="irgendwas">

Mein XSD sieht so aus:
<xs:element name="Maske" type="MaskDef" />

<xs:compleytype="MaskDef">
<xs:restriction base="xs:string">
<xs:enumeration value="YES"/>
<xs:enumeration value="NO"/>
</xs:restriction>
<xs:attribute name="namespace" type="..." use="optional"/>
</xs:complexType>

Problem:
So darf ich es nicht stellen. Es wird mir das attribut tag angemeckert.
Frage:
wie muss so etwas aussehen?

Die Restriction mit xs:string muss drinne bleiben, überhaupt darf kein weiteres tag hinzugefügt oder attribut, etc. Ich brauche es genau so wie oben im xml definiert.

Danke euch schonmal für hilfreiche Tipps,

Grüße,

Topsen
 
Hallo,

was ist denn die Fehlermeldung?

Ist es absicht, dass oben dein Attribut im schließenden Element steht? Das muss nämlich im öffnenden Element stehen.

MFG

Sascha
 
Die Fehlermeldung ist, das es nicht erlaubst ist eine Restriction und dann ein Attribut in einem complex Type anzuordnen.
Und wieso im öffnenden Element. Das Element ist oben definiert und der Typ dieses Elementes ist dort drunter definiert.
Und eben um diesen Typ geht es.
Es soll als Inhalt einer Restriction gehorcht werden und zusätztlich soll das Element ein Attribut haben.

Oder soll ichs so machen? :

<xs:element name="Maske" type="MaskDef">
<xs:complexType>
<xs:attribute name="test"/>
</xs:complexType>
</xs:element>

<xs:simpleType name="MaskDef">
<xs:restriction base="xs:string">
<xs:enumeration value="YES"/>
<xs:enumeration value="NO"/>
</xs:restriction>
</xs:simpleType>

?

Das geht aber auch nicht, da sagt er: the type attribute cannot be present with either simple type or compleytype.
 
Zuletzt bearbeitet:
Schau mal hier.

XML:
<xs:simpleType name="ynstring">
		<xs:restriction base="xs:string">
			<xs:enumeration value="YES" />
			<xs:enumeration value="NO" />

		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="MaskDef">
		<xs:simpleContent>
			<xs:extension base="ynstring">
				<xs:attribute name="namespace" type="xs:string"
					use="optional" />

			</xs:extension>

		</xs:simpleContent>
	</xs:complexType>

MFG

Sascha
 
Zuletzt bearbeitet von einem Moderator:
Zurück