[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] XSD Schema type derived by restriction problem
- From: "Michael Kay" <mike@saxonica.com>
- To: "'Christopher Loschen'" <closchen@stanfordalumni.org>,<xml-dev@lists.xml.org>
- Date: Fri, 20 Nov 2009 18:33:45 -0000
>
> I'm working with a schema that defines a type by restricting
> the simple dateTime type. Our mapping rules (based on the
> JAX-RPC spec) map this to the class of the parent type (in
> this case, java.util.Calendar) rather than creating a new
> class to represent the derived type. Consequently, when we
> generate an XML message we specify that this element is of
> xsi:type="xs:dateTime" (that is, the parent type).
>
> However, when we do that, the schema validator flags the XML
> as invalid: it cites an invalid QName at the
> xsi:type="xs:dateTime" attribute.
>
> It makes sense to me that if the derived type is valid, the
> parent type should also be valid: after all, any instance of
> the derived type will also be of the parent type by
> polymorphism. Is that the case in the XML Schema spec? If so,
> we should change our schema validator so that it accepts the
> parent as well as the child in this situation. If not, I'm
> not sure how we can implement JAX-RPC as specified.
>
I don't know JAX-RPC: from this description it sounds as if it is using
xsi:type in a way that is not entirely consistent with the way it is defined
in the XSD specification. XSD says that you can use xsi:type to declare an
instance element to be of a more specific type than the schema would
allocate to it: but it must be a type that is substitutable for the type
declared in the schema. In your case, xs:dateTime is not substitutable for
your user-defined type.
Regards,
Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]