XOP Inclusion Mechanism - Frequently Asked Questions

W3C Working Group Note 8 June 2004

This Version:
Latest Version:
Michael Mahan, Nokia


This document lists and provides answers to some frequently asked questions about the design decisions behind the choice of include mechanism by the XML Protocol Working Group during construction of XML-binary Optimized Packaging (XOP). For more information about XOP, see the Working Group Home Page.

Status of this Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This is the First Working Group Note of the Frequently Asked Questions document about the XOP Inclusion Mechanism. It has been produced by the XML Protocol Working Group (WG), which is part of the Web Services Activity. The WG has produced this document to answer questions that have commonly and recently been asked about XOP, it does not intend to update the document.

Comments should be sent to the xmlp-comments@w3.org mailing list (public archive).

This document has been produced under the 24 January 2002 CPP as amended by the W3C Patent Policy Transition Procedure. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance with section 6 of the W3C Patent Policy. Patent disclosures relevant to this specification may be found on the Working Group's patent disclosure page.

Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.


  1. Why does XMLP need an include mechanism for its work?
  2. What is XInclude?
  3. So XOP uses XInclude, right?
  4. What include mechanism did XML Core and XMLP agree was most appropriate for XOP and what is prime rationale?
  5. What is xop:Include?
  6. What are the technical arguments why XOP SHOULD NOT use XInclude?
  7. What are the technical arguments why XOP SHOULD use XInclude?
  8. What are other non-technical issues?
  9. Can this design decision be revisited?

1. Why does XMLP need an include mechanism for its work?

The XMLP working group has created a specification called XOP (XML-binary Optimized Packaging) that defines an efficient convention for serializing XML Infosets for binary content. XOP defines a mechanism to take selected binary data from a source Infoset and place them in the XOP package. The location of the selected binary data must be marked in the serialized XML using some include mechanism. This include mechanism provides the link to the packaged binary data using URIs.

2. What is XInclude?

XML Core WG developed XInclude, a processing model and syntax for general purpose inclusion for XML documents in order to facilitate document modularity.

3. So XOP uses XInclude, right?

The XMLP WG decided that XOP will not reuse XInclude. Instead XMLP WG created a new element, xop:Include, whose semantics are tailored to the use case which XMLP is targeted to solve. XML Core raised an objection to this design choice. A series of emails between the working groups culminated in a joint face to face meeting on Feb 28, 2004 in Cannes, France to resolve the issue.

4. What include mechanism did XML Core and XMLP agree was most appropriate for XOP and what is the prime rationale?

The agreed resolution is for XMLP XOP to continue with its include mechanism, xop:Include. The overriding rationale was that XInclude contains many features and facilities that XOP does not require. Hence, XOP usage of XInclude could result in abuse and interop problems, thus creating a more risky than beneficial solution. Supporting full XInclude processing, without receiving the benefits of XInclude features, runs counter to one the principal XOP requirements – the optimized processing of binary data.

5. What is xop:Include?

It is a minimal include element that defines one mandatory href attribute information item for the URI link to the related MIME part in a XOP package. Additionally, xop:Include has available from its owner element the content-type of the binary data of the same MIME part.

6. What were the technical arguments why XOP SHOULD NOT use XInclude?

The overriding reason is that the benefit of XInclude reuse does not override the cost of added complexity. This is because reuse of XInclude features is low relative to XMLP attachment requirements. In particular, XInclude's features for general inclusion not required or desired by XOP are:

Other technical reasons are:

7. What were the technical arguments why XOP SHOULD use XInclude?

8. What are other non-technical issues?

It is highly desirable that only one XML inclusion mechanism is supported by the W3C and its membership. This is a goal the W3C working groups and coordination group strive to receive. If W3C supports multiple technologies that covers a specific area, we may be sending out a confusing message. However, in this case, the requirements are sufficiently disjoint to justify two inclusion mechanisms.

9. Can this decision be revisited?

Yes. XMLP will reopen this issue should XMLP find they have to make use of more XInclude functionality.