Re: What is passed between processes?

Norman Walsh wrote:
 > / Jeni Tennison <jeni@jenitennison.com> was heard to say:
 > | I think that one of the requirements for the XML Processing
 > | Model/Language is that it needs to support passing XML documents in
 > | the forms of serialised XML, infosets *and* augmented infosets, as
 > | appropriate, between processes in a pipeline. Other thoughts?
 >
 > To the extent possible, I'd like the exact representation passed
 > between processes to be an implementation detail. On the one hand, I
 > think we'll get a lot of pushback if an implmentation that passes SAX
 > events between components can't be conformant to our spec. On the
 > other, implementations built around XPath2/XSLT2/XQuery are obviously
 > going to want to pass XDM instances around and I want those to be
 > conformant too.

I agree with this approach. A few comments on this:

o SAX. An implementation should be able to use SAX if it wishes so,
   but I do not think we should mean by this that it should be possible
   to stream *every* possible pipeline. SAX streaming should be
   possible in simple, reasonable cases. We all know for example that
   most XSLT implementations will buffer SAX events into an internal
   representation. We should also realize that if supporting
   content-based (XPath-based, for example) conditionals, buffering of
   SAX events may be necessary to evaluate test conditions. However, a
   straight pipeline with custom tranformations components could
   absolutely be streamed.

   The main point I am making here is that I do not think we should
   consider the inclusion of features such as conditionals or multiple
   inputs and outputs based on a "streaming" requirement.

o PSVI: an implementation should be able to pass PSVI information
   between components, but a non-PSVI-aware implementation should also
   be conformant, as mandatory PSVI support can be quite contentious a
   requirement (based on reactions to schema-aware XSLT 2.0's PSVI
   requirement, in particular).

o We should make a distinction between the underlying technology used
   (DOM, SAX, etc.) and the information content being passed. It seems
   to me that it is important that we discuss the latter, while the
   former should probably be outside the scope of the spec.

o To follow-up on Norm's "to the extent possible", the WG should
   determine whether there is a *minimal* set of information content
   that every conformant implementation is required to support. As
   suggestions, such content could be:

   o the XML infoset
   o the information set passed on a SAX ContentHandler (which is a
     subset of the XML infoset)

   Determining such a minimal information content, along with support
   for a "core library" of components (XSLT, XInclude, as suggested
   above) would be a step toward ensuring that there is an actual set
   of use cases that all conformant implementations will be able to
   actually run.

-Erik

Received on Tuesday, 10 January 2006 18:43:38 UTC