[Serialization] IBM-SE-001: Documentization

Serialization Section 2, "Serializing Arbitrary Data Models": This comment 
recapitulates a discussion from a recent (21 January) meeting of the Query 
and XSLT working groups. It is suggested that the serialization document 
should define two separate and independent processes, possibly called 
"documentization" and "serialization". 

The documentization process should be defined to convert any Query Data 
Model (QDM) instance (which in general may contain zero, one, or many 
documents, or documents mixed with non-document fragments) into a QDM 
instance that contains exactly one document. This can be done by replacing 
each top-level item in the QDM instance by a descriptive "wrapper" element 
that labels it with its kind: attribute, atomic value, element, document, 
etc. A new synthetic document element is then inserted as parent of all 
the wrapper elements.  This documentization process (unlike the one 
currently described in Section 2) should apply successfully to any QDM 
instance whatsoever. Thus (for example) if the QDM instance contains 
multiple documents, the boundaries between these documents is preserved. 
If documentization is invoked on a QDM instance that already contains a 
single document, that document is nevertheless wrapped in a descriptive 
element which is placed under a new synthetic parent document node (it is 
treated simply as a sequence of documents of length one).

The serialization process then needs to be defined only for QDM instances 
that contain exactly one document. A serialization parameter can be 
defined to control whether documentization is applied before serialization 
(possibly documentization could be defined to occur by default if the 
first item in the sequence to be serialized is not a node).

--Don Chamberlin

Received on Monday, 2 February 2004 18:37:43 UTC