XML News from Monday, August 28, 2006

The IETF has published what amounts to a proposed recommendation of XML Pipelining with Chunks for the Information Registry Information Service.

This transfer protocol defines simple framing for sending XML in chunks so that XML fragments may be acted upon (or pipelined) before the reception of the entire XML instance. This document calls this XML pipelining with chunks (XPC) and its use with IRIS as IRIS-XPC.

XPC is for use with simple request and response interactions between clients and servers. Clients send a series of requests to a server in data blocks. The server will respond to each data block individually with a corresponding data block, but through the same connection. Request and response data blocks are sent using the TCP SEND function and received using the TCP RECEIVE function.

The lifecycle of an XPC session has the following phases:

  1. A client establishes a TCP connection with a server.
  2. The server sends a connection response block (CRB).
  3. The client sends a request block (RQB). In this request, the client can set a "keep open" flag requesting that the server keep the XPC session open following the response to this request.
  4. The server responds with a response block (RSB). In this response, the server can indicate to the client whether or not the XPC session will be closed.
  5. If the XPC session is not to be terminated, then the lifecycle repeats from step 3.
  6. The TCP connection is closed.

What I'm confused about is why it's necessary to send XML fragments. Why not just send multiple small documents instead? What they're proposing may be reasonable, but at first read it gives me the willies. There may be deep flaws here. If nothing else, existing XML APIs like DOM, XOM, and SAX really aren't designed to handle semi-independent fragments. Furthermore the draft doesn't seem to address what happens to the remaining chunks when one is malformed. That's a huge omission that likely has security implications. Finally, this whole protocol feels like it deeply mixes layers that should stay independent. Comments are due today.

RenderX has released INX2FO, a set of free-as-in-beer XSL Stylesheets for converting Adobe InDesign documents to XSL Formatting Objects.

Axos Technologies has released Axos FormMapper, a "tool for creating print templates for static layout forms and documents with embedded variable data. Simply re-use an existing empty PDF form as a background, draw boxes for the variable XML data on top, and map the boxes to their corresponding XML data structure elements from a model XML data file. The resulting template can be used repeatedly with an XSL-FO rendering engine to output PDF and Postscript documents." FormMapper is payware, but Axos doesn't put the copst anywhere obvious on their site. I guess they want to figure out how much they think you can afford to pay before quoting you a price.

Sylvain Hellegouarch has posted amplee 0.1.0, a Python "implementation of the Atom Publishing Protocol using atomixlib 0.4.3 and CherryPy 3."

The Apache Jakarta Project has posted Commons SCXML 0.5. "State Chart XML (SCXML) is currently a Working Draft published by the World Wide Web Consortium (W3C). SCXML provides a generic state-machine based execution environment. Commons SCXML provides a Java implementation of the SCXML engine. Anything that can be represented as a UML state chart -- business process flows, view navigation bits, interaction or dialog management, and many more -- can leverage the Commons SCXML library." Currenbtly SCXML is being uised as part of VoiceXML. For instance, it can be used to map out thoise annoying phone trees. E.g. "If Wonder Shampoo turned your hair green, please press 1. If Wonder Shampoo turned your hair purple, please press 2. If Wonder Shampoo made you bald, please press 3."

The Mozilla Project has posted version 0.6 of its XForms extension for Firefox 1.5. Mozilla XForms support has been developed by IBM, Novell, and independent contributors. Improvements include repeat and select optimization, more XUL controls, improved schema support, and a new permission manager.

Alex Selkirk has piosted a beta of GUIXML 0.82, a free-as-in-beer browser for Windows 2000 and later that "can potentially use any XML vocabulary with a namespace. There are a number of demonstration vocabularies, including SimpleXHTML, SimpleDrawing, Identity, Chatroom. There are APIs for display, editing, resources, and database serialization. The extensibility of the web browser is achieved through the ability to convert W3C XML schemas to C++ code. The C++ code compiles to a DLL usable by the web browser. This allows a person to create their own XML vocabulary and integrate it with other existing vocabularies and with the web browser."