XML standardization at W3C

Norm Tovey-Walsh

Where are we and how did we get here?

  • Lots of XML standardization at W3C in the late ’90’s and early ’00’s.

  • At some point, W3C decided to close the XML Activity.

  • That ended the XML working groups.

Innovation continues

  • Folks interested in working on XML tooling formed Community Groups:

    • Invisible XML

    • XQuery, XSLT, etc. (“QT4”)

    • XProc

    • XForms

    I’m involved in the first three (there may be more).

Invisible XML

  • Allows users to write grammars to reveal the implicit structure in data

  • Reads an input text, applies a grammar, produces XML.

Consider this text file:

1 |* [A] Register for TPAC.
  |* Book travel.
  |* Write presentation. due=October, 27
  |* Travel (remember passport!). due=October, 24
5 |* [B] Write trip report. due=November 2
  |* Checkout, travel home.

Invisible XML (2)

And this grammar:

1 |todo = item++nl, nl? .
  |item = -"*", s,  priority?, text, due? .
  |@priority = -"[", s, [L], s, -"]", s .
  |-text = ~[" " | "["], ~["."]+, ".", s .
5 |@due = -"due=", date .
  |-nl = -#a .
  |-s = -" "* .
  | 
  |{ ... }

Invisible XML (3)

Structured data!

1 |<todo>
  |   <item priority='A'>Register for TPAC.</item>
  |   <item>Book travel.</item>
  |   <item due='2026-10-27'>Write presentation.</item>
5 |   <item due='2026-10-24'>Travel (remember passport!).</item>
  |   <item priority='B' due='2026-11-02'>Write trip report.</item>
  |   <item>Checkout, travel home.</item>
  |</todo>

Invisible XML CG

  • Meets online every other week, plus mailing lists, issues, etc.

  • Chair: Steven Pemberton. Five or six folks attend pretty regularly, several more occasionally.

  • Four or five interoperable implementations.

  • Published a Community Report, December 2023. Work on a new version is underway.

  • Eagerly adopted by a growing community

XQuery and XSLT Extensions

(aka “QT4”)

  • XPath, XQuery, XSLT, Functions and Operators, XSLT Streaming, XSLT and XQuery Serialization, Binary and File modules.

  • Core technologies for a lot of XML applications.

Some XSLT:

21 |<xsl:template match="todo">
   |  <ul>
   |    <xsl:apply-templates select="item">
   |      <xsl:sort select="(@priority, 'Z')[1]"
25 |                order="ascending"/>
   |      <xsl:sort select="(@due, '1970-01-01')[1] ! xs:date(.)"
   |                order="descending"/>
   |    </xsl:apply-templates>
   |  </ul>
30 |</xsl:template>

Which produces some HTML.

XQuery and XSLT Extensions CG

  • Meets online every week (meeting 186 is taking place right now!), plus mailing lists, issues, etc.

  • Chair: me. About a dozen folks attend regularly, a handful more occasionally.

  • Interoperable XPath and XQuery implementations, one complete XSLT implementation, several implementations in development.

  • Plans to publish in 2027 or 2028.

  • Eagerly anticipated by the community.

XProc

  • Combines XML (and non-XML) processes into a pipeline

  • Core syntax is in XML, but can process arbitrary data: XML, JSON, RDF, images, archives, etc.

An example pipeline:

21 |<p:declare-step version="3.1" xmlns:p="http://www.w3.org/ns/xproc">
   |<p:input port="source" content-types="text"/>
   |<p:output port="result" content-types="html"/>
   | 
25 |<p:invisible-xml>
   |  <p:with-input port="grammar" href="todo.ixml"/>
   |</p:invisible-xml>
   | 
   |<p:xslt>
30 |  <p:with-input port="stylesheet" href="todo.xsl"/>
   |</p:xslt>
   |</p:declare-step>

XProc Next CG

  • Meets online periodically, plus mailing lists, issues, etc.

  • Chair: me. Editorial team of four plus others occasionally.

  • Two complete, interoperable implementations.

  • Published a Community Report, May 2025. Work on a new version is underway with more work planned after QT4 is published.

XML is flourishing

  • XML’s future is secure.

  • Great!

So what’s the problem?

  • W3C organizes meetings of community group chairs occasionally.

  • At one such meeting recently, Steven Pemberton and I described our ongoing standards work.

  • W3C staff expressed reservations: Community Groups are for building interest and gathering participants, standards work should happen in Working Groups

  • Okay, but the XML Activitiy was closed; there’s no place for those Working Groups to live.

  • Discuss.