Hallo Leute,
ich habe ein Paar fragen zur xsd-Datei. Erstmal erkläre ich kurz worum es geht. Also, in unserem geometrie-prog speichern wir Zeichenelemente in xml-dateien ab: z.B. Name, Typ (Punkt, Linie, Kugel etc.), Farbe, Parameter usw... Mit der dazugehörigen xsd-Datei soll dann beim Parsen diese Datei auf wohlgeformtheiit geprüft werden. ok...
1). Man hat zwei Arten von Parametern: double und string (z.B Punkt hat x, y, z-Koordinaten, Linie hingegen punkt1 und punkt2), die man am Attribut "element" unterscheiden kann. Wie definiere ich ein Element so dass, wenn "element"=true, dann muss Element ein string sein, sonst double? Ich weiß dass ein Element zwei verschiedene Typen nicht haben darf. Kann mir da jemand weiter helfen?
... hierzu Codeausschnitt für eine Linie:
2). ... hoffentlich wird das nicht zu viel fürs erste Mal.
Farben enthalten zwei Subelemente: elementfarbe und textfarbe, die die gleiche Struktur haben und nur im Tagnamen untersceiden.
ich kann natürlich stur jedes ELement definieren... nämlich so
... würde gerne aber das elleganter lösen,weiß nur nicht wie.
ich habe ein Paar fragen zur xsd-Datei. Erstmal erkläre ich kurz worum es geht. Also, in unserem geometrie-prog speichern wir Zeichenelemente in xml-dateien ab: z.B. Name, Typ (Punkt, Linie, Kugel etc.), Farbe, Parameter usw... Mit der dazugehörigen xsd-Datei soll dann beim Parsen diese Datei auf wohlgeformtheiit geprüft werden. ok...
1). Man hat zwei Arten von Parametern: double und string (z.B Punkt hat x, y, z-Koordinaten, Linie hingegen punkt1 und punkt2), die man am Attribut "element" unterscheiden kann. Wie definiere ich ein Element so dass, wenn "element"=true, dann muss Element ein string sein, sonst double? Ich weiß dass ein Element zwei verschiedene Typen nicht haben darf. Kann mir da jemand weiter helfen?
... hierzu Codeausschnitt für eine Linie:
Code:
<?xml version="1.0" encoding="iso-8859-1" ?> ... <parameter> <p element="false">-5.510436302599336E-14</p> <p element="false">5.510436302599336E-14</p> <p element="true">PointFree_2</p> </parameter> ... ...
Farben enthalten zwei Subelemente: elementfarbe und textfarbe, die die gleiche Struktur haben und nur im Tagnamen untersceiden.
Code:
<?xml version="1.0" encoding="iso-8859-1" ?> ... <farbe> <elementfarbe> <r>0</r> <g>0</g> <b>255</b> <transparenz>255</transparenz> </elementfarbe> <textfarbe> <r>0</r> <g>0</g> <b>255</b> <transparenz>255</transparenz> </textfarbe> </farbe> ...
Code:
<xs:element name="farbe"> <xs:complexType> <xs:sequence> <xs:element name="elementfarbe"> <xs:complexType mixed="false"> <xs:sequence> <xs:element name="r" minOccurs="0" maxOccurs="255" type="xs:integer"/> <xs:element name="g" minOccurs="0" maxOccurs="255" type="xs:integer"/> <xs:element name="b" minOccurs="0" maxOccurs="255" type="xs:integer"/> <xs:element name="transparenz" minOccurs="0" maxOccurs="255" type="xs:integer"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="textfarbe"> <xs:complexType mixed="false"> <xs:sequence> <xs:element name="r" minOccurs="0" maxOccurs="255" type="xs:integer"/> <xs:element name="g" minOccurs="0" maxOccurs="255" type="xs:integer"/> <xs:element name="b" minOccurs="0" maxOccurs="255" type="xs:integer"/> <xs:element name="transparenz" minOccurs="0" maxOccurs="255" type="xs:integer"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element>
Comment