Hallo zusammen,
ich möchte einen Datentyp in Schema definieren, aber das ganze ist etwas Tricky (denke ich zumindest).
Und zwar zuerst der obere Datentyp:
In diesem befindet sich der Datentyp "FirmenIdentType".
Und jetzt das Problem. Es soll möglich sein die FirmenIdent als sogen. GLN-Nummer oder als D-U-N-S id zuzulassen.
In meinem Beispiel ist es jetzt nur möglich eine GLN-Nummer einzugeben. Den Zeichenstring 'GLN' ein Whitespace und eine 13-Stellige Ziffer.
Aber was kann man machen, um die Möglichkeit einzubauen, daß man auch D-U-N-S id (9 Ziffern und, naja ist ja egal) zulässt? Also einen anderen Pattern einbauen?
Oder zwei Untertypen definieren. Dann bleibt immer noch die Frage, wie man in FirmenIdentType darstellt, daß man entweder den einen oder den anderen Untertyp einstellt. Also optional das eine oder andere Format.
Wie macht man da am besten?
Gruss Christian
ich möchte einen Datentyp in Schema definieren, aber das ganze ist etwas Tricky (denke ich zumindest).
Und zwar zuerst der obere Datentyp:
Code:
<xsd:complexType name="FirmaType">
<xsd:sequence>
<xsd:element name="Firmenname" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="FirmenIdent" type="FirmenIdentType"/>
</xsd:sequence>
<xsd:complexType>
Code:
<xsd:simpleType name="FirmenIdentType">
<xsd:restriction base="token">
<pattern value='GLN = \d{13}'/>
</xsd:restriction>
<xsd:simpleType>
Und jetzt das Problem. Es soll möglich sein die FirmenIdent als sogen. GLN-Nummer oder als D-U-N-S id zuzulassen.
In meinem Beispiel ist es jetzt nur möglich eine GLN-Nummer einzugeben. Den Zeichenstring 'GLN' ein Whitespace und eine 13-Stellige Ziffer.
Aber was kann man machen, um die Möglichkeit einzubauen, daß man auch D-U-N-S id (9 Ziffern und, naja ist ja egal) zulässt? Also einen anderen Pattern einbauen?
Oder zwei Untertypen definieren. Dann bleibt immer noch die Frage, wie man in FirmenIdentType darstellt, daß man entweder den einen oder den anderen Untertyp einstellt. Also optional das eine oder andere Format.
Wie macht man da am besten?
Gruss Christian