- From: Michael Rys <mrys@microsoft.com>
- Date: Wed, 11 Feb 2004 00:27:02 -0800
- To: <antoine.mensch@xquarkgroup.com>, <public-qt-comments@w3.org>
First, you need to give us some more information about the in-scope schema components and validation mode for your query. Assuming that you imported the two elements below, have the document typed with the information and have lax validation mode, then your result would be an element result of type xdt:untyped since it could not find a definition in the schema components for the result element. This then also means that the C elements will be untyped and not preserve their original type. So your example does not convey the semantics that you assume it does and does not require a type serialization. Also note that XML is primarily late typed data: You have the self-describing XML document and you associate type information after creation of a document. Thus, mandating the serialization of type information and thus making the document early typed seems contrary to the general XML philosophy. Best regards Michael (speaking for myself) > -----Original Message----- > From: public-qt-comments-request@w3.org [mailto:public-qt-comments- > request@w3.org] On Behalf Of Antoine Mensch > Sent: Wednesday, February 11, 2004 12:23 AM > To: public-qt-comments@w3.org > Subject: Serialization (sometimes) needs to include type information > > > Consider the following schema fragment: > > <xs:element name="A"> > <xs:complexType> > <xs:sequence> > <xs:element name="C" type="myns:Type1"/> > </xs:sequence> > </xs:complexType> > </xs:element> > > <xs:element name="B"> > <xs:complexType> > <xs:sequence> > <xs:element name="C" type="myns:Type2"/> > </xs:sequence> > </xs:complexType> > </xs:element> > > Now if we consider a document (or any other data source) containing both A > and B elements, the following query > > <result> > { for $x in doc("myDocument")//C > return $x > } > </result> > > returns a result that cannot be strongly typed without losing type > information by any valid schema, as the schema spec forbids elements with > the same name and a different type in the same content model. > > It seems to me that the only way of retaining type information would be to > annotate produced C elements with xsi:type. This could be a serialization > parameter, similar to the cdata-section-elements. However, this would > raise > another issue, as anonymous type names would then be exposed, and would > thus > require to be handled in a consistent way by different XQuery and XML > Schema > processors. > > This issue is important, especially for tools that perform distributed > XQuery processing, and that need to retain consistent type information > when > moving XML data from one processing node to another. >
Received on Wednesday, 11 February 2004 03:27:38 UTC