SLAIX (was: Can XLink be fixed)
Simon St.Laurent scripsit: > Provided that there's a clear mechanism for serializing the LSI as XML > in some easily processed form (XLink-like or not), I suspect you can > navigate those rocks. I'd like to launch a discussion about solving the infoset serialization problem once and for all, for every kind of infoset. As a trial balloon, I propose SLAIX, which stands for "serializing in Layman normal form any infoset as XML." A SLAIXified infoset looks like this: There is a root element slaix:slaix which serves solely as a container. It has no attributes except possibly namespace attributes. Every child of slaix:slaix is an empty element with a qualified element type. The URI reference to which the prefix of the element type name is bound represents the infoset specification that defines elements of this type. The localname represents the information item type within that specification. There is one child for every information item in the infoset. If the type name has more than one word, spaces are replaced by underscores. The namespace-qualified attribute slaix:id should appear on every slaix:item element. It represents a DTD-compatible ID for the element, and does not correspond to anything in the information item. specification that controls this item, and the name for the type of the item in that specification. Attributes on child elements that are not namespace-qualified represent (and are named after) properties of that infoset item. A property which is an ordered set of information items is represented by a list of the slaix:id values of the elements corresponding to each information item. A property which is an unordered set of information items is represented similarly after providing an arbitrary ordering. A property which represents a simple type such as string, integer, or boolean is represented using the canonical value given in XML Schema Part 2. Properties of other types are outside the scope of this specification. If the property name has more than one word, spaces are replaced by underscores. If a property "has no value", the corresponding attribute is not present. Attributes on child elements that are namespace-qualified represent infoset augmentations: the URI reference of the element type specifies the infoset specification that defines this type of information item, and the URI reference of the attribute name specifies the infoset specification that defines this particular property. Here's an example: The document <book> <author sort="brownjohn">John Brown</author> <title>My Life</title> </book> SLAIXifies somewhat as follows: <slaix:slaix slaix:xmlns="..." xmlns="http://www.w3.org/TR/xml-infoset"> <document slaix:id="root" children="e1" document_element="e1" base_URI="..."/> <element slaix:id="e1" local_name="book" children="e2 e3" attributes="" namespace_attributes="" in-scope_namespaces="n1" base_URI="..." parent="root"/> <element slaix:id="e2" local_name="author" children="c1 c2 c3 c4 c5 c6 c7 c8 c9 c10" attributes="a1" namespace_attributes="" in-scope_namespaces="n1" base_URI="..." parent="book"/> <element slaix:id="e3" local_name="title" children="c11 c12 c13 c14 c15 c16 c17" attributes="" namespace_attributes="" in-scope_namespaces="n1" base_URI="..." parent="root"/> <attribute slaix:id="a1" local_name="sort" normalized_value="brownjohn" specified="true" attribute_type="CDATA" owner_element="e2"/> <namespace slaix:id="n1" prefix="xml" namespace_name="http://www.w3.org/XML/1998/namespace"/> <character slaix:id="c1" character_code="74" element_content_whitespace = "false" parent="e2"/> <!-- boring character elements omitted --> </slaix:slaix> -- John Cowan http://www.ccil.org/~cowan jcowan@r... To say that Bilbo's breath was taken away is no description at all. There are no words left to express his staggerment, since Men changed the language that they learned of elves in the days when all the world was wonderful. --The Hobbit
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format