![]() |
|
|
|
#1 |
|
Hi, Guys!
Have a question about xsd restriction: I am having an element "state" and it could be US state (Which is easy) or Canadian postal code which is easy too (both rules are working separately), but I am having difficulties combining this two rules together. Here is what I have tried: <xsd:simpleType name="StateType"> <xsd:union> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd </xsd:restriction> </xsd:simpleType> <xsd:simpleType> <xsd:restriction base="b:usState"> </xsd:restriction> </xsd:simpleType> </xsd:union> </xsd:simpleType> <xsd:simpleType name="usState"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="AL"/> <!—and all of other states up to: ŕ <xsd:enumeration value="WY"/> </xsd:restriction> </xsd:simpleType> this gives enumeration error if I use Canadian postal code. Please, help! What am I doing wrong? Thanks in advance! Ed Slen |
|
|
|
|
#2 |
|
Posts: n/a
|
"Ed Slen" <> wrote in message news: om...
> <xsd:simpleType name="StateType"> : : > <xsd:restriction base="b:usState"> : : > <xsd:simpleType name="usState"> : : > this gives enumeration error if I use Canadian postal code. This works for me, assuming the prefix b is defined as your targetNamespace. Your XML Schema snippet did not include an element declaration, I'd just check for what might be an obvious snag: <xsd:element name="location" type="b:StateType" /> <!-- OK --> <xsd:element name="location" type="b:usState" /> <!-- Not the Union type: Bug --> You would get an enumeration error if the element where the Canadian postal code appears is making reference to the b:usState type instead of the union type, b:StateType. Derek Harmon |
|