[
Lists Home |
Date Index |
Thread Index
]
If you declare an element to be of type MyDerivedFromShortType, then you can
use xsi:type to further restrict it to a subtype of MyDerivedFromShortType,
but you can't relax the restrictions by making it an xs:short.
I wouldn't personally derive a restricted integer value from short, unless
you have some reasons I don't know about. The type you've defined could just
as validly be derived from xs:byte, or xs:unsignedInt, or
xs:nonNegativeInteger. If there are no structural semantics (like
"pass-grade" being derived from "grade") I prefer to derive such types
directly from xs:integer. So long as you're only doing validation it doesn't
really matter, but once you start using typed values in your application it
makes a difference.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Yves Langisch [mailto:lists@langisch.ch]
> Sent: 23 May 2005 09:19
> To: xml-dev@lists.xml.org
> Subject: [xml-dev] xsi:type handling
>
> All,
>
> I have a derived type from short in my schema such as:
>
> <xs:simpleType name="MyDerivedFromShortType">
> <xs:restriction base="xs:short">
> <xs:minInclusive value="1"/>
> <xs:maxInclusive value="100"/>
> </xs:restriction>
> </xs:simpleType>
>
> My question now is, if following line in a instance document is valid?
>
> <ns2:MyDerivedFromShort
> xsi:type="xsd:short">99</ns2:MyDerivedFromShort>
>
> When parsing this with Xerces it will throw
>
> Validation error: LineNumber: 48 ColumnNumber: 2883 Message:
> cvc-elt.4.3: Type 'xsd:short' is not validly derived from the type
> definition, 'MyDerivedFromShortType', of element
> 'ns2:MyDerivedFromShort'.:
>
> Can someone confirm that Xerces' behaviour is reasonable?
>
> Thanks
> Yves
>
>
>
>
> -----------------------------------------------------------------
> 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>
>
>
|