Meinews.de  


Zurück   Meinews.de > Forum > Newsgroups de.comp.* Forum > Newsgroup de.comp.text.xml
Registrieren FAQ Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Newsgroup de.comp.text.xml XML, Extensible Markup Language.

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10-19-2009, 09:36 AM
Wanja Gayk
 
Beiträge: n/a
Standard Einschränkung von Attribut in Subtyp


Hallo.

Folgendes Problem:

ich habe ein Basiselement B
zwei Subtypen X und Y

Das Basis-Element B definiert, dass es ein Attribut "align" geben soll.
Dieses "align"-Attribut ist von einem Typ, der eine Aufzählung ist.

Kurz skizziert:

<xs:complexType name="B" abstract="true">
<xs:complexContent>
<xs:attribute name="align" type="alignmentType" />
</xs:complexContent>
</xs:complexType>

<xs:complexType name="X">
<xs:complexContent>
<xs:extension base="B">
<xs:attribute name="foo" type="xs:integer"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="Y">
<xs:complexContent>
<xs:extension base="B">
<xs:attribute name="bar" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>


<xs:simpleType name="alignmentType">
<xs:restriction base="xs:string">
<xs:enumeration value="TOP"/>
<xs:enumeration value="RIGHT"/>
<xs:enumeration value="BOTTOM"/>
<xs:enumeration value="LEFT"/>
</xs:restriction>
</xs:simpleType>

Soweit so gut.

Nun möchte ich aber, dass nur bei Typ Y die Auswahl für "align" auf "LEFT"
und "RIGHT" begrenzt wird und stehe etwas auf dem Schlauch.

(Bitte keine Diskussion darum, ob man nun "align" in "hAlign" und "vAlign"
trennen sollte, ich wollte das Problem lediglich in ein lesbares Beispiel
bringen).

Gruß,
-Wanja-



--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/
Mit Zitat antworten
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Meinews.de
Standard Sponsored Links

  #2  
Alt 10-19-2009, 10:50 AM
Wanja Gayk
 
Beiträge: n/a
Standard Re: Einschränkung von Attribut in Subtyp

Am 19.10.2009, 10:36 Uhr, schrieb Wanja Gayk <brixomatic*yahoo.com>:

Hallo:

> Kurz skizziert:
>
> <xs:complexType name="B" abstract="true">
> <xs:complexContent>
> <xs:attribute name="align" type="alignmentType" />
> </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="X">
> <xs:complexContent>
> <xs:extension base="B">
> <xs:attribute name="foo" type="xs:integer"/>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="Y">
> <xs:complexContent>
> <xs:extension base="B">
> <xs:attribute name="bar" type="xs:string"/>
> </xs:extension>
> </xs:complexContent>
> </xs:complexType>
>
>
> <xs:simpleType name="alignmentType">
> <xs:restriction base="xs:string">
> <xs:enumeration value="TOP"/>
> <xs:enumeration value="RIGHT"/>
> <xs:enumeration value="BOTTOM"/>
> <xs:enumeration value="LEFT"/>
> </xs:restriction>
> </xs:simpleType>
>

[..]
> Nun möchte ich aber, dass nur bei Typ Y die Auswahl für "align" auf
> "LEFT" und "RIGHT" begrenzt wird und stehe etwas auf dem Schlauch.

[..]

Ich habe übrigens eine Lösung gefunden, die ich aber nicht wirklich
zufriedenstellend finde:

<xs:complexType name="intermediateY" abstract="true">
<xs:complexContent>
<xs:extension base="B">
<xs:attribute name="bar" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="Y">
<xs:complexContent>
<xs:restriction Base base="intermediateY">
<xs:attribute name="align"/>
<xs:simpleType>
<xs:restriction base="alignmentType">
<xs:enumeration value="LEFT" />
<xs:enumeration value="RIGHT" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:restriction>
</xs:complexContent>
</xs:complexType>

Aber einen Zwischentyp einzusetzen finde ich nicht wirklich gelungen,
zumal es die ganze Sache unnötig komplex macht.
Wenn also jemand eine bessere Lösung hat: immer her damit.

Gruß,
-Wanja-

--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/
Mit Zitat antworten
 
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen
Es ist dir nicht erlaubt, auf Beiträge zu antworten
Es ist dir nicht erlaubt, Anhänge anzufügen
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten

vB Code ist An
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus


Alle Zeitangaben in WEZ. Es ist jetzt 04:28 AM Uhr.





Powered by: vBulletin Version 3.6.7 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Forum SEO by Zoints