[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Another Schema Question
I need to be able to validate this: <Latitude> <deg>90</deg> <min>0</min> <sec>00.000</min> <dir>N</dir> </Latitude> The value of "degrees" can be 90 only if "minutes" and "seconds" are both zero. A degee value of 90 with non-zero minutes or seconds is invalid. That's the main problem. I have to allow for someone referencing the North/South Pole or , in the case of Longitude, the International DateLine (180 degrees longitude) Both present the same problem. On Wed, 28 Jul 2004, Alex Milowski wrote: > 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 > > > > ----------------------------------------------------------------- > The xml-dev list is sponsored by XML.org <http://www.xml.org>, an > initiative of OASIS <http://www.oasis-open.org> > > The list archives are at http://lists.xml.org/archives/xml-dev/ > > To subscribe or unsubscribe from this list use the subscription > manager: <http://www.oasis-open.org/mlmanage/index.php> > > >
|
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
|