Skip to main content

The 'XML2RFC' Vocabulary
draft-reschke-xml2rfc-01

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Replaced".
Author Julian Reschke
Last updated 2013-11-19
Replaced by draft-iab-xml2rfcv2, RFC 7749
RFC stream (None)
Formats
Reviews
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-reschke-xml2rfc-01
Network Working Group                                         J. Reschke
Internet-Draft                                                greenbytes
Obsoletes: 2629 (if approved)                          November 18, 2013
Intended status: Standards Track
Expires: May 22, 2014

                        The 'XML2RFC' Vocabulary
                        draft-reschke-xml2rfc-01

Abstract

   This document defines the 'XML2RFC' vocabulary; an XML-based
   (Extensible Markup Language) language used for writing Internet
   Drafts and RFCs.

Editorial Note (To be removed by RFC Editor)

   Discussion of this draft takes place on the XML2RFC mailing list
   (xml2rfc@ietf.org), which has its home page at
   <https://www.ietf.org/mailman/listinfo/xml2rfc>.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on May 22, 2014.

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents

Reschke                   Expires May 22, 2014                  [Page 1]
Internet-Draft                   XML2RFC                   November 2013

   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
     1.1.  Syntax Notation  . . . . . . . . . . . . . . . . . . . . .  4
   2.  Elements . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
     2.1.  abstract . . . . . . . . . . . . . . . . . . . . . . . . .  4
     2.2.  address  . . . . . . . . . . . . . . . . . . . . . . . . .  4
     2.3.  annotation . . . . . . . . . . . . . . . . . . . . . . . .  5
     2.4.  area . . . . . . . . . . . . . . . . . . . . . . . . . . .  5
     2.5.  artwork  . . . . . . . . . . . . . . . . . . . . . . . . .  5
     2.6.  author . . . . . . . . . . . . . . . . . . . . . . . . . .  6
     2.7.  back . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
     2.8.  c  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7
     2.9.  city . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     2.10. code . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     2.11. country  . . . . . . . . . . . . . . . . . . . . . . . . .  8
     2.12. cref . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
     2.13. date . . . . . . . . . . . . . . . . . . . . . . . . . . .  9
     2.14. email  . . . . . . . . . . . . . . . . . . . . . . . . . .  9
     2.15. eref . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     2.16. facsimile  . . . . . . . . . . . . . . . . . . . . . . . . 10
     2.17. figure . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     2.18. format . . . . . . . . . . . . . . . . . . . . . . . . . . 12
     2.19. front  . . . . . . . . . . . . . . . . . . . . . . . . . . 12
     2.20. iref . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
     2.21. keyword  . . . . . . . . . . . . . . . . . . . . . . . . . 13
     2.22. list . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
     2.23. middle . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     2.24. note . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     2.25. organization . . . . . . . . . . . . . . . . . . . . . . . 14
     2.26. phone  . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     2.27. postal . . . . . . . . . . . . . . . . . . . . . . . . . . 15
     2.28. postamble  . . . . . . . . . . . . . . . . . . . . . . . . 15
     2.29. preamble . . . . . . . . . . . . . . . . . . . . . . . . . 15
     2.30. reference  . . . . . . . . . . . . . . . . . . . . . . . . 16
     2.31. references . . . . . . . . . . . . . . . . . . . . . . . . 16
     2.32. region . . . . . . . . . . . . . . . . . . . . . . . . . . 17
     2.33. rfc  . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
     2.34. section  . . . . . . . . . . . . . . . . . . . . . . . . . 20
     2.35. seriesInfo . . . . . . . . . . . . . . . . . . . . . . . . 21
     2.36. spanx  . . . . . . . . . . . . . . . . . . . . . . . . . . 22
     2.37. street . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Reschke                   Expires May 22, 2014                  [Page 2]
Internet-Draft                   XML2RFC                   November 2013

     2.38. t  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
     2.39. texttable  . . . . . . . . . . . . . . . . . . . . . . . . 24
     2.40. title  . . . . . . . . . . . . . . . . . . . . . . . . . . 25
     2.41. ttcol  . . . . . . . . . . . . . . . . . . . . . . . . . . 25
     2.42. uri  . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
     2.43. vspace . . . . . . . . . . . . . . . . . . . . . . . . . . 26
     2.44. workgroup  . . . . . . . . . . . . . . . . . . . . . . . . 26
     2.45. xref . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
   3.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 27
   4.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 27
   5.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 27
     5.1.  Normative References . . . . . . . . . . . . . . . . . . . 27
     5.2.  Informative References . . . . . . . . . . . . . . . . . . 28
   Appendix A.  Front Page Generation . . . . . . . . . . . . . . . . 28
     A.1.  The /rfc/@category Attribute . . . . . . . . . . . . . . . 28
     A.2.  The /rfc/@ipr Attribute  . . . . . . . . . . . . . . . . . 29
       A.2.1.  Current Values: '*trust200902' . . . . . . . . . . . . 29
       A.2.2.  Historic Values  . . . . . . . . . . . . . . . . . . . 31
   Appendix B.  Changes from RFC 2629 ('v1')  . . . . . . . . . . . . 31
     B.1.  Removed Elements . . . . . . . . . . . . . . . . . . . . . 31
     B.2.  Changed Defaults . . . . . . . . . . . . . . . . . . . . . 31
     B.3.  Changed Elements . . . . . . . . . . . . . . . . . . . . . 32
     B.4.  New Elements . . . . . . . . . . . . . . . . . . . . . . . 32
   Appendix C.  Relax NG Schema . . . . . . . . . . . . . . . . . . . 32
   Appendix D.  Proposed Future Changes for 'v3'  . . . . . . . . . . 38
   Appendix E.  Comparison Of Vocabularies (to be removed before
                publication as RFC) . . . . . . . . . . . . . . . . . 39
     E.1.  RFC 2629 ('v1') RelaxNG Grammar  . . . . . . . . . . . . . 39
     E.2.  Current ('v2') RelaxNG Grammar . . . . . . . . . . . . . . 42
   Index  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Reschke                   Expires May 22, 2014                  [Page 3]
Internet-Draft                   XML2RFC                   November 2013

1.  Introduction

   This document describes version 2 ('v2') of the 'XML2RFC' vocabulary;
   an XML language ([XML]) used for writing RFCs ([RFCSTYLE]) and
   Internet Drafts ([IDGUIDE]).

   It obsoletes the original version ("v1") [RFC2629], which contained
   the original language definition, and which was subsequently extended
   ("v2").  Furthermore, it discusses potential extensions in a future
   revision ("v3").

1.1.  Syntax Notation

   The vocabulary is defined in prose, based on the Relax NG schema
   ([RNC]) contained in Appendix C.  Note that the schema can be used
   for automated validity checks, but certain constraints are only
   described in prose.

2.  Elements

   [[anchor2: Need to fill in element and attribute descriptions.]]

2.1.  abstract

   Contains the abstract of the document.  The abstract ought to be
   self-contained and thus should not contain references or unexpanded
   abbreviations.  See Section 4.3 of [RFCSTYLE] for more information.

   This element appears as child element of: <front> (Section 2.19).

2.1.1.  Contents

   one or more <t> elements (Section 2.38)

2.2.  address

   Provides address information for the author.

   This element appears as child element of: <author> (Section 2.6).

2.2.1.  Contents

   1.  one optional <postal> element (Section 2.27)

   2.  one optional <phone> element (Section 2.26)

   3.  one optional <facsimile> element (Section 2.16)

Reschke                   Expires May 22, 2014                  [Page 4]
Internet-Draft                   XML2RFC                   November 2013

   4.  one optional <email> element (Section 2.14)

   5.  one optional <uri> element (Section 2.42)

2.3.  annotation

   This element appears as child element of: <reference> (Section 2.30).

2.3.1.  Contents

   In any order:

   o  text

   o  <xref> elements (Section 2.45)

   o  <eref> elements (Section 2.15)

   o  <iref> elements (Section 2.20)

   o  <cref> elements (Section 2.12)

   o  <spanx> elements (Section 2.36)

2.4.  area

   This element appears as child element of: <front> (Section 2.19).

2.4.1.  Contents

   text

2.5.  artwork

   This element appears as child element of: <figure> (Section 2.17).

2.5.1.  Attributes

2.5.1.1.  align

   (optional)

   Allowed values:

   o  "left" (default)

   o  "center"

Reschke                   Expires May 22, 2014                  [Page 5]
Internet-Draft                   XML2RFC                   November 2013

   o  "right"

2.5.1.2.  alt

   (optional)

2.5.1.3.  height

   (optional)

2.5.1.4.  name

   (optional)

2.5.1.5.  src

   (optional)

2.5.1.6.  type

   (optional)

2.5.1.7.  width

   (optional)

2.5.1.8.  xml:space

   (optional)

   Allowed values:

   o  "default"

   o  "preserve" (default)

2.5.2.  Contents

   text

2.6.  author

   This element appears as child element of: <front> (Section 2.19).

2.6.1.  Attributes

Reschke                   Expires May 22, 2014                  [Page 6]
Internet-Draft                   XML2RFC                   November 2013

2.6.1.1.  fullname

   (optional)

2.6.1.2.  initials

   (optional)

2.6.1.3.  role

   (optional)

   Allowed values:

   o  "editor"

2.6.1.4.  surname

   (optional)

2.6.2.  Contents

   1.  one optional <organization> element (Section 2.25)

   2.  one optional <address> element (Section 2.2)

2.7.  back

   This element appears as child element of: <rfc> (Section 2.33).

2.7.1.  Contents

   1.  optional <references> elements (Section 2.31)

   2.  optional <section> elements (Section 2.34)

2.8.  c

   This element appears as child element of: <texttable> (Section 2.39).

2.8.1.  Contents

   In any order:

   o  text

   o  <xref> elements (Section 2.45)

Reschke                   Expires May 22, 2014                  [Page 7]
Internet-Draft                   XML2RFC                   November 2013

   o  <eref> elements (Section 2.15)

   o  <iref> elements (Section 2.20)

   o  <cref> elements (Section 2.12)

   o  <spanx> elements (Section 2.36)

2.9.  city

   This element appears as child element of: <postal> (Section 2.27).

2.9.1.  Contents

   text

2.10.  code

   This element appears as child element of: <postal> (Section 2.27).

2.10.1.  Contents

   text

2.11.  country

   This element appears as child element of: <postal> (Section 2.27).

2.11.1.  Contents

   text

2.12.  cref

   This element appears as child element of: <annotation> (Section 2.3),
   <c> (Section 2.8), <postamble> (Section 2.28), <preamble>
   (Section 2.29), and <t> (Section 2.38).

2.12.1.  Attributes

2.12.1.1.  anchor

   (optional)

2.12.1.2.  source

   (optional)

Reschke                   Expires May 22, 2014                  [Page 8]
Internet-Draft                   XML2RFC                   November 2013

2.12.2.  Contents

   text

2.13.  date

   Provides information about the publication date.

   Note that this element is used both for the boilerplate of the
   document being produced, and also inside bibliographic references.

   In the first case, it defines the publication date, which, when
   producing internet drafts, will be used for computing the expiration
   date.  When "year", "month" or "day" are left out, the processor will
   attempt to use the current system date if the attributes that are
   specified do match the system date.  Note that month names need to
   match thee full (English) month name ("January", "February", "March",
   "April", "May, "June", "July", "August", "September", "October",
   "November", or "December") in order for expiration calculations to
   work.

   In the second case, the date information will be embedded as-is into
   the reference text.  Therefore, also vague dates ("ca. 2000"), date
   ranges etc. are allowed.

   This element appears as child element of: <front> (Section 2.19).

2.13.1.  Attributes

2.13.1.1.  day

   (optional)

2.13.1.2.  month

   (optional)

2.13.1.3.  year

   (optional)

2.14.  email

   This element appears as child element of: <address> (Section 2.2).

Reschke                   Expires May 22, 2014                  [Page 9]
Internet-Draft                   XML2RFC                   November 2013

2.14.1.  Contents

   text

2.15.  eref

   This element appears as child element of: <annotation> (Section 2.3),
   <c> (Section 2.8), <postamble> (Section 2.28), <preamble>
   (Section 2.29), and <t> (Section 2.38).

2.15.1.  Attributes

2.15.1.1.  target

   (mandatory)

2.15.2.  Contents

   text

2.16.  facsimile

   This element appears as child element of: <address> (Section 2.2).

2.16.1.  Contents

   text

2.17.  figure

   This element appears as child element of: <section> (Section 2.34),
   and <t> (Section 2.38).

2.17.1.  Attributes

2.17.1.1.  align

   (optional)

   Allowed values:

   o  "left" (default)

   o  "center"

   o  "right"

Reschke                   Expires May 22, 2014                 [Page 10]
Internet-Draft                   XML2RFC                   November 2013

2.17.1.2.  alt

   (optional)

2.17.1.3.  anchor

   (optional)

2.17.1.4.  height

   (optional)

2.17.1.5.  src

   (optional)

2.17.1.6.  suppress-title

   (optional)

   Allowed values:

   o  "true"

   o  "false" (default)

2.17.1.7.  title

   (optional)

2.17.1.8.  width

   (optional)

2.17.2.  Contents

   1.  optional <iref> elements (Section 2.20)

   2.  one optional <preamble> element (Section 2.29)

   3.  one <artwork> element (Section 2.5)

   4.  one optional <postamble> element (Section 2.28)

Reschke                   Expires May 22, 2014                 [Page 11]
Internet-Draft                   XML2RFC                   November 2013

2.18.  format

   This element appears as child element of: <reference> (Section 2.30).

2.18.1.  Attributes

2.18.1.1.  octets

   (optional)

2.18.1.2.  target

   (optional)

2.18.1.3.  type

   (mandatory)

2.19.  front

   This element appears as child element of: <reference> (Section 2.30),
   and <rfc> (Section 2.33).

2.19.1.  Contents

   1.  one <title> element (Section 2.40)

   2.  one or more <author> elements (Section 2.6)

   3.  one <date> element (Section 2.13)

   4.  optional <area> elements (Section 2.4)

   5.  optional <workgroup> elements (Section 2.44)

   6.  optional <keyword> elements (Section 2.21)

   7.  one optional <abstract> element (Section 2.1)

   8.  optional <note> elements (Section 2.24)

2.20.  iref

   This element appears as child element of: <annotation> (Section 2.3),
   <c> (Section 2.8), <figure> (Section 2.17), <postamble>
   (Section 2.28), <preamble> (Section 2.29), <section> (Section 2.34),
   and <t> (Section 2.38).

Reschke                   Expires May 22, 2014                 [Page 12]
Internet-Draft                   XML2RFC                   November 2013

2.20.1.  Attributes

2.20.1.1.  item

   (mandatory)

2.20.1.2.  primary

   (optional)

   Allowed values:

   o  "true"

   o  "false" (default)

2.20.1.3.  subitem

   (optional)

2.21.  keyword

   This element appears as child element of: <front> (Section 2.19).

2.21.1.  Contents

   text

2.22.  list

   This element appears as child element of: <t> (Section 2.38).

2.22.1.  Attributes

2.22.1.1.  counter

   (optional)

2.22.1.2.  hangIndent

   (optional)

2.22.1.3.  style

   (optional)

Reschke                   Expires May 22, 2014                 [Page 13]
Internet-Draft                   XML2RFC                   November 2013

2.22.2.  Contents

   one or more <t> elements (Section 2.38)

2.23.  middle

   This element appears as child element of: <rfc> (Section 2.33).

2.23.1.  Contents

   one or more <section> elements (Section 2.34)

2.24.  note

   This element appears as child element of: <front> (Section 2.19).

2.24.1.  Attributes

2.24.1.1.  title

   (mandatory)

2.24.2.  Contents

   one or more <t> elements (Section 2.38)

2.25.  organization

   This element appears as child element of: <author> (Section 2.6).

2.25.1.  Attributes

2.25.1.1.  abbrev

   (optional)

2.25.2.  Contents

   text

2.26.  phone

   This element appears as child element of: <address> (Section 2.2).

2.26.1.  Contents

   text

Reschke                   Expires May 22, 2014                 [Page 14]
Internet-Draft                   XML2RFC                   November 2013

2.27.  postal

   This element appears as child element of: <address> (Section 2.2).

2.27.1.  Contents

   1.  one or more <street> elements (Section 2.37)

   2.  In any order:

       *  <city> elements (Section 2.9)

       *  <region> elements (Section 2.32)

       *  <code> elements (Section 2.10)

       *  <country> elements (Section 2.11)

2.28.  postamble

   This element appears as child element of: <figure> (Section 2.17),
   and <texttable> (Section 2.39).

2.28.1.  Contents

   In any order:

   o  text

   o  <xref> elements (Section 2.45)

   o  <eref> elements (Section 2.15)

   o  <iref> elements (Section 2.20)

   o  <cref> elements (Section 2.12)

   o  <spanx> elements (Section 2.36)

2.29.  preamble

   This element appears as child element of: <figure> (Section 2.17),
   and <texttable> (Section 2.39).

2.29.1.  Contents

   In any order:

Reschke                   Expires May 22, 2014                 [Page 15]
Internet-Draft                   XML2RFC                   November 2013

   o  text

   o  <xref> elements (Section 2.45)

   o  <eref> elements (Section 2.15)

   o  <iref> elements (Section 2.20)

   o  <cref> elements (Section 2.12)

   o  <spanx> elements (Section 2.36)

2.30.  reference

   This element appears as child element of: <references>
   (Section 2.31).

2.30.1.  Attributes

2.30.1.1.  anchor

   (optional)

2.30.1.2.  target

   (optional)

2.30.2.  Contents

   1.  one <front> element (Section 2.19)

   2.  optional <seriesInfo> elements (Section 2.35)

   3.  optional <format> elements (Section 2.18)

   4.  optional <annotation> elements (Section 2.3)

2.31.  references

   This element appears as child element of: <back> (Section 2.7).

2.31.1.  Attributes

2.31.1.1.  title

   (optional)

Reschke                   Expires May 22, 2014                 [Page 16]
Internet-Draft                   XML2RFC                   November 2013

2.31.2.  Contents

   one or more <reference> elements (Section 2.30)

2.32.  region

   This element appears as child element of: <postal> (Section 2.27).

2.32.1.  Contents

   text

2.33.  rfc

   This is the root element of the xml2rfc vocabulary.

   Processors distinguish between RFC mode ("number" attribute being
   present) and Internet-Draft mode ("docname" attribute being present).
   It is invalid to specify both.  Setting neither can be useful for
   producing other types of document (but is out-of-scope for this
   specification).

2.33.1.  Attributes

2.33.1.1.  category

   (optional)

   Document category (see Appendix A.1).

   Allowed values:

   o  "std"

   o  "bcp"

   o  "info"

   o  "exp"

   o  "historic"

2.33.1.2.  consensus

   (optional)

   Affects the generated boilerplate.

Reschke                   Expires May 22, 2014                 [Page 17]
Internet-Draft                   XML2RFC                   November 2013

   See [RFC5741] for more information.

   Allowed values:

   o  "no"

   o  "yes"

2.33.1.3.  docName

   (optional)

   For Internet Drafts, this specifies the draft name (which appears
   below the title).

   Note that the file extension is not part of the draft, so in general
   it should end with the current draft number ("-", plus two digits).

   Furthermore, it is good practice to disambiguate current editor
   copies from submitted drafts (for instance, by replacing the draft
   number with the string "latest").

   See Section 7 of [IDGUIDE] for further information.

2.33.1.4.  ipr

   (optional)

   Represents the Intellectual Property status of the document.  See
   Appendix A.2 for details.

   Allowed values:

   o  "full2026"

   o  "noDerivativeWorks2026"

   o  "none"

   o  "full3667"

   o  "noModification3667"

   o  "noDerivatives3667"

   o  "full3978"

Reschke                   Expires May 22, 2014                 [Page 18]
Internet-Draft                   XML2RFC                   November 2013

   o  "noModification3978"

   o  "noDerivatives3978"

   o  "trust200811"

   o  "noModificationTrust200811"

   o  "noDerivativesTrust200811"

   o  "trust200902"

   o  "noModificationTrust200902"

   o  "noDerivativesTrust200902"

   o  "pre5378Trust200902"

2.33.1.5.  iprExtract

   (optional)

   Identifies a Section within the document for which extraction "as-is"
   is explicitly allowed (only relevant for historic values of the "ipr"
   attribute).

2.33.1.6.  number

   (optional)

   The number of the RFC to be produced.

2.33.1.7.  obsoletes

   (optional)

   A comma-separated list of RFC _numbers_ or Internet-Draft names.

2.33.1.8.  seriesNo

   (optional)

   When producing a document within document series (such as "STD"): the
   number within that series.

Reschke                   Expires May 22, 2014                 [Page 19]
Internet-Draft                   XML2RFC                   November 2013

2.33.1.9.  submissionType

   (optional)

   The document stream.

   See Section 2 of [RFC5741] for details.

   Allowed values:

   o  "IETF" (default)

   o  "IAB"

   o  "IRTF"

   o  "independent"

2.33.1.10.  updates

   (optional)

   A comma-separated list of RFC _numbers_ or Internet-Draft names.

2.33.1.11.  xml:lang

   (optional)

   The natural language used in the document (defaults to "en").

   See Section 2.12 of [XML] for more information.

2.33.2.  Contents

   1.  one <front> element (Section 2.19)

   2.  one <middle> element (Section 2.23)

   3.  one optional <back> element (Section 2.7)

2.34.  section

   This element appears as child element of: <back> (Section 2.7),
   <middle> (Section 2.23), and <section> (Section 2.34).

Reschke                   Expires May 22, 2014                 [Page 20]
Internet-Draft                   XML2RFC                   November 2013

2.34.1.  Attributes

2.34.1.1.  anchor

   (optional)

2.34.1.2.  title

   (mandatory)

2.34.1.3.  toc

   (optional)

   Allowed values:

   o  "include"

   o  "exclude"

   o  "default" (default)

2.34.2.  Contents

   1.  In any order:

       *  <t> elements (Section 2.38)

       *  <figure> elements (Section 2.17)

       *  <texttable> elements (Section 2.39)

       *  <iref> elements (Section 2.20)

   2.  optional <section> elements (Section 2.34)

2.35.  seriesInfo

   Names the document series in which this document appears, and also
   specifies an identifier within that series.

   This element appears as child element of: <reference> (Section 2.30).

2.35.1.  Attributes

Reschke                   Expires May 22, 2014                 [Page 21]
Internet-Draft                   XML2RFC                   November 2013

2.35.1.1.  name

   (mandatory)

   The name of the series.

   The following names trigger specific processing (such as for auto-
   generating links, and adding descriptions such as "work in
   progress"): "BCP", "FYI", "Internet-Draft", "RFC", and "STD".

2.35.1.2.  value

   (mandatory)

   The identifier within the series specified by the "name" attribute.

   For BCPs, FYIs, RFCs, and STDs this is the number within the series.
   For Internet Drafts, it is the full draft name (ending with the two-
   digit version number).

2.36.  spanx

   This element appears as child element of: <annotation> (Section 2.3),
   <c> (Section 2.8), <postamble> (Section 2.28), <preamble>
   (Section 2.29), and <t> (Section 2.38).

2.36.1.  Attributes

2.36.1.1.  style

   (optional)

2.36.1.2.  xml:space

   (optional)

   Allowed values:

   o  "default"

   o  "preserve" (default)

2.36.2.  Contents

   text

Reschke                   Expires May 22, 2014                 [Page 22]
Internet-Draft                   XML2RFC                   November 2013

2.37.  street

   This element appears as child element of: <postal> (Section 2.27).

2.37.1.  Contents

   text

2.38.  t

   This element appears as child element of: <abstract> (Section 2.1),
   <list> (Section 2.22), <note> (Section 2.24), and <section>
   (Section 2.34).

2.38.1.  Attributes

2.38.1.1.  anchor

   (optional)

2.38.1.2.  hangText

   (optional)

2.38.2.  Contents

   In any order:

   o  text

   o  <list> elements (Section 2.22)

   o  <figure> elements (Section 2.17)

   o  <xref> elements (Section 2.45)

   o  <eref> elements (Section 2.15)

   o  <iref> elements (Section 2.20)

   o  <cref> elements (Section 2.12)

   o  <spanx> elements (Section 2.36)

   o  <vspace> elements (Section 2.43)

Reschke                   Expires May 22, 2014                 [Page 23]
Internet-Draft                   XML2RFC                   November 2013

2.39.  texttable

   This element appears as child element of: <section> (Section 2.34).

2.39.1.  Attributes

2.39.1.1.  align

   (optional)

   Allowed values:

   o  "left"

   o  "center" (default)

   o  "right"

2.39.1.2.  anchor

   (optional)

2.39.1.3.  style

   (optional)

   Allowed values:

   o  "all"

   o  "none"

   o  "headers"

   o  "full" (default)

2.39.1.4.  suppress-title

   (optional)

   Allowed values:

   o  "true"

   o  "false" (default)

Reschke                   Expires May 22, 2014                 [Page 24]
Internet-Draft                   XML2RFC                   November 2013

2.39.1.5.  title

   (optional)

2.39.2.  Contents

   1.  one optional <preamble> element (Section 2.29)

   2.  one or more <ttcol> elements (Section 2.41)

   3.  optional <c> elements (Section 2.8)

   4.  one optional <postamble> element (Section 2.28)

2.40.  title

   This element appears as child element of: <front> (Section 2.19).

2.40.1.  Attributes

2.40.1.1.  abbrev

   (optional)

2.40.2.  Contents

   text

2.41.  ttcol

   This element appears as child element of: <texttable> (Section 2.39).

2.41.1.  Attributes

2.41.1.1.  align

   (optional)

   Allowed values:

   o  "left" (default)

   o  "center"

   o  "right"

Reschke                   Expires May 22, 2014                 [Page 25]
Internet-Draft                   XML2RFC                   November 2013

2.41.1.2.  width

   (optional)

2.41.2.  Contents

   text

2.42.  uri

   This element appears as child element of: <address> (Section 2.2).

2.42.1.  Contents

   text

2.43.  vspace

   This element appears as child element of: <t> (Section 2.38).

2.43.1.  Attributes

2.43.1.1.  blankLines

   (optional)

2.44.  workgroup

   This element appears as child element of: <front> (Section 2.19).

2.44.1.  Contents

   text

2.45.  xref

   This element appears as child element of: <annotation> (Section 2.3),
   <c> (Section 2.8), <postamble> (Section 2.28), <preamble>
   (Section 2.29), and <t> (Section 2.38).

2.45.1.  Attributes

2.45.1.1.  format

   (optional)

   Allowed values:

Reschke                   Expires May 22, 2014                 [Page 26]
Internet-Draft                   XML2RFC                   November 2013

   o  "counter"

   o  "title"

   o  "none"

   o  "default" (default)

2.45.1.2.  pageno

   (optional)

   Allowed values:

   o  "true"

   o  "false" (default)

2.45.1.3.  target

   (mandatory)

2.45.2.  Contents

   text

3.  IANA Considerations

   [[anchor66: Register application/xml2rfc+xml.]]

4.  Acknowledgments

   We thank Marshall T. Rose for both the original design and the
   reference implementation of the "xml2rfc" formatter.

5.  References

5.1.  Normative References

   [XML]       Maler, E., Yergeau, F., Paoli, J., Sperberg-McQueen, M.,
               and T. Bray, "Extensible Markup Language (XML) 1.0 (Fifth
               Edition)", W3C Recommendation REC-xml-20081126,
               November 2008,
               <http://www.w3.org/TR/2008/REC-xml-20081126/>.

               Latest version available at <http://www.w3.org/TR/xml>.

Reschke                   Expires May 22, 2014                 [Page 27]
Internet-Draft                   XML2RFC                   November 2013

5.2.  Informative References

   [IDGUIDE]   Housley, R., "Guidelines to Authors of Internet-Drafts",
               December 2010,
               <http://www.ietf.org/id-info/guidelines.html>.

   [RFC2026]   Bradner, S., "The Internet Standards Process -- Revision
               3", BCP 9, RFC 2026, October 1996.

   [RFC2629]   Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
               June 1999.

   [RFC5741]   Daigle, L. and O. Kolkman, "RFC Streams, Headers, and
               Boilerplates", RFC 5741, December 2009.

   [RFCSTYLE]  Braden, R., Ginoza, S., and A. Hagens, "RFC Document
               Style (draft 09)", September 2009,
               <http://www.rfc-editor.org/rfc-style-guide/rfc-style>.

   [RNC]       Clark, J., "RELAX NG Compact Syntax", OASIS ,
               November 2002, <http://www.oasis-open.org/committees/
               relax-ng/compact-20021121.html>.

   [TLP2.0]    IETF Trust, "Legal Provisions Relating to IETF
               Documents", February 2009, <http://trustee.ietf.org/
               license-info/IETF-Trust-License-Policy-20090215.htm>.

   [TLP3.0]    IETF Trust, "Legal Provisions Relating to IETF
               Documents", September 2009, <http://trustee.ietf.org/
               license-info/IETF-Trust-License-Policy-20090912.htm>.

   [TLP4.0]    IETF Trust, "Legal Provisions Relating to IETF
               Documents", December 2009, <http://trustee.ietf.org/
               license-info/IETF-Trust-License-Policy-20091228.htm>.

Appendix A.  Front Page Generation

A.1.  The /rfc/@category Attribute

   For RFCs, the "category" determines the "maturity level" (see Section
   4 of [RFC2026]).  The allowed values are "std" for "Standards Track",
   "bcp" for "BCP", "info" for "Informational", "exp" for
   "Experimental", and "historic" for - surprise - "Historic".

   For Internet Drafts, the category attribute is not needed, but _will_
   appear on the front page ("Intended Status").  Supplying this
   information can be useful, because reviewers may want to know.

Reschke                   Expires May 22, 2014                 [Page 28]
Internet-Draft                   XML2RFC                   November 2013

A.2.  The /rfc/@ipr Attribute

   As of the time of this writing, this attribute value can take a long
   list of values.  As frequently, this is not the result of a grand
   plan, but simply for historic reasons.  Of these values, only a few
   are currently in use; all others are supported by the various tools
   for backwards compatibility with old source files.

      Note: some variations of the boilerplate are selected based on the
      document's date; therefore it is important to specify the "year",
      "month" and "day" attributes of the "<date>" element when
      archiving the XML source of an Internet Draft on the day of
      submission.

   _Disclaimer: THIS ONLY PROVIDES IMPLEMENTATION INFORMATION.  IF YOU
   NEED LEGAL ADVICE, PLEASE CONTACT A LAWYER._ For further information,
   refer to <http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf>.

   Finally, for the current "Status Of This Memo" text, the
   "submissionType" attribute determines whether a statement about "Code
   Components" is inserted (this is the case for the value "IETF", which
   also happens to be the default).  Other values, such as
   "independent", suppress this part of the text.

A.2.1.  Current Values: '*trust200902'

   The name for these values refers to the "TLP" ("IETF TRUST Legal
   Provisions Relating to IETF Documents"), on effect February 15, 2009
   ([TLP2.0]).  Updates to this document were published on September 12,
   2009 ([TLP3.0]) and on December 28, 2009 ([TLP4.0]), modifying the
   license for code components (see
   <http://trustee.ietf.org/license-info/> for further information).
   The actual text is located in Section 6 ("Text To Be Included in IETF
   Documents") of these documents.

   The tools will automatically produce the "right" text depending on
   the document's date information (see above):

   +----------+--------------------------------+
   | TLP      | starting with publication date |
   +----------+--------------------------------+
   | [TLP3.0] | 2009-11-01                     |
   | [TLP4.0] | 2010-04-01                     |
   +----------+--------------------------------+

Reschke                   Expires May 22, 2014                 [Page 29]
Internet-Draft                   XML2RFC                   November 2013

A.2.1.1.  trust200902

   This should be the default, unless one of the more specific
   '*trust200902' values is a better fit.  It produces the text in
   Sections 6.a and 6.b of the TLP.

A.2.1.2.  noModificationTrust200902

   This produces the additional text from Section 6.c.i of the TLP:

      This document may not be modified, and derivative works of it may
      not be created, except to format it for publication as an RFC or
      to translate it into languages other than English.

      Note: this clause is incompatible with RFCs to be published on the
      Standards Track.

A.2.1.3.  noDerivativesTrust200902

   This produces the additional text from Section 6.c.ii of the TLP:

      This document may not be modified, and derivative works of it may
      not be created, and it may not be published except as an Internet-
      Draft.

      Note: this clause is incompatible with RFCs to be published on the
      Standards Track.

A.2.1.4.  pre5378Trust200902

   This produces the additional text from Section 6.c.iii of the TLP,
   frequently called the "pre-5378 escape clause":

      This document may contain material from IETF Documents or IETF
      Contributions published or made publicly available before November
      10, 2008.  The person(s) controlling the copyright in some of this
      material may not have granted the IETF Trust the right to allow
      modifications of such material outside the IETF Standards Process.
      Without obtaining an adequate license from the person(s)
      controlling the copyright in such materials, this document may not
      be modified outside the IETF Standards Process, and derivative
      works of it may not be created outside the IETF Standards Process,
      except to format it for publication as an RFC or to translate it
      into languages other than English.

   See Section 4 of
   <http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf> for further
   information about when to use this value.

Reschke                   Expires May 22, 2014                 [Page 30]
Internet-Draft                   XML2RFC                   November 2013

      Note: this text appears under "Copyright Notice", unless the
      document was published before November 2009, in which case it
      appears under "Status Of This Memo".

A.2.2.  Historic Values

A.2.2.1.  Historic Values: '*trust200811'

   The attribute values "trust200811", "noModificationTrust200811" and
   "noDerivativesTrust200811" are similar to their "trust200902"
   counterparts, except that they use text specified in <http://
   trustee.ietf.org/license-info/archive/
   IETF-Trust-License-Policy_11-10-08.pdf>.

A.2.2.2.  Historic Values: '*3978'

   The attribute values "full3978", "noModification3978" and
   "noDerivatives3978" are similar to their counterparts above, except
   that they use text specified in RFC 3978 (March 2005).

A.2.2.3.  Historic Values: '*3667'

   The attribute values "full3667", "noModification3667" and
   "noDerivatives3667" are similar to their counterparts above, except
   that they use text specified in RFC 3667 (February 2004).

A.2.2.4.  Historic Values: '*2026'

   The attribute values "full2026" and "noDerivativeWorks2026" are
   similar to their counterparts above, except that they use text
   specified in RFC 2026 (October 1996).

   The special value "none" was also used back then, and denied the IETF
   any rights beyond publication as Internet Draft.

Appendix B.  Changes from RFC 2629 ('v1')

B.1.  Removed Elements

   The <appendix> element has been removed; to generate an appendix,
   place a <section> inside <back>.

B.2.  Changed Defaults

   Many attributes have lost their "default" value; this is to avoid
   having document semantics differ based on whether a DTD was specified
   and evaluated.  Processors will handle absent values the way the
   default value was specified before.

Reschke                   Expires May 22, 2014                 [Page 31]
Internet-Draft                   XML2RFC                   November 2013

B.3.  Changed Elements

   <artwork>: Has a set of new attributes: "name", "type", "src",
   "align", "alt", "width", and "height".  (Section 2.5)

   <author>: The <organization> element is now optional.  The "role"
   attribute was added.  (Section 2.6)

   <date>: All attributes are now optional.  (Section 2.13)

   <figure>: Has a set of new attributes: "suppress-title", "src",
   "align", "alt", "width", and "height".  (Section 2.17)

   <iref>: Has a new "primary" attribute.  (Section 2.20)

   <list>: The "style" attribute isn't restricted to a set of enumerated
   values anymore.  The "hangIndent" and "counter" attributes have been
   added.  (Section 2.22)

   <rfc>: The "ipr" attribute has gained additional values.  The
   attributes "consensus", "iprExtract", "submissionType", and "xml:
   lang" have been added.  (Section 2.33)

   <reference>: <annotation> allows adding prose to a reference.
   (Section 2.30)

   <references>: Can now appear multiple times, and carry a "title"
   attribute (so that normative and informative references can be
   split).  (Section 2.31)

   <section>: The new "toc" attribute controls whether it will appear in
   the Table Of Contents. <iref> can now appear as direct child element.
   (Section 2.34)

   <t>: The "anchor" attribute can now be used as well, however there
   are restrictions on how they can be referred to.  (Section 2.38)

B.4.  New Elements

   The following elements have been added: <annotation> (Section 2.3),
   <c> (Section 2.8), <cref> (Section 2.12), <format> (Section 2.18),
   <spanx> (Section 2.36), <texttable> (Section 2.39).

Appendix C.  Relax NG Schema

   namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"

Reschke                   Expires May 22, 2014                 [Page 32]
Internet-Draft                   XML2RFC                   November 2013

   NUMBER = string
   NUMBERS = string
   DAY = string
   MONTH = string
   YEAR = string
   URI = string
   ATEXT = string
   CTEXT = text
   TEXT = text
   rfc =
     element rfc {
       attribute number { NUMBER }?,
       [ a:defaultValue = "" ] attribute obsoletes { NUMBERS }?,
       [ a:defaultValue = "" ] attribute updates { NUMBERS }?,
       attribute category { "std" | "bcp" | "info" | "exp" | "historic"
   }?,
       attribute consensus { "no" | "yes" }?,
       attribute seriesNo { NUMBER }?,
       attribute ipr {
         "full2026"
         | "noDerivativeWorks2026"
         | "none"
         | "full3667"
         | "noModification3667"
         | "noDerivatives3667"
         | "full3978"
         | "noModification3978"
         | "noDerivatives3978"
         | "trust200811"
         | "noModificationTrust200811"
         | "noDerivativesTrust200811"
         | "trust200902"
         | "noModificationTrust200902"
         | "noDerivativesTrust200902"
         | "pre5378Trust200902"
       }?,
       attribute iprExtract { xsd:IDREF }?,
       [ a:defaultValue = "IETF" ]
       attribute submissionType {
         "IETF" | "IAB" | "IRTF" | "independent"
       }?,
       attribute docName { ATEXT }?,
       [ a:defaultValue = "en" ] attribute xml:lang { ATEXT }?,
       front,
       middle,
       back?
     }
   front =

Reschke                   Expires May 22, 2014                 [Page 33]
Internet-Draft                   XML2RFC                   November 2013

     element front {
       title, author+, date, area*, workgroup*, keyword*, abstract?,
   note*
     }
   title =
     element title {
       attribute abbrev { ATEXT }?,
       CTEXT
     }
   author =
     element author {
       attribute initials { ATEXT }?,
       attribute surname { ATEXT }?,
       attribute fullname { ATEXT }?,
       attribute role { "editor" }?,
       organization?,
       address?
     }
   organization =
     element organization {
       attribute abbrev { ATEXT }?,
       CTEXT
     }
   address = element address { postal?, phone?, facsimile?, email?,
   uri? }
   postal = element postal { street+, (city | region | code | country)*
   }
   street = element street { CTEXT }
   city = element city { CTEXT }
   region = element region { CTEXT }
   code = element code { CTEXT }
   country = element country { CTEXT }
   phone = element phone { CTEXT }
   facsimile = element facsimile { CTEXT }
   email = element email { CTEXT }
   uri = element uri { CTEXT }
   date =
     element date {
       attribute day { DAY }?,
       attribute month { MONTH }?,
       attribute year { YEAR }?,
       empty
     }
   area = element area { CTEXT }
   workgroup = element workgroup { CTEXT }
   keyword = element keyword { CTEXT }
   abstract = element abstract { t+ }
   note =

Reschke                   Expires May 22, 2014                 [Page 34]
Internet-Draft                   XML2RFC                   November 2013

     element note {
       attribute title { ATEXT },
       t+
     }
   middle = element middle { section+ }
   section =
     element section {
       attribute anchor { xsd:ID }?,
       attribute title { ATEXT },
       [ a:defaultValue = "default" ]
       attribute toc { "include" | "exclude" | "default" }?,
       (t | figure | texttable | iref)*,
       section*
     }
   t =
     element t {
       attribute anchor { xsd:ID }?,
       attribute hangText { ATEXT }?,
       (TEXT
        | \list
        | figure
        | xref
        | eref
        | iref
        | cref
        | spanx
        | vspace)*
     }
   \list =
     element list {
       attribute style { ATEXT }?,
       attribute hangIndent { NUMBER }?,
       attribute counter { ATEXT }?,
       t+
     }
   xref =
     element xref {
       attribute target { xsd:IDREF },
       [ a:defaultValue = "false" ] attribute pageno { "true" | "false"
   }?,
       [ a:defaultValue = "default" ]
       attribute format { "counter" | "title" | "none" | "default" }?,
       CTEXT
     }
   eref =
     element eref {
       attribute target { URI },
       CTEXT

Reschke                   Expires May 22, 2014                 [Page 35]
Internet-Draft                   XML2RFC                   November 2013

     }
   iref =
     element iref {
       attribute item { ATEXT },
       [ a:defaultValue = "" ] attribute subitem { ATEXT }?,
       [ a:defaultValue = "false" ]
       attribute primary { "true" | "false" }?,
       empty
     }
   cref =
     element cref {
       attribute anchor { xsd:ID }?,
       attribute source { ATEXT }?,
       CTEXT
     }
   spanx =
     element spanx {
       [ a:defaultValue = "preserve" ]
       attribute xml:space { "default" | "preserve" }?,
       [ a:defaultValue = "emph" ] attribute style { ATEXT }?,
       CTEXT
     }
   vspace =
     element vspace {
       [ a:defaultValue = "0" ] attribute blankLines { NUMBER }?,
       empty
     }
   figure =
     element figure {
       attribute anchor { xsd:ID }?,
       [ a:defaultValue = "" ] attribute title { ATEXT }?,
       [ a:defaultValue = "false" ]
       attribute suppress-title { "true" | "false" }?,
       attribute src { URI }?,
       [ a:defaultValue = "left" ]
       attribute align { "left" | "center" | "right" }?,
       [ a:defaultValue = "" ] attribute alt { ATEXT }?,
       [ a:defaultValue = "" ] attribute width { ATEXT }?,
       [ a:defaultValue = "" ] attribute height { ATEXT }?,
       iref*,
       preamble?,
       artwork,
       postamble?
     }
   preamble =
     element preamble { (TEXT | xref | eref | iref | cref | spanx)* }
   artwork =
     element artwork {

Reschke                   Expires May 22, 2014                 [Page 36]
Internet-Draft                   XML2RFC                   November 2013

       [ a:defaultValue = "preserve" ]
       attribute xml:space { "default" | "preserve" }?,
       [ a:defaultValue = "" ] attribute name { ATEXT }?,
       [ a:defaultValue = "" ] attribute type { ATEXT }?,
       attribute src { URI }?,
       [ a:defaultValue = "left" ]
       attribute align { "left" | "center" | "right" }?,
       [ a:defaultValue = "" ] attribute alt { ATEXT }?,
       [ a:defaultValue = "" ] attribute width { ATEXT }?,
       [ a:defaultValue = "" ] attribute height { ATEXT }?,
       TEXT*
     }
   postamble =
     element postamble { (TEXT | xref | eref | iref | cref | spanx)* }
   texttable =
     element texttable {
       attribute anchor { xsd:ID }?,
       [ a:defaultValue = "" ] attribute title { ATEXT }?,
       [ a:defaultValue = "false" ]
       attribute suppress-title { "true" | "false" }?,
       [ a:defaultValue = "center" ]
       attribute align { "left" | "center" | "right" }?,
       [ a:defaultValue = "full" ]
       attribute style { "all" | "none" | "headers" | "full" }?,
       preamble?,
       ttcol+,
       c*,
       postamble?
     }
   ttcol =
     element ttcol {
       attribute width { ATEXT }?,
       [ a:defaultValue = "left" ]
       attribute align { "left" | "center" | "right" }?,
       CTEXT
     }
   c = element c { (TEXT | xref | eref | iref | cref | spanx)* }
   back = element back { references*, section* }
   references =
     element references {
       [ a:defaultValue = "References" ] attribute title { ATEXT }?,
       reference+
     }
   reference =
     element reference {
       attribute anchor { xsd:ID }?,
       attribute target { URI }?,
       front,

Reschke                   Expires May 22, 2014                 [Page 37]
Internet-Draft                   XML2RFC                   November 2013

       seriesInfo*,
       format*,
       annotation*
     }
   seriesInfo =
     element seriesInfo {
       attribute name { ATEXT },
       attribute value { ATEXT },
       empty
     }
   format =
     element format {
       attribute target { URI }?,
       attribute type { ATEXT },
       attribute octets { NUMBER }?,
       empty
     }
   annotation =
     element annotation { (TEXT | xref | eref | iref | cref | spanx)* }
   start = rfc

Appendix D.  Proposed Future Changes for 'v3'

   [[anchor74: The list below is just a starting point.]]

   Allow multiple paragraphs in list items; eliminating the need to use
   <vspace> (see <http://greenbytes.de/tech/webdav/rfc2629xslt/
   rfc2629xslt.html#ext.element.lt>).

   Make the <date> element optional; all of its content is optional
   already.

   Deprecate or remove the <format> element; right now it's not used for
   the generation of the plain text document anyway.

   Allow <reference>s that identify a document set such as a BCP.

   Allow overriding the "anchor" attribute of an included <reference>
   element.

   Add a way to add prose to a reference that avoids abuse of
   <seriesInfo>.

   Extend <xref> so that subsection/anchors can be specified (see <http:
   //greenbytes.de/tech/webdav/rfc2629xslt/
   rfc2629xslt.html#ext-rfc2629.xref>).  Remove the "pageno" attribute
   which seems to be both undocumented and non-functional.

Reschke                   Expires May 22, 2014                 [Page 38]
Internet-Draft                   XML2RFC                   November 2013

   Extend <figure> to support different types of artwork (such as by
   specifying certain type attribute values, see <http://greenbytes.de/
   tech/webdav/rfc2629xslt/rfc2629xslt.html#artwork.types>), and also
   avoid having to markup code (such as ABNF) as "artwork".  Also, it
   would be good if "code components" could be marked as such.  Finally,
   even in preformatted text use of markup could be useful to support
   (a) references, or (b) highlighting the important bits (<http://
   greenbytes.de/tech/webdav/rfc2629xslt/
   rfc2629xslt.html#ext-rfc2629.artwork>).

   If contact information is changed to allow non-ASCII characters: add
   a place for a ASCII fallback (probably just for the author names).

   The content model for <postal> ought to be more strict to allow at
   most one of <city>, <region>, <code>, and <country>.

   Cleanup the set of overlapping attributes between <figure> and
   <artwork>.

   <spanx> has both a weird whitespace model ("preserve") and
   problematic styling.  Consider to deprecate it in favor of elements
   such as <em> and <code>.

   Extend the concept of language tagging to at least examples and
   contact information to address potential japanese/chinese font
   confusion.

Appendix E.  Comparison Of Vocabularies (to be removed before
             publication as RFC)

   With comments being stripped; using "diff -C100" to add change marks.

E.1.  RFC 2629 ('v1') RelaxNG Grammar

   (from Appendix B of [RFC2629], converted using "trang" into Relag NG
   Compact Notation [RNC])

  namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"

  NUMBER = string
  NUMBERS = string
  DAY = string
  MONTH = string
  YEAR = string
  URI = string
  ATEXT = string
  CTEXT = text
  TEXT = text

Reschke                   Expires May 22, 2014                 [Page 39]
Internet-Draft                   XML2RFC                   November 2013

  rfc =
    element rfc {
      attribute number { NUMBER }?,
      [ a:defaultValue = "" ] attribute obsoletes { NUMBERS }?,
      [ a:defaultValue = "" ] attribute updates { NUMBERS }?,
-     [ a:defaultValue = "info" ]
      attribute category { "std" | "bcp" | "info" | "exp" | "historic" }?,
      attribute seriesNo { NUMBER }?,
!     attribute ipr { "full2026" | "noDerivativeWorks2026" | "none" }?,
      attribute docName { ATEXT }?,
      front,
      middle,
      back?
    }
  front =
    element front {
      title, author+, date, area*, workgroup*, keyword*, abstract?, note*
    }
  title =
    element title {
      attribute abbrev { ATEXT }?,
      CTEXT
    }
  author =
    element author {
      attribute initials { ATEXT }?,
      attribute surname { ATEXT }?,
      attribute fullname { ATEXT }?,
!     organization,
      address?
    }
  organization =
    element organization {
      attribute abbrev { ATEXT }?,
      CTEXT
    }
  address = element address { postal?, phone?, facsimile?, email?, uri? }
  postal = element postal { street+, (city | region | code | country)* }
  street = element street { CTEXT }
  city = element city { CTEXT }
  region = element region { CTEXT }
  code = element code { CTEXT }
  country = element country { CTEXT }
  phone = element phone { CTEXT }
  facsimile = element facsimile { CTEXT }
  email = element email { CTEXT }
  uri = element uri { CTEXT }
  date =

Reschke                   Expires May 22, 2014                 [Page 40]
Internet-Draft                   XML2RFC                   November 2013

    element date {
      attribute day { DAY }?,
!     attribute month { MONTH },
!     attribute year { YEAR },
      empty
    }
  area = element area { CTEXT }
  workgroup = element workgroup { CTEXT }
  keyword = element keyword { CTEXT }
  abstract = element abstract { t+ }
  note =
    element note {
      attribute title { ATEXT },
      t+
    }
  middle = element middle { section+ }
  section =
    element section {
      attribute anchor { xsd:ID }?,
      attribute title { ATEXT },
!     (t | figure | section)*
    }
  t =
    element t {
      attribute hangText { ATEXT }?,
!     (TEXT | \list | figure | xref | eref | iref | vspace)*
    }
  \list =
    element list {
!     [ a:defaultValue = "empty" ]
!     attribute style { "numbers" | "symbols" | "hanging" | "empty" }?,
      t+
    }
  xref =
    element xref {
      attribute target { xsd:IDREF },
      [ a:defaultValue = "false" ] attribute pageno { "true" | "false" }?,
      CTEXT
    }
  eref =
    element eref {
      attribute target { URI },
      CTEXT
    }
  iref =
    element iref {
      attribute item { ATEXT },
      [ a:defaultValue = "" ] attribute subitem { ATEXT }?,

Reschke                   Expires May 22, 2014                 [Page 41]
Internet-Draft                   XML2RFC                   November 2013

      empty
    }
  vspace =
    element vspace {
      [ a:defaultValue = "0" ] attribute blankLines { NUMBER }?,
      empty
    }
  figure =
    element figure {
      attribute anchor { xsd:ID }?,
      [ a:defaultValue = "" ] attribute title { ATEXT }?,
      preamble?,
      artwork,
      postamble?
    }
! preamble = element preamble { (TEXT | xref | eref | iref)* }
  artwork =
    element artwork {
      [ a:defaultValue = "preserve" ]
      attribute xml:space { "default" | "preserve" }?,
      TEXT*
    }
! postamble = element postamble { (TEXT | xref | eref | iref)* }
! back = element back { references?, section* }
! references = element references { reference+ }
  reference =
    element reference {
      attribute anchor { xsd:ID }?,
      attribute target { URI }?,
      front,
!     seriesInfo*
    }
  seriesInfo =
    element seriesInfo {
      attribute name { ATEXT },
      attribute value { ATEXT },
      empty
    }
  start = rfc

E.2.  Current ('v2') RelaxNG Grammar

  namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"

  NUMBER = string
  NUMBERS = string
  DAY = string
  MONTH = string

Reschke                   Expires May 22, 2014                 [Page 42]
Internet-Draft                   XML2RFC                   November 2013

  YEAR = string
  URI = string
  ATEXT = string
  CTEXT = text
  TEXT = text
  rfc =
    element rfc {
      attribute number { NUMBER }?,
      [ a:defaultValue = "" ] attribute obsoletes { NUMBERS }?,
      [ a:defaultValue = "" ] attribute updates { NUMBERS }?,
      attribute category { "std" | "bcp" | "info" | "exp" | "historic" }?,
+     attribute consensus { "no" | "yes" }?,
      attribute seriesNo { NUMBER }?,
!     attribute ipr {
!       "full2026"
!       | "noDerivativeWorks2026"
!       | "none"
!       | "full3667"
!       | "noModification3667"
!       | "noDerivatives3667"
!       | "full3978"
!       | "noModification3978"
!       | "noDerivatives3978"
!       | "trust200811"
!       | "noModificationTrust200811"
!       | "noDerivativesTrust200811"
!       | "trust200902"
!       | "noModificationTrust200902"
!       | "noDerivativesTrust200902"
!       | "pre5378Trust200902"
!     }?,
!     attribute iprExtract { xsd:IDREF }?,
!     [ a:defaultValue = "IETF" ]
!     attribute submissionType {
!       "IETF" | "IAB" | "IRTF" | "independent"
!     }?,
      attribute docName { ATEXT }?,
+     [ a:defaultValue = "en" ] attribute xml:lang { ATEXT }?,
      front,
      middle,
      back?
    }
  front =
    element front {
      title, author+, date, area*, workgroup*, keyword*, abstract?, note*
    }
  title =
    element title {

Reschke                   Expires May 22, 2014                 [Page 43]
Internet-Draft                   XML2RFC                   November 2013

      attribute abbrev { ATEXT }?,
      CTEXT
    }
  author =
    element author {
      attribute initials { ATEXT }?,
      attribute surname { ATEXT }?,
      attribute fullname { ATEXT }?,
!     attribute role { "editor" }?,
!     organization?,
      address?
    }
  organization =
    element organization {
      attribute abbrev { ATEXT }?,
      CTEXT
    }
  address = element address { postal?, phone?, facsimile?, email?, uri? }
  postal = element postal { street+, (city | region | code | country)* }
  street = element street { CTEXT }
  city = element city { CTEXT }
  region = element region { CTEXT }
  code = element code { CTEXT }
  country = element country { CTEXT }
  phone = element phone { CTEXT }
  facsimile = element facsimile { CTEXT }
  email = element email { CTEXT }
  uri = element uri { CTEXT }
  date =
    element date {
      attribute day { DAY }?,
!     attribute month { MONTH }?,
!     attribute year { YEAR }?,
      empty
    }
  area = element area { CTEXT }
  workgroup = element workgroup { CTEXT }
  keyword = element keyword { CTEXT }
  abstract = element abstract { t+ }
  note =
    element note {
      attribute title { ATEXT },
      t+
    }
  middle = element middle { section+ }
  section =
    element section {
      attribute anchor { xsd:ID }?,

Reschke                   Expires May 22, 2014                 [Page 44]
Internet-Draft                   XML2RFC                   November 2013

      attribute title { ATEXT },
!     [ a:defaultValue = "default" ]
!     attribute toc { "include" | "exclude" | "default" }?,
!     (t | figure | texttable | iref)*,
!     section*
    }
  t =
    element t {
+     attribute anchor { xsd:ID }?,
      attribute hangText { ATEXT }?,
!     (TEXT
!      | \list
!      | figure
!      | xref
!      | eref
!      | iref
!      | cref
!      | spanx
!      | vspace)*
    }
  \list =
    element list {
!     attribute style { ATEXT }?,
!     attribute hangIndent { NUMBER }?,
!     attribute counter { ATEXT }?,
      t+
    }
  xref =
    element xref {
      attribute target { xsd:IDREF },
      [ a:defaultValue = "false" ] attribute pageno { "true" | "false" }?,
+     [ a:defaultValue = "default" ]
+     attribute format { "counter" | "title" | "none" | "default" }?,
      CTEXT
    }
  eref =
    element eref {
      attribute target { URI },
      CTEXT
    }
  iref =
    element iref {
      attribute item { ATEXT },
      [ a:defaultValue = "" ] attribute subitem { ATEXT }?,
+     [ a:defaultValue = "false" ]
+     attribute primary { "true" | "false" }?,
      empty
    }

Reschke                   Expires May 22, 2014                 [Page 45]
Internet-Draft                   XML2RFC                   November 2013

+ cref =
+   element cref {
+     attribute anchor { xsd:ID }?,
+     attribute source { ATEXT }?,
+     CTEXT
+   }
+ spanx =
+   element spanx {
+     [ a:defaultValue = "preserve" ]
+     attribute xml:space { "default" | "preserve" }?,
+     [ a:defaultValue = "emph" ] attribute style { ATEXT }?,
+     CTEXT
+   }
  vspace =
    element vspace {
      [ a:defaultValue = "0" ] attribute blankLines { NUMBER }?,
      empty
    }
  figure =
    element figure {
      attribute anchor { xsd:ID }?,
      [ a:defaultValue = "" ] attribute title { ATEXT }?,
+     [ a:defaultValue = "false" ]
+     attribute suppress-title { "true" | "false" }?,
+     attribute src { URI }?,
+     [ a:defaultValue = "left" ]
+     attribute align { "left" | "center" | "right" }?,
+     [ a:defaultValue = "" ] attribute alt { ATEXT }?,
+     [ a:defaultValue = "" ] attribute width { ATEXT }?,
+     [ a:defaultValue = "" ] attribute height { ATEXT }?,
+     iref*,
      preamble?,
      artwork,
      postamble?
    }
! preamble =
!   element preamble { (TEXT | xref | eref | iref | cref | spanx)* }
  artwork =
    element artwork {
      [ a:defaultValue = "preserve" ]
      attribute xml:space { "default" | "preserve" }?,
+     [ a:defaultValue = "" ] attribute name { ATEXT }?,
+     [ a:defaultValue = "" ] attribute type { ATEXT }?,
+     attribute src { URI }?,
+     [ a:defaultValue = "left" ]
+     attribute align { "left" | "center" | "right" }?,
+     [ a:defaultValue = "" ] attribute alt { ATEXT }?,
+     [ a:defaultValue = "" ] attribute width { ATEXT }?,

Reschke                   Expires May 22, 2014                 [Page 46]
Internet-Draft                   XML2RFC                   November 2013

+     [ a:defaultValue = "" ] attribute height { ATEXT }?,
      TEXT*
    }
! postamble =
!   element postamble { (TEXT | xref | eref | iref | cref | spanx)* }
! texttable =
!   element texttable {
!     attribute anchor { xsd:ID }?,
!     [ a:defaultValue = "" ] attribute title { ATEXT }?,
!     [ a:defaultValue = "false" ]
!     attribute suppress-title { "true" | "false" }?,
!     [ a:defaultValue = "center" ]
!     attribute align { "left" | "center" | "right" }?,
!     [ a:defaultValue = "full" ]
!     attribute style { "all" | "none" | "headers" | "full" }?,
!     preamble?,
!     ttcol+,
!     c*,
!     postamble?
!   }
! ttcol =
!   element ttcol {
!     attribute width { ATEXT }?,
!     [ a:defaultValue = "left" ]
!     attribute align { "left" | "center" | "right" }?,
!     CTEXT
!   }
! c = element c { (TEXT | xref | eref | iref | cref | spanx)* }
! back = element back { references*, section* }
! references =
!   element references {
!     [ a:defaultValue = "References" ] attribute title { ATEXT }?,
!     reference+
!   }
  reference =
    element reference {
      attribute anchor { xsd:ID }?,
      attribute target { URI }?,
      front,
!     seriesInfo*,
!     format*,
!     annotation*
    }
  seriesInfo =
    element seriesInfo {
      attribute name { ATEXT },
      attribute value { ATEXT },
      empty

Reschke                   Expires May 22, 2014                 [Page 47]
Internet-Draft                   XML2RFC                   November 2013

    }
+ format =
+   element format {
+     attribute target { URI }?,
+     attribute type { ATEXT },
+     attribute octets { NUMBER }?,
+     empty
+   }
+ annotation =
+   element annotation { (TEXT | xref | eref | iref | cref | spanx)* }
  start = rfc

Index

   A
      abbrev attribute
         in organization element  14
         in title element  25
      abstract element  4
         inside front  12
      address element  4
         inside author  7
      align attribute
         in artwork element  5
         in figure element  10
         in texttable element  24
         in ttcol element  25
      alt attribute
         in artwork element  6
         in figure element  11
      anchor attribute
         in cref element  8
         in figure element  11
         in reference element  16
         in section element  21
         in t element  23
         in texttable element  24
      annotation element  5
         inside reference  16
      area element  5
         inside front  12
      artwork element  5
         align attribute  5
         alt attribute  6
         height attribute  6
         inside figure  11
         name attribute  6
         src attribute  6

Reschke                   Expires May 22, 2014                 [Page 48]
Internet-Draft                   XML2RFC                   November 2013

         type attribute  6
         width attribute  6
         xml:space attribute  6
      Attributes
         abbrev  14, 25
         align  5, 10, 24-25
         alt  6, 11
         anchor  8, 11, 16, 21, 23-24
         blankLines  26
         category  17
         consensus  17
         counter  13
         day  9
         docName  18
         format  26
         fullname  7
         hangIndent  13
         hangText  23
         height  6, 11
         initials  7
         ipr  18
         iprExtract  19
         item  13
         month  9
         name  6, 22
         number  19
         obsoletes  19
         octets  12
         pageno  27
         primary  13
         role  7
         seriesNo  19
         source  8
         src  6, 11
         style  13, 22, 24
         subitem  13
         submissionType  20
         suppress-title  11, 24
         surname  7
         target  10, 12, 16, 27
         title  11, 14, 16, 21, 25
         toc  21
         type  6, 12
         updates  20
         value  22
         width  6, 11, 26
         xml:lang  20
         xml:space  6, 22

Reschke                   Expires May 22, 2014                 [Page 49]
Internet-Draft                   XML2RFC                   November 2013

         year  9
      author element  6
         fullname attribute  7
         initials attribute  7
         inside front  12
         role attribute  7
         surname attribute  7

   B
      back element  7
         inside rfc  20
      blankLines attribute
         in vspace element  26

   C
      c element  7
         inside texttable  25
      category attribute
         in rfc element  17
      city element  8
         inside postal  15
      code element  8
         inside postal  15
      consensus attribute
         in rfc element  17
      counter attribute
         in list element  13
      country element  8
         inside postal  15
      cref element  8
         anchor attribute  8
         inside annotation  5
         inside c  8
         inside postamble  15
         inside preamble  16
         inside t  23
         source attribute  8

   D
      date element  9
         day attribute  9
         inside front  12
         month attribute  9
         year attribute  9
      day attribute
         in date element  9
      docName attribute
         in rfc element  18

Reschke                   Expires May 22, 2014                 [Page 50]
Internet-Draft                   XML2RFC                   November 2013

   E
      Elements
         abstract  4, 12
         address  4, 7
         annotation  5, 16
         area  5, 12
         artwork  5, 11
         author  6, 12
         back  7, 20
         c  7, 25
         city  8, 15
         code  8, 15
         country  8, 15
         cref  5, 8, 15-16, 23
         date  9, 12
         email  5, 9
         eref  5, 8, 10, 15-16, 23
         facsimile  4, 10
         figure  10, 21, 23
         format  12, 16
         front  12, 16, 20
         iref  5, 8, 11-12, 15-16, 21, 23
         keyword  12-13
         list  13, 23
         middle  14, 20
         note  12, 14
         organization  7, 14
         phone  4, 14
         postal  4, 15
         postamble  11, 15, 25
         preamble  11, 15, 25
         reference  16-17
         references  7, 16
         region  15, 17
         rfc  17
         section  7, 14, 20-21
         seriesInfo  16, 21
         spanx  5, 8, 15-16, 22-23
         street  15, 23
         t  4, 14, 21, 23
         texttable  21, 24
         title  12, 25
         ttcol  25
         uri  5, 26
         vspace  23, 26
         workgroup  12, 26
         xref  5, 7, 15-16, 23, 26
      email element  9

Reschke                   Expires May 22, 2014                 [Page 51]
Internet-Draft                   XML2RFC                   November 2013

         inside address  5
      eref element  10
         inside annotation  5
         inside c  8
         inside postamble  15
         inside preamble  16
         inside t  23
         target attribute  10

   F
      facsimile element  10
         inside address  4
      figure element  10
         align attribute  10
         alt attribute  11
         anchor attribute  11
         height attribute  11
         inside section  21
         inside t  23
         src attribute  11
         suppress-title attribute  11
         title attribute  11
         width attribute  11
      format attribute
         in xref element  26
      format element  12
         inside reference  16
         octets attribute  12
         target attribute  12
         type attribute  12
      front element  12
         inside reference  16
         inside rfc  20
      fullname attribute
         in author element  7

   H
      hangIndent attribute
         in list element  13
      hangText attribute
         in t element  23
      height attribute
         in artwork element  6
         in figure element  11

   I
      initials attribute
         in author element  7

Reschke                   Expires May 22, 2014                 [Page 52]
Internet-Draft                   XML2RFC                   November 2013

      ipr attribute
         '*2026'  31
         '*3667'  31
         '*3978'  31
         '*trust200811'  31
         '*trust200902'  29
         'noDerivativesTrust200902'  30
         'noModificationTrust200902'  30
         'pre5378Trust200902'  30
         'trust200902'  30
         in rfc element  18
      iprExtract attribute
         in rfc element  19
      iref element  12
         inside annotation  5
         inside c  8
         inside figure  11
         inside postamble  15
         inside preamble  16
         inside section  21
         inside t  23
         item attribute  13
         primary attribute  13
         subitem attribute  13
      item attribute
         in iref element  13

   K
      keyword element  13
         inside front  12

   L
      list element  13
         counter attribute  13
         hangIndent attribute  13
         inside t  23
         style attribute  13

   M
      middle element  14
         inside rfc  20
      month attribute
         in date element  9

   N
      name attribute
         in artwork element  6
         in seriesInfo element  22

Reschke                   Expires May 22, 2014                 [Page 53]
Internet-Draft                   XML2RFC                   November 2013

      note element  14
         inside front  12
         title attribute  14
      number attribute
         in rfc element  19

   O
      obsoletes attribute
         in rfc element  19
      octets attribute
         in format element  12
      organization element  14
         abbrev attribute  14
         inside author  7

   P
      pageno attribute
         in xref element  27
      phone element  14
         inside address  4
      postal element  15
         inside address  4
      postamble element  15
         inside figure  11
         inside texttable  25
      preamble element  15
         inside figure  11
         inside texttable  25
      primary attribute
         in iref element  13

   R
      reference element  16
         anchor attribute  16
         inside references  17
         target attribute  16
      references element  16
         inside back  7
         title attribute  16
      region element  17
         inside postal  15
      rfc element  17
         category attribute  17
         consensus attribute  17
         docName attribute  18
         ipr attribute  18
         iprExtract attribute  19
         number attribute  19

Reschke                   Expires May 22, 2014                 [Page 54]
Internet-Draft                   XML2RFC                   November 2013

         obsoletes attribute  19
         seriesNo attribute  19
         submissionType attribute  20
         updates attribute  20
         xml:lang attribute  20
      role attribute
         in author element  7

   S
      section element  20
         anchor attribute  21
         inside back  7
         inside middle  14
         inside section  21
         title attribute  21
         toc attribute  21
      seriesInfo element  21
         inside reference  16
         name attribute  22
         value attribute  22
      seriesNo attribute
         in rfc element  19
      source attribute
         in cref element  8
      spanx element  22
         inside annotation  5
         inside c  8
         inside postamble  15
         inside preamble  16
         inside t  23
         style attribute  22
         xml:space attribute  22
      src attribute
         in artwork element  6
         in figure element  11
      street element  23
         inside postal  15
      style attribute
         in list element  13
         in spanx element  22
         in texttable element  24
      subitem attribute
         in iref element  13
      submissionType attribute
         in rfc element  20
      suppress-title attribute
         in figure element  11
         in texttable element  24

Reschke                   Expires May 22, 2014                 [Page 55]
Internet-Draft                   XML2RFC                   November 2013

      surname attribute
         in author element  7

   T
      t element  23
         anchor attribute  23
         hangText attribute  23
         inside abstract  4
         inside list  14
         inside note  14
         inside section  21
      target attribute
         in eref element  10
         in format element  12
         in reference element  16
         in xref element  27
      texttable element  24
         align attribute  24
         anchor attribute  24
         inside section  21
         style attribute  24
         suppress-title attribute  24
         title attribute  25
      title attribute
         in figure element  11
         in note element  14
         in references element  16
         in section element  21
         in texttable element  25
      title element  25
         abbrev attribute  25
         inside front  12
      toc attribute
         in section element  21
      ttcol element  25
         align attribute  25
         inside texttable  25
         width attribute  26
      type attribute
         in artwork element  6
         in format element  12

   U
      updates attribute
         in rfc element  20
      uri element  26
         inside address  5

Reschke                   Expires May 22, 2014                 [Page 56]
Internet-Draft                   XML2RFC                   November 2013

   V
      value attribute
         in seriesInfo element  22
      vspace element  26
         blankLines attribute  26
         inside t  23

   W
      width attribute
         in artwork element  6
         in figure element  11
         in ttcol element  26
      workgroup element  26
         inside front  12

   X
      xml:lang attribute
         in rfc element  20
      xml:space attribute
         in artwork element  6
         in spanx element  22
      xref element  26
         format attribute  26
         inside annotation  5
         inside c  7
         inside postamble  15
         inside preamble  16
         inside t  23
         pageno attribute  27
         target attribute  27

   Y
      year attribute
         in date element  9

Author's Address

   Julian F. Reschke
   greenbytes GmbH
   Hafenweg 16
   Muenster, NW  48155
   Germany

   EMail: julian.reschke@greenbytes.de
   URI:   http://greenbytes.de/tech/webdav/

Reschke                   Expires May 22, 2014                 [Page 57]