<?xml version="1.0" encoding="UTF-8"?>
<essay xml:lang="en" version="lillet" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:gal="http://norman.walsh.name/rdf/gallery#">
<info>
    
    
    
    
    
    
    
    
    
    
    
    
<title>XML Processing Model Working Group</title><biblioid class="uri">http://norman.walsh.name/2005/10/27/xmlProcModel</biblioid>
<volumenum>8</volumenum>
<issuenum>138</issuenum>
<pubdate>2005-10-27T13:00:44-04:00</pubdate>
<date>$Date: 2005-11-17 16:58:20 -0500 (Thu, 17 Nov 2005) $</date>
<author>
      <personname>
<firstname>Norman</firstname>
	<surname>Walsh</surname>
</personname>
    </author>
<copyright>
      <year>2005</year>
      <holder>Norman Walsh</holder>
    </copyright>
<abstract>
<para>Public at last! One of the goals of this working group is to
define a standard language for expressing the way in which XML
processing is to be applied to a document or set of documents. In
other words, how to get validation, XInclude, transformations, and
other processes in the right order with the right parameters. Oh, and
I'm chairing it.</para>
</abstract>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#Programming"/>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#XML"/>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#XMLPipelines"/>
</info>

<para xml:id="p1">I'm guessing that most of my readers who are even the
slightest bit interested in this topic already have a pretty good idea
of what I mean when I say “an XML processing model language” or “an
XML pipeline” but in case you don't, I've
<link xlink:href="/2004/06/20/pipelines">written about it</link>
before, and  <personname>
      <firstname>Jeni</firstname>
<surname>Tennison</surname>
    </personname> presented an excellent
motivational paper at
<link xlink:href="http://www.xtech-conference.org/2005/">XTech 2005</link>,
“<link xlink:href="http://idealliance.org/proceedings/xtech05/papers/04-03-01/">Managing
Complex Document Generation through Pipelining</link>”.</para>

<para xml:id="p2">In any event, after
<link xlink:href="/2004/06/20/xmlactivity">much procedural wrangling</link>,
the <link xlink:href="http://www.w3.org/">W3C</link> has finally chartered
a new Working Group in the
<link xlink:href="http://www.w3.org/XML/Activity">XML Activity</link> to
address the problem of a standard XML pipeline language, the
<link xlink:href="http://www.w3.org/XML/Processing/">XML Processing
Model Working Group</link>. And they persuaded me to chair it, for better
or worse. :-)
The
<link xlink:href="http://www.w3.org/2005/10/xml-processing-model-wg-charter.html">charter</link>
lays out the scope, goals, and deliverables pretty well, so I won't bother
recapitulating them here.</para>

<para xml:id="p3">If you work for a W3C member company interested in pipelines,
now's the time to get your
<abbrev>AC<alt>Advisory Committee</alt></abbrev>
rep to sign you up! If you don't work
for a member company, but you have a burning interest in pipelines,
let me know.</para>

<para xml:id="p4">The WG doesn't really exist yet; the call-for-participation is
out, but I have no idea who will join, what they'll bring to the
table, or what they'll want to do. So even though I'm chairing, I
won't attempt to speak in any official capacity for the Working Group.
(I wouldn't speak in any official capacity in this forum anyway, but
nevermind.) That said, as a WG <emphasis>member</emphasis>, I'll put a
stake in the ground early on.</para>

<para xml:id="p5">There has been <emphasis>a lot</emphasis> of work done in this
area. A half hour spent with a search engine and my mail archives
turned up all of these efforts either about XML pipelines or
directly related to them<footnote>
<para xml:id="p6">Apologies, in advance, if I left out your favorite. Let me know
and I'll happily add it to the list.</para>
    </footnote>:</para>

<itemizedlist spacing="compact">
<listitem>
<para xml:id="p7">
	<link xlink:href="http://cocoon.apache.org/2.1/userdocs/concepts/sitemap.html">Cocoon Sitemaps</link>
</para>
</listitem>

<listitem>
<para xml:id="p8">Device Neutral Pipelined Processing of XML Documents
(Poster Proceedings of the Twelfth International World Wide Web
Conference)
</para>
</listitem>

<listitem>
<para xml:id="p26"><link xlink:href="http://www.xmlecho.org/">xmlecho</link>
(added 17 Nov 2005)
</para>
</listitem>

<listitem>
<para xml:id="p9">
	<link xlink:href="http://jakarta.apache.org/commons/jelly/">Jelly</link>
</para>
</listitem>

<listitem>
<para xml:id="p10">
	<link xlink:href="http://www.markuptechnology.com/">MT Pipeline</link>
</para>
</listitem>

<listitem>
<para xml:id="p11">
	<link xlink:href="http://www.1060research.com/">NetKernel</link>
</para>
</listitem>

<listitem>
<para xml:id="p12">
	<link xlink:href="http://www.oracle.com/technology/tech/xml/xdkhome.html">Oracle's XML Pipeline Definition Language Controller Implementation</link>
</para>
</listitem>

<listitem>
<para xml:id="p13">
	<link xlink:href="http://www.idealliance.org/papers/dx_xml03/papers/06-03-04/06-03-04.html">Re-Interpreting the XML Pipeline Note</link>
</para>
</listitem>

<listitem>
<para xml:id="p14">
	<link xlink:href="http://lists.xml.org/archives/xml-dev/200206/msg00820.html">Schemachine</link>
</para>
</listitem>

<listitem>
<para xml:id="p15">
	<link xlink:href="https://smallx.dev.java.net/">smallx</link>
</para>
</listitem>

<listitem>
<para xml:id="p16">
	<link xlink:href="http://norman.walsh.name/2004/06/20/sxpipe">SXPipe: Simple XML Pipelines</link>
</para>
</listitem>

<listitem>
<para xml:id="p17">
	<link xlink:href="http://www.w3.org/TR/2002/NOTE-xml-pipeline-20020228/">XML Pipeline Definition Language Version 1.0</link>
</para>
</listitem>

<listitem>
<para xml:id="p18">
	<link xlink:href="http://www.w3.org/Submission/xpl/">XML Pipeline Language (XPL) Version 1.0</link>
</para>
</listitem>

<listitem>
<para xml:id="p19">
	<link xlink:href="http://downloads.xmlschemata.org/python/xvif/xvif.html">XML Validation Interoperability Framework (XVIF)</link>
</para>
</listitem>

<listitem>
<para xml:id="p20">
	<link xlink:href="http://xml.apache.org/xerces2-j/xni.html">XNI</link>
</para>
</listitem>

<listitem>
<para xml:id="p21">
	<link xlink:href="http://xpipe.sourceforge.net/">XPipe</link>
</para>
</listitem>
</itemizedlist>

<para xml:id="p22">I want to figure out what 80% of the intersection of those languages
is, write it up as a specification, slap “1.0” on it, and ship it.
<emphasis>As soon as possible.</emphasis> Then I want to get support for
that language coded up and into the
<link xlink:href="http://java.sun.com/"><trademark>Java</trademark>
Platform</link> so it'll be available everywhere.</para>

<para xml:id="p23">I have no philosophical objection
to grander processing model schemes, but we needed this
<link xlink:href="http://www.w3.org/XML/2001/07/XMLPM.html">in 2001</link>.
I have no interest in an ocean boiling exercise to define the be-all
and end-all of process choreography languages. Let's keep it simple.</para>

<para xml:id="p24">Yes, it is likely that more powerful and sophisticated languages
will come after 1.0. Yes, it would be best if the 1.0 language could
be extended in some clean way to incorporate these new features. Yes,
having some level of abstraction often aids in achieving those goals.
But none of those facts diminish the value of a good, small,
widely (in the best of all possible worlds, universally) deployed,
practical and understandable pipeline language that will let a
competent XML hacker craft a functional pipeline in
<application>Emacs</application> without
needing to refer to the documentation six times. IMNSHO.</para>

<para xml:id="p25">But what's really important is your opinion, and we'll find that
out by getting consensus on a revision of
<link xlink:href="http://www.w3.org/TR/2004/NOTE-proc-model-req-20040405/">the
requirements document</link> to start with.</para>

</essay>

