<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc='yes'?>
<?rfc tocompact='yes'?>
<?rfc compact='no'?>
<?rfc subcompact='yes'?>
<?rfc sortrefs='no'?>
<?rfc symrefs='no'?>
<rfc ipr="full2026" category="bcp"
 docName="draft-hollenbeck-ietf-xml-guidelines-00.txt">
  <front>
    <title abbrev="XML in IETF Protocols">
     Guidelines For The Use of XML in IETF Protocols</title>
    
    <author initials="S." surname="Hollenbeck" fullname="Scott Hollenbeck">
      <organization>VeriSign, Inc.</organization>
      <address>
        <postal>
          <street>21345 Ridgetop Circle</street>
          <city>Dulles</city>
          <region>VA</region>
          <code>20166-6503</code>
          <country>US</country>
        </postal>
        <phone>+1 703 948 3257</phone>
        <email>shollenbeck@verisign.com</email>
      </address>
    </author>
    
    <author initials="M." surname="Rose" fullname="Marshall T. Rose">
      <organization>Dover Beach Consulting, Inc.</organization>
      <address>
        <postal>
          <street>POB 255268</street>
          <city>Sacramento</city>
          <region>CA</region>
          <code>95865-5268</code>
          <country>US</country>
        </postal>
        <phone>+1 916 483 8878</phone>
        <email>mrose@dbc.mtview.ca.us</email>
      </address>
    </author>
    
    <author initials="L." surname="Masinter" fullname="Larry Masinter">
      <organization>Adobe Systems Incorporated</organization>
      <address>
        <postal>
          <street>Mail Stop W14</street>
          <street>345 Park Ave.</street>
          <city>San Jose</city>
          <region>CA</region>
          <code>95110</code>
          <country>US</country>
        </postal>
        <phone>+1 408 536-3024</phone>
        <email>LMM@acm.org</email>
        <uri>http://larry.masinter.net</uri>
      </address>
    </author>
    
    <date year="2002" month="April" day="5"/>
    <area>General</area>
    <keyword>BCP</keyword>
    <keyword>Best Current Practice</keyword>
    <keyword>I-D</keyword>
    <keyword>Internet-Draft</keyword>
    <keyword>XML</keyword>
    <keyword>Extensible Markup Language</keyword>
    
    <abstract>
      <t>The eXtensible Markup Language (XML) is a framework for structuring
      data. While it evolved from SGML -- a markup language primarily focused
      on structuring documents -- XML has evolved to be a widely-used mechanism
      for representing structured data.</t>

      <t>There are a wide variety of Internet protocols; many have need for a
      representation for structured data relevant to their application.  There
      has been much interest in the use of XML as a representation method.  This
      document describes basic XML concepts, analyzes various alternatives in the
      use of XML, and provides guidelines for the use of XML within IETF
      standards-track protocols.</t>
    </abstract>
    
    <note title="Intended Publication Status">
      <t>It is the goal of the authors that this draft (when completed and then
      approved by the IESG) be published as a Best Current Practice (BCP).</t>
    </note>
    
    <note title="Conventions Used In This Document">
      <t>This document recommends, as policy, what specifications for Internet
      protocols -- and, in particular, IETF standards track protocol documents
      -- should include as normative language within them.  The keywords
      "SHOULD", "MUST", "MAY", etc. are used in	the sense of how they would be
      used within other documents with the meanings as specified in RFC 2119
      <xref target="RFC2119"/>.</t>
    </note>
    
    <note title="Discussion Venue">
      <t>The authors welcome discussion and comments relating to the topics
      presented in this document.  Though direct comments to the authors are
      welcome, public discussion is taking place on the "ietf-xml-use" mailing
      list.  To join the list, send a message to "ietf-xml-use-request@imc.org"
      with the word "subscribe" in the body of the message.  There is a web
      site for the list archives at http://www.imc.org/ietf-xml-use/.</t>
    </note>
  </front>
  
  <middle>
    <section title="Introduction and Overview" anchor="intro">
      <t>The eXtensible Markup Language (XML) is a framework for structuring
      data. While it evolved from the Standard Generalized Markup Language (SGML)
      <xref target="ISO.8879.1988"/> -- a markup language primarily focused on
      structuring documents -- XML has evolved to be a widely-used mechanism for
      representing structured data  in protocol exchanges.  See
      <xref target="W3C.XML-points"/> for an introduction to XML.</t>
      
      <section title="Intended Audience">
        <t>Many Internet protocol designers are considering using XML and XML
        fragments within the context of existing and new Internet protocols.
        This document is intended as a guide to XML usage and as IETF policy
        for standards track documents.  Experienced XML practitioners will
        likely already be familiar with the background material here, but the
        guidelines are intended to be appropriate for those readers as well.</t>
      </section>
      
      <section title="Scope">
        <t>This document is intended to give guidelines for the use of XML
        content within a larger protocol.</t>

        <t>There are a number of protocol frameworks already in use or under
        development which focus entirely on "XML protocol": the exclusive use
        of XML as the data representation in the protocol.  For example, the
        World Wide Web Consortium (W3C) is developing an XML Protocol framework
        <xref target="W3C.REC-xml-protocol"/> based on the Simple Object Access
        Protocol (SOAP) <xref target="W3C.WD-SOAP"/>.  The applicability of
        those protocols is not part of the scope of this document.</t>

        <t>In addition, there are higher-level representation frameworks, based on
        XML, that have been designed as carriers of certain classes of information; for example,
        the Resource Description Framework (RDF) <xref target="W3C.REC-rdf-syntax"/>
        is an XML-based representation for logical assertions.  This document does
        not provide guidelines for the use of such frameworks.</t>
      </section>
      
      <section title="XML Evolution">
        <t>Originally published in February 1998 <xref target="W3C.REC-xml-v1"/>,
        XML's popularity has led to several additions to the base specification.
        Although these additions are designed to be consistent with version 1.0
        of XML, they have varying levels of stability, consensus, and
        implementation.  Accordingly, this document identifies the major
        evolutionary features of XML and makes suggestions as to the circumstances
        in which each feature should be used.</t>
      </section>
      
      <section title="XML Users, Support Groups, and Additional Information">
        <t>There are many XML support groups, some devoted to the entire XML
        industry (e.g., http://xml.org/), some devoted to developers
        (http://xmlhack.com/), some devoted to the business applications of
        XML (e.g., http://oasis-open.org/), and many, many groups devoted to
        the use of XML in a particular context.</t>
    
        <t>It is beyond the scope of this document to provide a comprehensive
        list of referrals.  Interested readers are directed to the three
        links above as starting points, as well as their favorite Internet
        search engine.</t>
        
        <t>(TBD: pointers to other best practice and design guidelines, such as
        http://www.xfront.com/BestPracticesHomepage.html and
        http://www.goland.org/xmlschema.htm)</t>
      </section>
    </section>
    
    <section title="XML Selection Considerations" anchor="selection">
      <t>XML is a tool that provides a means towards an end.  Choosing the right
      tool for a given task is an essential part of ensuring that the task can
      be completed in a satisfactory manner.  This section describes factors
      to be aware of when considering XML as a tool for use in IETF protocols:
      
        <list style="symbols">
          <t>XML is a meta-markup language that can be used to define markup
          languages for specific domains and problem spaces.</t>
          
          <t>XML provides both logical structure and physical structure to
          describe data.  Data framing is built-in.</t>
          
          <t>XML includes features to support internationalization and
          localization.</t>
          
          <t>XML is extensible.  New tags (and thus new protocol elements) can
          be defined without requiring changes to XML itself.</t>
          
          <t>XML is still evolving.  The formal specifications are still
          being influenced and updated as use experience is gained and
          applied.</t>
          
          <t>XML is text-based, so XML fragments are easily created, edited,
          and managed using common utilities. Further, being text-based means
          it more readily supports incremental development, debugging, and
          logging.</t>
          
          <t>XML is verbose when compared with many other data encapsulation
          languages.  A representation with element extensibility and human
          readability typically requires more bits when compared to one
          optimized for efficient machine processing.</t>
          
          <t>XML implementations are still relatively new.  As designers and
          implementers gain experience, it is not uncommon to find defects
	  in early and current products.</t>
	  
          <t>XML support is available in a large number of software
          development utilities, available in both open source and
          proprietary products.</t>
          
          <t>XML processing speed can be an issue in some environments. XML
          processing can be slower because XML data streams may be larger
          than other representations, and the use of general purpose XML
          parsers will add a software layer with its own performance costs.</t>
        </list>
      </t>
    </section>
    
    <section title="XML Alternatives" anchor="alternatives">
      <t>This document focuses on guidelines for the use of XML, but it's useful
      to consider why one would use XML as opposed to some other mechanism.
      This section considers some other commonly used representation mechanisms
      and compares XML to those alternatives.</t>
      
      <t>For example, Abstract Syntax Notation 1 (ASN.1) <xref target="ISO.8824.1990"/>
      along with the corresponding Basic Encoding Rules (BER) <xref target="ISO.8825.1990"/>
      are part of the OSI communication protocol suite, and have been used in
      many subsequent communications standards (e.g., the ANSI Information
      Retrieval protocol <xref target="ANSI.Z39-50.1995"/> and the Simple Network
      Management Protocol (SNMP) <xref target="RFC1157"/>).  The eXternal Data
      Representation (XDR) <xref target="RFC1832"/> and variations of it have
      been used in many other distributed network applications (e.g., the Network
      File System protocol <xref target="RFC3010"/>).  With ASN.1, data types are
      explicit in the representation, while with XDR, the data types of components
      are described externally as part of an interface specification.</t>
      
      <t>Many other protocols use data structures directly (without data
      encapsulation) by describing the data structure with Backus Normal Form
      (BNF) <xref target="Backus"/>; many IETF protocols use an Augmented
      Backus-Naur Form (ABNF) <xref target="RFC2234"/>.  The Simple Mail
      Transfer Protocol <xref target="RFC2821"/> is an example of a protocol
      specified using ABNF.</t>
       
      <t>Representation methods differ from XML in several important ways:</t>
      
      <t>Specification encoding: XML schema are themselves represented in
      XML, and the specification itself can be written using arbitrary
      characters from the language. The specification of representations
      in other systems (ASN.1, XDR, ABNF) are generally in ASCII
      <xref target="ANSI.X3-41.1974"/> text.</t>
      
      <t>Text Encoding and character sets: the character encoding used to 
      represent a formal specification.  XML defines a consistent character
      model based on ISO 10646 <xref target="ISO.10646-1.1993"/>, with a base
      that supports at least UTF-8 <xref target="RFC2279"/> and UTF-16
      <xref target="RFC2781"/>, and allows for other encodings.  While ASN.1
      and XDR may carry strings in any encoding, there is no common mechanism
      for defining character encodings within them.  Typically, ABNF definitions
      tend to be defined in terms of octets or characters in ASCII.</t>
      
      <t>Data Encoding: XML is based on a character model.  XML Schema
      <xref target="W3C.REC-xmlschema-2"/> includes mechanisms for representing
      some datatypes (integer, date, array, etc.) but other binary datatypes are
      encoded in Base64 <xref target="RFC2045"/>.  ASN.1 and XDR have rich
      mechanisms for encoding a wide variety of datatypes.</t>
      
      <t>Extensibility: XML has a rich extensibility model: XML representations
      can frequently be versioned independently. Many XML representations can
      be extended by adding tokens to the XML namespace (if done compatibly);
      other extensions can be added by adding to the namespace.  ASN.1 is
      similarly extensible through the use of Object Identifiers (OIDs).
      XDR representations tend to not be independently extensible by different
      parties because the framing and datatypes are implicit and not
      self-describing.  The extensibility of BNF-based protocol elements needs
      to be explicitly planned.</t>
      
      <t>Legibility of protocol elements: As noted above, XML is text-based,
      and thus carries the advantages (and disadvantages) of text-based
      protocol elements. Typically this is shared with (A)BNF-defined protocol
      elements.  ASN.1 and XDR use binary encodings which are not visible.</t>
      
      <t>ASN.1, XDR, and BNF are described here as examples of alternatives
      to XML for use in IETF protocols.  There are other alternatives, but a
      complete enumeration of all possible alternatives is beyond the scope
      of this document.</t>
    </section>
    
    <section title="XML Use Considerations and Recommendations" anchor="use">
      <t>This section notes several aspects of XML and makes recommendations
      for use.  Since the 1998 publication of XML version 1
      <xref target="W3C.REC-xml-v1"/>, an editorial second edition
      <xref target="W3C.REC-xml"/> was published in 2000; this section refers
      to the second edition.</t>
      
      <section title="XML Declarations" anchor="xmldecl">
        <t>An XML declaration (defined in section 2.8 of
        <xref target="W3C.REC-xml"/>) is a small header at the beginning of an
        XML data stream that indicates the XML version and the character encoding
        used.  For example,</t>
        
        <t>&lt;?xml version="1.0" encoding="UTF-8"?></t>
        
        <t>specifies the use of XML version 1 and UTF-8 character encoding.</t>
        
        <t>Protocol specifications must be clear about use of XML declarations.
        In some cases, the XML used is a small fragment in a larger context,
        where the XML version and character encoding are specified externally.
        In those cases, the XML declaration might add extra overhead.
        In other cases, the XML is a larger component which may find its way
        alone as an external entity body, transported as a MIME message.
        In those cases, the XML declaration is an important marker and useful
        for reliability and extensibility.  In general, an XML protocol
        element should either disallow XML declarations ("MUST NOT be used")
        or require one ("MUST have").  A design which allows but does not
        require an XML declaration leads to unreliable implementations.
        When in doubt, require an XML declaration.</t>
      </section>
      
      <section title="XML Processing Instructions">
        <t>An XML processing instruction (defined in section 2.6 of
        <xref target="W3C.REC-xml"/>) is a component of an XML document that
        signals extra "out of band" information to the receiver; a common use
        of XML processing instructions are for document applications.  For
        example, the XML2RFC application used to generate this document
        and described in <xref target="RFC2629"/> supports a "table of contents"
        processing instruction:</t>
        
        <t>&lt;?rfc toc="yes"?></t>
        
        <t>Again, protocol specifications must be clear about whether --
        and if so, what kind of -- XML processing instructions are allowed.
        However, XML processing instructions appear to have rare 
        applicability to XML fragments embedded in Internet protocols,
        and it is recommended that their use be explicitly disallowed
        ("MUST NOT use").  In cases where XML processing instructions
        are allowed, the nature of the allowable processing instructions
        should be specified explicitly.</t>
      </section>
      
      <section title="Well-Formedness">
        <t>A well-formed XML instance is one in which all character and
        markup data conforms to a specific set of structural rules defined
        in section 2.1 of <xref target="W3C.REC-xml"/>.</t>
        
        <t>An XML instance that is not well-formed is not really XML;
        well-formedness is the basis for syntactic compatibility with XML.
        Without well-formedness, most of the advantages of using XML disappear.
        For this reason, it is imperative that protocol specifications
        REQUIRE that XML instances be well-formed.</t>
      </section>
      
      <section title="Validity">
        <t>Beyond well-formedness there are additional mechanisms that define a
        set of structural and data format constraints.  Two mechanisms are commonly
        used to define grammars for classes of XML documents: Document Type
        Definition (DTD) (defined in section 2.8 of <xref target="W3C.REC-xml"/>)
        and XML Schema (defined in <xref target="W3C.REC-xmlschema-1"/> and
        <xref target="W3C.REC-xmlschema-2"/>).</t>
        
        <t>DTDs are an older technology that has been found to have drawbacks,
        particularly in the features provided for extensibility and data typing.
        XML Schema was designed to address many DTD shortcomings.  For example,
        with a DTD a validating parser can confirm that an element contains
        character data, but with XML Schema a validating parser can also confirm
        that the value of an element matches a particular regular expression.</t>
        
        <t>XML Schema provides powerful features to define a complete and
        precise specification of allowable protocol syntax and data type
        definitions.  In order to obtain the advantages of XML as a data
        structure specification system, protocol specifications should supply
        an XML Schema and insist that XML instances MUST be valid according
        to that schema.</t>
      </section>
      
      <section title="Namespaces">
        <t>XML namespaces, defined in <xref target="W3C.REC-xml-names"/>,
        provide a means of assigning markup to a specific vocabulary.  If two
        elements or attributes from different vocabularies have the same name,
        they can be distinguished unambiguously if they belong to different
        namespaces.  Additionally, namespaces provide significant support for
        protocol extensibility as they can be defined, reused, and processed
        dynamically.</t>
        
        <t>Markup vocabulary collisions are very possible when namespaces are
        not used to separate and uniquely identify vocabularies.  Protocol
        definitions should use existing XML namespaces where appropriate.
        When new namespaces are needed, the namespace name (a URI) should
        be defined within the RFC itself, and the IETF URN namespace described
        in <xref target="I-D.mealling-iana-xmlns-registry"/> should be used to
        designate the namespace; for example:</t>
        
        <t>abc:xmlns="urn:ietf:params:xml:ns:abc"</t>
      </section>
      
      <section title="Element and Attribute Design Considerations">
        <t>XML provides much flexibility in allowing a designer to use either
        elements or element attributes to carry data.  Element attributes are
        generally intended to contain meta-data that describes the value of
        the element, and as such they are subject to the following restrictions:
        
        <list style="symbols">
          <t>Attributes are unordered, and</t>
          <t>Attribute values can only contain simple XML data types.</t>
        </list>
        </t>
        
        <t>Consider the following example that describes an IP address using
        a "type" attribute to describe the address value:
        
          <figure>
            <artwork>
            &lt;address type="ipv4">10.1.2.3&lt;/address>
            </artwork>
          </figure>
        </t>
        
        <t>XML allows the same information to be encapsulated using a &lt;type>
        element instead of a "type" attribute:
        
          <figure>
            <artwork>
            &lt;address>
              &lt;type>ipv4&lt;/type>
              &lt;value>10.1.2.3&lt;/value>
            &lt;/address>
            </artwork>
          </figure>
        </t>
        
        <t>The preferred form is used in the first example, where the "type"
        attribute is used to describe the value of the &lt;address> element.</t>
        
        <t>Consistent use of elements and element attributes is a characteristic
        of a sound design.  Protocols are strongly urged to use elements as the
        primary XML data encapsulation structure.  Attributes used in protocol
        elements should contain only meta-data that describes the value of the
        enclosing element.</t>
      </section>
      
      <section title="Binary Data">
        <t>XML is defined as a character stream rather than a stream of octets,
        and such there are no ways of embedding binary data directly within an
        XML data stream.  XML Schema <xref target="W3C.REC-xmlschema-2"/> 
        defines one encoding of binary data using Base64 <xref target="RFC2045"/>
        and another using hexadecimal digits.</t>
        
        <t>Other protocols transmit binary data using some other communication
        channel, and include, in the XML data itself, a reference (using the
        anyURI data type).</t>
        
        <t>Protocols that need a container that can hold both structural
        data and large quantities of binary data should consider carefully
        whether XML is appropriate, since the Base64 and hex encodings
        are inefficient.  Otherwise, protocols should use the mechanisms
        of XML Schema to represent binary data; the Base64 encoding is
        best for larger quantities of data, while the hex encoding will
        work for short bit strings.</t>
      </section>
    </section>
    
    <section title="Internationalization Considerations" anchor="i18n">
      <t>This section describes internationalization considerations for the use
      of XML to represent data in IETF protocols.  Readers should be familiar
      with IETF policy on the use of character sets and languages as described
      in RFC 2277 <xref target="RFC2277"/>.</t>
      
      <section title="Character Sets">
        <t>XML provides native support for encoding information using the Unicode
        character set and its more compact representations including UTF-8
        <xref target="RFC2279"/> and UTF-16 <xref target="RFC2781"/>.  Other
        encodings are also supported and can be specified using an "encoding"
        attribute in a document's XML declaration.  It is strongly recommended
        that UTF-8 be mandated for protocols that represent data using XML.</t>
        
        <t>Guidelines for the use of XML declarations can be found in
        <xref target="xmldecl"/>.  If an XML declaration is omitted, it is
        strongly urged to require use of a consistent character set, and to
        require UTF-8 as the most appropriate character set.  If an XML
        declaration is allowed, it is again strongly urged to require use of a
        consistent character set, to require UTF-8 as the most appropriate
        character set, and to recommend inclusion of an "encoding" attribute
        that explicitly notes use of UTF-8 encoding.</t>
      </section>
      
      <section title="Language Declaration">
        <t>Text encapsulated in XML can be represented in many different human
        languages, and it is often useful to explicitly identify the language used
        to present the text.  XML version 1 defines a special attribute in the
        "xml" namespace, xml:lang, that can be used to specify the language used
        to represent data in an XML document.  The xml:lang attribute and the
        values it can assume are defined in section 2.12 of
        <xref target="W3C.REC-xml"/>.</t>
        
        <t>It is strongly recommended that protocols representing data in a human
        language mandate use of an xml:lang attribute if the XML instance might
        be interpreted in language-dependent contexts.</t>
      </section>
      
      <section title="Other Considerations">
        <t>There are standard mechanisms in the typography of some human languages
        that can be difficult to represent using merely XML character string data
        types.  For example, pronunciation clues can be provided using Ruby
        annotation <xref target="W3C.REC-RUBY"/>, and embedding controls (such as
        those described in section 3.4 of <xref target="W3C.NOTE-UNICODE"/>) or
        an XHTML <xref target="W3C.REC-XHTML"/> "dir" attribute can be used to
        note the proper display direction for bidirectional text.</t>
        
        <t>It is strongly recommended that protocols representing data in a human
        language reuse existing mechanisms as needed to ensure proper display of
        human-legible text.</t>
      </section>
    </section>
    
    <section title="IANA Considerations" anchor="iana">
      <t>This section does not contain any specific directives for IANA.  However,
      when XML is used in an IETF protocol there are multiple factors that might
      require IANA action, including:
        <list style="symbols">
          <t>XML media types.  Some protocols have protocol elements that are
          MIME bodies, and allow MIME labeling.  In cases where a MIME label is
          used to identify a protocol element the MIME labeling policies defined
          in RFC 3023 <xref target="RFC3023"/> should be followed and an XML
          declaration should be present. The "application/xml" media type is most
          appropriate for general XML; if a new media type is expected, it should
          be registered.</t>
          
          <t>URI registration.  There is an ongoing effort
          <xref target="I-D.mealling-iana-xmlns-registry"/> to create a URN
          namespace explicitly for defining URIs for namespace names and other
          URI-designated protocol elements for use within IETF standards track
          documents; it might also establish IETF policy for such use.</t>
        </list>
      </t>
    </section>
    
    <section title="Security Considerations" anchor="security">
      <t>Being text-based, protocols built with XML face significant threats,
      including unintended disclosure, modification, and replay.  Simple passive
      attacks, such as packet sniffing, allow an attacker to capture and view
      information intended for someone else.  Captured data can be modified and
      replayed to the original intended recipient, with the recipient having no
      way to know that the information has been compromised, detect modifications,
      be assured of the sender's identity, or to confirm which protocol instance
      is legitimate.</t>
    
      <t>Several security service options are available mitigate these risks.
      Though XML does not include any built-in security services, other protocols
      and protocol layers provide services that can be used to protect XML
      protocols.  XML encryption <xref target="W3C.REC-xmlenc-core"/> provides
      privacy services to prevent unintended disclosure.  Canonical XML
      <xref target="RFC3076"/> XML digital signatures <xref target="RFC3275"/>
      provide integrity services to detect modification and authentication
      services to confirm the identity of the data source.  Other IETF security
      protocols (e.g., the Transport Layer Security (TLS) protocol
      <xref target="RFC2246"/>) are also available to protect data and service
      endpoints as appropriate.  Given the lack of security services in XML,
      it is imperative that protocol specifications REQUIRE additional
      security services to counter common threats and attacks; the specific
      required services will depend on the protocol's threat model.</t>
    </section>
    
    <section title="Acknowledgements" anchor="acks">
      <t>The authors would like to thank the following people who have provided
      significant contributions to the development of this document:</t>
      
      <t>Josh Cohen and Andrew Newton.</t>
    </section>
  </middle>
  
  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.2246"?>
      <?rfc include="reference.RFC.2277"?>
      <?rfc include="reference.RFC.2279"?>
      <?rfc include="reference.RFC.3023"?>
      <?rfc include="reference.RFC.3076"?>
      <?rfc include="reference.RFC.3275"?>
      <?rfc include="reference.W3C.REC-xml"?>
      <?rfc include="reference.W3C.REC-xml-names"?>
      
      <reference anchor="W3C.REC-xmlschema-1"
       target="http://www.w3.org/TR/xmlschema-1/">
        <front>
          <title>XML Schema Part 1: Structures</title>
          <author initials="H." surname="Thompson" fullname="Henry S. Thompson">
            <organization>University of Edinburgh</organization>
          </author>
          <author initials="D." surname="Beech" fullname="David Beech">
            <organization>Oracle Corporation</organization>
          </author>
          <author initials="M." surname="Maloney" fullname="Murray Maloney">
            <organization>Commerce One</organization>
          </author>
          <author initials="N." surname="Mendelsohn" fullname="Noah Mendelsohn">
            <organization>Lotus Development Corporation</organization>
          </author>
          <date year="2001" month="May" day="2"/>
        </front>
      </reference>
      
      <reference anchor="W3C.REC-xmlschema-2"
       target="http://www.w3.org/TR/xmlschema-2/">
        <front>
          <title>XML Schema Part 2: Datatypes</title>
          <author initials="P." surname="Biron" fullname="Paul V. Biron">
            <organization>Kaiser Permanente</organization>
          </author>
          <author initials="A." surname="Malhotra" fullname="Ashok Malhotra">
            <organization>Microsoft</organization>
          </author>
          <date year="2001" month="May" day="2"/>
        </front>
      </reference>
      
      <reference anchor="W3C.REC-xmlenc-core"
       target="http://www.w3.org/TR/xmlenc-core/">
        <front>
          <title>XML Encryption Syntax and Processing</title>
          <author initials="T." surname="Imamura" fullname="Takeshi Imamura">
            <organization>IBM</organization>
          </author>
          <author initials="B." surname="Dillaway" fullname="Blair Dillaway">
            <organization>Microsoft</organization>
          </author>
          <author initials="J." surname="Schaad" fullname="Jim Schaad">
            <organization>Soaring Hawk Consulting</organization>
          </author>
          <author initials="E." surname="Simon" fullname="Ed Simon">
            <organization></organization>
          </author>
          <date year="2001" month="October" day="18"/>
        </front>
      </reference>
    </references>
    
    <references title="Informative References">
      <reference anchor="Backus">
        <front>
          <title>The syntax and semantics of the proposed international algebraic
          language of the Zurich ACM-GAMM conference</title>
          <author initials="J." surname="Backus" fullname="John Backus">
            <organization>Proceedings of the International Conference on
            Information Processing (ICIP)</organization>
          </author>
          <date year="1959" month="June"/>
        </front>
      </reference>
      
      <?rfc include="reference.ANSI.X3-41.1974"?>
      <?rfc include="reference.ANSI.Z39-50.1995"?>
      <?rfc include="reference.ISO.8824.1990"?>
      <?rfc include="reference.ISO.8825.1990"?>
      <?rfc include="reference.ISO.8879.1988"?>
      <?rfc include="reference.ISO.10646-1.1993"?>
      <?rfc include="reference.I-D.mealling-iana-xmlns-registry"?>
      <?rfc include="reference.RFC.1157"?>
      <?rfc include="reference.RFC.1832"?>
      <?rfc include="reference.RFC.2045"?>
      <?rfc include="reference.RFC.2234"?>
      <?rfc include="reference.RFC.2629"?>
      <?rfc include="reference.RFC.2781"?>
      <?rfc include="reference.RFC.2821"?>
      <?rfc include="reference.RFC.3010"?>
      
      <reference anchor="W3C.REC-xml-v1"
       target="http://www.w3.org/TR/1998/REC-xml-19980210/">
        <front>
          <title>Extensible Markup Language (XML) 1.0</title>
          <author initials="T." surname="Bray" fullname="Tim Bray">
            <organization>Textuality and Netscape</organization>
          </author>
          <author initials="J." surname="Paoli" fullname="Jean Paoli">
            <organization>Microsoft</organization>
          </author>
          <author initials="C. M." surname="Sperberg-McQueen"
                  fullname="C. M. Sperberg-McQueen">
            <organization>University of Illinois at Chicago</organization>
          </author>
          <date year="1998" month="February" day="10"/>
        </front>
      </reference>
      
      <?rfc include="reference.W3C.REC-rdf-syntax"?>
      
      <reference anchor="W3C.REC-xml-protocol"
       target="http://www.w3.org/TR/xmlp-am/">
        <front>
          <title>XML Protocol Abstract Model</title>
          <author initials="S." surname="Williams" fullname="Stuart Williams">
            <organization>Hewlett-Packard Company</organization>
          </author>
          <author initials="M." surname="Jones" fullname="Mark Jones">
            <organization>AT&T Labs</organization>
          </author>
          <date year="2001" month="July" day="9"/>
        </front>
      </reference>
      
      <reference anchor="W3C.REC-RUBY"
       target="http://www.w3.org/TR/ruby/">
        <front>
          <title>Ruby Annotation</title>
          <author initials="M." surname="Suignard" fullname="Michel Suignard">
            <organization>Microsoft</organization>
          </author>
          <author initials="M." surname="Ishikawa" fullname="Masayasu Ishikawa">
            <organization>W3C</organization>
          </author>
          <author initials="M." surname="Duerst" fullname="Martin Duerst">
            <organization>W3C</organization>
          </author>
          <author initials="T." surname="Texin" fullname="Tex Texin">
            <organization>Progress Software Corp.</organization>
          </author>
          <date year="2001" month="May" day="31"/>
        </front>
      </reference>
      
      <reference anchor="W3C.REC-XHTML"
       target="http://www.w3.org/TR/xhtml1/">
        <front>
          <title>XHTML 1.0: The Extensible HyperText Markup Language</title>
          <author initials="S." surname="Pemberton" fullname="Steven Pemberton">
            <organization>CWI</organization>
          </author>
          <date year="2000" month="January" day="26"/>
        </front>
      </reference>
      
      <reference anchor="W3C.XML-points"
       target="http://www.w3.org/XML/1999/XML-in-10-points/">
        <front>
          <title>XML in 10 points</title>
          <author fullname="W3C Communications Team">
            <organization abbrev="W3C">W3C Communications Team</organization>
          </author>
          <date year="2001" month="November"/>
        </front>
      </reference>
      
      <reference anchor="W3C.WD-SOAP"
       target="http://www.w3.org/TR/soap12-part1/">
        <front>
          <title>SOAP Version 1.2 Part 1: Messaging Framework</title>
          <author initials="M." surname="Gudgin" fullname="Martin Gudgin">
            <organization>DevelopMentor</organization>
          </author>
          <author initials="M." surname="Hadley" fullname="Marc Hadley">
            <organization>Sun Microsystems</organization>
          </author>
          <author initials="J." surname="Moreau" fullname="Jean-Jacques Moreau">
            <organization>Canon</organization>
          </author>
          <author initials="H. F." surname="Nielsen"
           fullname="Henrik Frystyk Nielsen">
            <organization>Microsoft</organization>
          </author>
          <date year="2001" month="December" day="17"/>
        </front>
      </reference>
      
      <reference anchor="W3C.NOTE-UNICODE"
       target="http://www.w3.org/TR/unicode-xml/ ">
        <front>
          <title>Unicode in XML and other Markup Languages</title>
          <author initials="M." surname="Duerst" fullname="Martin Duerst">
            <organization>W3C</organization>
          </author>
          <author initials="A." surname="Freytag" fullname="Asmus Freytag">
            <organization>Unicode</organization>
          </author>
          <date year="2002" month="February" day="18"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>

