The W3C XML Core Working Group has published a second Candidate Recommendation for XML Inclusions (XInclude) Version 1.0 which incorporates implementation feedback based upon the first CR. The XInclude document "specifies a processing model and syntax for general purpose inclusion. Inclusion is accomplished by merging a number of XML information sets into a single composite Infoset. Specification of the XML documents (infosets) to be merged and control over the merging process is expressed in XML-friendly syntax (elements, attributes, URI references). Feedback received during the first Candidate Recommendation has prompted some features to be removed from the specification, namely, full namespace fixup, and conformance to full XPointer in favor of a lower level made possible by the factoring of XPointer into the XPointer Framework and separate fragment schemes. The second Candidate Reommendation provides an opportunity for these changes to be reflected in implementations, and for the XML Core Working Group to collect additional test cases and information about implementations. [The WG] expects that sufficient feedback to determine its future will have been received by 1-November-2002." The working group welcomes feedback on patterns of implementation and use of this specification, as well as contributions of XInclude test cases.
Bibliographic information: XML Inclusions (XInclude) Version 1.0. W3C Candidate Recommendation 17-September-2002. Edited by Jonathan Marsh (Microsoft) and David Orchard (BEA Systems). Version URL: http://www.w3.org/TR/2002/CR-xinclude-20020917. Latest version URL: http://www.w3.org/TR/xinclude/. Previous version URL: http://www.w3.org/TR/2002/CR-xinclude-20020221/. Available in the non-normative XML format.
From the Introduction:
Many programming languages provide an inclusion mechanism to facilitate modularity. Markup languages also often have need of such a mechanism. This specification introduces a generic mechanism for merging XML documents (as represented by their information sets) for use by applications that need such a facility. The syntax leverages existing XML constructs - elements, attributes, and URI references.
Relationship to XLink: XInclude differs from the linking features described in the [XML Linking Language], specifically links with the attribute value show="embed". Such links provide a media-type independent syntax for indicating that a resource is to be embedded graphically within the display of the document. XLink does not specify a specific processing model, but simply facilitates the detection of links and recognition of associated metadata by a higher level application. XInclude, on the other hand, specifies a media-type specific (XML into XML) transformation. It defines a specific processing model for merging information sets. XInclude processing occurs at a low level, often by a generic XInclude processor which makes the resulting information set available to higher level applications. Simple information item inclusion as described in this specification differs from transclusion, which preserves contextual information such as style.
Relationship to XML External Entities: There are a number of differences between XInclude and XML 1.0 external entities which make them complementary technologies. Processing of external entities (as with the rest of DTDs) occurs at parse time. XInclude operates on information sets and thus is orthogonal to parsing. Declaration of external entities requires a DTD or internal subset. This places a set of dependencies on inclusion, for instance, the syntax for the DOCTYPE declaration requires that the document element be named - orthogonal to inclusion in many cases. Validating parsers must have a complete content model defined. XInclude is orthogonal to validation and the name of the document element..."
Relationship to DTDs: XInclude defines no relationship to DTD validation. XInclude describes an infoset-to-infoset transformation and not a change in XML 1.0 parsing behavior. XInclude does not define a mechanism for DTD validation of the resulting infoset.
Relationship to XML Schemas: XInclude defines no relationship to the augmented infosets produced by applying an XML schema. Such an augmented infoset can be supplied as the input infoset, or such augmentation might be applied to the infoset resulting from the inclusion.
Relationship to Grammar-Specific Inclusions: Special-purpose inclusion mechanisms have been introduced into specific XML grammars. XInclude provides a generic mechanism for recognizing and processing inclusions, and as such can offer a simpler overall authoring experience, greater performance, and less code redundancy.
Principal references:
- XML Inclusions (XInclude) Version 1.0. W3C [Second] Candidate Recommendation 17-September-2002.
- XInclude - First CR 21-February-2002.
- Mailing list archives for 'www-xml-xinclude-comments'
- W3C XML Core Working Group
- XML Core Working Group IPR disclosures
- XInclude Implementation Report
- XPointer Framework W3C Working Draft 10-July-2002.