[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Another Schema Question
XMLSpy is clearly wrong in this case. You could try only have one sequence (i.e. get rid of the choice) and use defaults for 'min' and 'sec': <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="lat" type="LatitudeType"/> <xs:complexType name="LatitudeType"> <xs:sequence> <xs:element name="deg"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0"/> <xs:maxExclusive value="90"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="min" default="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0"/> <xs:maxExclusive value="60"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="sec" default="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0"/> <xs:maxExclusive value="60"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="dir"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="N"/> <xs:enumeration value="n"/> <xs:enumeration value="S"/> <xs:enumeration value="s"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:schema> The problem with this (or using fixed) is that the element still has to appear: <lat xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="lat.xsd"> <deg>50</deg> <min/><sec/> <dir>N</dir> </lat> This is one case where attributes have the advantage. You can have the instance: <lat deg="50" dir="N"/> and have the schema processor default the 'min' and 'sec' attributes to zero (and so your application can always assume they are there). Here's that schema: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="lat" type="LatitudeType"/> <xs:complexType name="LatitudeType"> <xs:attribute name="deg"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0"/> <xs:maxExclusive value="90"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="min" default="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0"/> <xs:maxExclusive value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="sec" default="0"> <xs:simpleType> <xs:restriction base="xs:decimal"> <xs:minInclusive value="0"/> <xs:maxExclusive value="60"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="dir"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="N"/> <xs:enumeration value="n"/> <xs:enumeration value="S"/> <xs:enumeration value="s"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:schema> Alex Milowski FAX: (707) 598-7649 alex@m... "The excellence of grammar as a guide is proportional to the paucity of the inflexions, i.e. to the degree of analysis effected by the language considered." Bertrand Russell in a footnote of Principles of Mathematics
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|