Network Working Group | J. Reschke |
Internet-Draft | greenbytes |
Obsoletes: 2629 (if approved) | October 16, 2013 |
Intended status: Standards Track | |
Expires: April 19, 2014 |
This document defines the 'XML2RFC' vocabulary; an XML-based (Extensible Markup Language) language used for writing Internet Drafts and RFCs.¶
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 April 19, 2014.¶
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 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.¶
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>.¶
[rfc.comment.1: Need to fill in element and attribute descriptions.] ¶
This element appears as child element of: <front> (Section 2.19).¶
one or more <t> elements (Section 2.38)¶
This element appears as child element of: <author> (Section 2.6).¶
This element appears as child element of: <reference> (Section 2.30).¶
In any order: ¶
This element appears as child element of: <front> (Section 2.19).¶
text¶
This element appears as child element of: <figure> (Section 2.17).¶
(optional)¶
Allowed values: ¶
(optional)¶
(optional)¶
(optional)¶
(optional)¶
Allowed values: ¶
(optional)¶
(optional)¶
(optional)¶
text¶
This element appears as child element of: <rfc> (Section 2.33).¶
This element appears as child element of: <texttable> (Section 2.39).¶
In any order: ¶
This element appears as child element of: <postal> (Section 2.27).¶
text¶
This element appears as child element of: <postal> (Section 2.27).¶
text¶
This element appears as child element of: <postal> (Section 2.27).¶
text¶
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).¶
(optional)¶
(optional)¶
text¶
This element appears as child element of: <front> (Section 2.19).¶
(optional)¶
(optional)¶
(optional)¶
This element appears as child element of: <address> (Section 2.2).¶
text¶
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).¶
(mandatory)¶
text¶
This element appears as child element of: <address> (Section 2.2).¶
text¶
This element appears as child element of: <section> (Section 2.34), and <t> (Section 2.38).¶
(optional)¶
(optional)¶
(optional)¶
Allowed values: ¶
(optional)¶
(optional)¶
Allowed values: ¶
(optional)¶
(optional)¶
(optional)¶
This element appears as child element of: <reference> (Section 2.30).¶
(optional)¶
(mandatory)¶
(optional)¶
This element appears as child element of: <reference> (Section 2.30), and <rfc> (Section 2.33).¶
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).¶
(mandatory)¶
(optional)¶
(optional)¶
Allowed values: ¶
This element appears as child element of: <front> (Section 2.19).¶
text¶
This element appears as child element of: <t> (Section 2.38).¶
(optional)¶
(optional)¶
(optional)¶
one or more <t> elements (Section 2.38)¶
This element appears as child element of: <rfc> (Section 2.33).¶
one or more <section> elements (Section 2.34)¶
This element appears as child element of: <front> (Section 2.19).¶
(mandatory)¶
one or more <t> elements (Section 2.38)¶
This element appears as child element of: <author> (Section 2.6).¶
(optional)¶
text¶
This element appears as child element of: <address> (Section 2.2).¶
text¶
This element appears as child element of: <address> (Section 2.2).¶
This element appears as child element of: <figure> (Section 2.17), and <texttable> (Section 2.39).¶
In any order: ¶
This element appears as child element of: <figure> (Section 2.17), and <texttable> (Section 2.39).¶
In any order: ¶
This element appears as child element of: <references> (Section 2.31).¶
(optional)¶
(optional)¶
This element appears as child element of: <back> (Section 2.7).¶
(optional)¶
one or more <reference> elements (Section 2.30)¶
This element appears as child element of: <postal> (Section 2.27).¶
text¶
(optional)¶
(optional)¶
(optional)¶
(optional)¶
Allowed values: ¶
(optional)¶
Allowed values: ¶
(optional)¶
(optional)¶
Allowed values: ¶
(optional)¶
(optional)¶
Allowed values: ¶
(optional)¶
(optional)¶
This element appears as child element of: <back> (Section 2.7), <middle> (Section 2.23), and <section> (Section 2.34).¶
(optional)¶
(mandatory)¶
(optional)¶
Allowed values: ¶
This element appears as child element of: <reference> (Section 2.30).¶
(mandatory)¶
(mandatory)¶
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).¶
(optional)¶
Allowed values: ¶
(optional)¶
text¶
This element appears as child element of: <postal> (Section 2.27).¶
text¶
This element appears as child element of: <abstract> (Section 2.1), <list> (Section 2.22), <note> (Section 2.24), and <section> (Section 2.34).¶
(optional)¶
(optional)¶
In any order: ¶
This element appears as child element of: <section> (Section 2.34).¶
(optional)¶
(optional)¶
(optional)¶
Allowed values: ¶
(optional)¶
Allowed values: ¶
(optional)¶
Allowed values: ¶
This element appears as child element of: <front> (Section 2.19).¶
(optional)¶
text¶
This element appears as child element of: <texttable> (Section 2.39).¶
(optional)¶
(optional)¶
Allowed values: ¶
text¶
This element appears as child element of: <address> (Section 2.2).¶
text¶
This element appears as child element of: <t> (Section 2.38).¶
(optional)¶
This element appears as child element of: <front> (Section 2.19).¶
text¶
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).¶
(mandatory)¶
(optional)¶
Allowed values: ¶
(optional)¶
Allowed values: ¶
text¶
[rfc.comment.2: Register application/xml2rfc+xml.] ¶
We thank Marshall T. Rose for both the original design and the reference implementation of the "xml2rfc" formatter.¶
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.¶
<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)¶
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).¶
[rfc.comment.3: 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>).¶
Deprecate or remove the <format> element; right now it's not used for the generation of the plain text document anyway.¶
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.¶
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).¶
With comments being stripped; using "diff -C100" to add change marks:¶
(from Appendix B of [RFC2629])¶
<!ENTITY % NUMBER "CDATA"> <!ENTITY % NUMBERS "CDATA"> <!ENTITY % DAY "CDATA"> <!ENTITY % MONTH "CDATA"> <!ENTITY % YEAR "CDATA"> <!ENTITY % URI "CDATA"> <!ENTITY % ATEXT "CDATA"> <!ENTITY % CTEXT "#PCDATA"> <!ENTITY % TEXT "#PCDATA"> <!ELEMENT rfc (front,middle,back?)> <!ATTLIST rfc number %NUMBER; #IMPLIED obsoletes %NUMBERS; '' updates %NUMBERS; '' ! category (std|bcp|info|exp|historic) 'info' seriesNo %NUMBER; #IMPLIED ! ipr (full2026|noDerivativeWorks2026|none) #IMPLIED ! docName %ATEXT; #IMPLIED> <!ELEMENT front (title,author+,date,area*,workgroup*,keyword*,abstract?, note*)> <!ELEMENT title (%CTEXT;)> <!ATTLIST title abbrev %ATEXT; #IMPLIED> ! <!ELEMENT author (organization,address?)> <!ATTLIST author initials %ATEXT; #IMPLIED surname %ATEXT; #IMPLIED ! fullname %ATEXT; #IMPLIED> <!ELEMENT organization (%CTEXT;)> <!ATTLIST organization abbrev %ATEXT; #IMPLIED> <!ELEMENT address (postal?,phone?,facsimile?,email?,uri?)> <!ELEMENT postal (street+,(city|region|code|country)*)> <!ELEMENT street (%CTEXT;)> <!ELEMENT city (%CTEXT;)> <!ELEMENT region (%CTEXT;)> <!ELEMENT code (%CTEXT;)> <!ELEMENT country (%CTEXT;)> <!ELEMENT phone (%CTEXT;)> <!ELEMENT facsimile (%CTEXT;)> <!ELEMENT email (%CTEXT;)> <!ELEMENT uri (%CTEXT;)> <!ELEMENT date EMPTY> <!ATTLIST date day %DAY; #IMPLIED ! month %MONTH; #REQUIRED ! year %YEAR; #REQUIRED> <!ELEMENT area (%CTEXT;)> <!ELEMENT workgroup (%CTEXT;)> <!ELEMENT keyword (%CTEXT;)> <!ELEMENT abstract (t)+> <!ELEMENT note (t)+> <!ATTLIST note title %ATEXT; #REQUIRED> <!ELEMENT middle (section)+> ! <!ELEMENT section (t|figure|section)*> <!ATTLIST section anchor ID #IMPLIED ! title %ATEXT; #REQUIRED> ! <!ELEMENT t (%TEXT;|list|figure|xref|eref|iref|vspace)*> <!ATTLIST t hangText %ATEXT; #IMPLIED> <!ELEMENT list (t)+> <!ATTLIST list ! style (numbers|symbols|hanging|empty) 'empty'> <!ELEMENT xref (%CTEXT;)> <!ATTLIST xref target IDREF #REQUIRED ! pageno (true|false) 'false'> <!ELEMENT eref (%CTEXT;)> <!ATTLIST eref target %URI; #REQUIRED> <!ELEMENT iref EMPTY> <!ATTLIST iref item %ATEXT; #REQUIRED ! subitem %ATEXT; ''> <!ELEMENT vspace EMPTY> <!ATTLIST vspace blankLines %NUMBER; '0'> ! <!ELEMENT figure (preamble?,artwork,postamble?)> <!ATTLIST figure anchor ID #IMPLIED ! title %ATEXT; ''> ! <!ELEMENT preamble (%TEXT;|xref|eref|iref)*> <!ELEMENT artwork (%TEXT;)*> <!ATTLIST artwork ! xml:space (default|preserve) 'preserve'> ! <!ELEMENT postamble (%TEXT;|xref|eref|iref)*> ! <!ELEMENT back (references?,section*)> <!ELEMENT references (reference)+> ! <!ELEMENT reference (front,seriesInfo*)> <!ATTLIST reference anchor ID #IMPLIED target %URI; #IMPLIED> <!ELEMENT seriesInfo EMPTY> <!ATTLIST seriesInfo name %ATEXT; #REQUIRED value %ATEXT; #REQUIRED>
<!ENTITY % NUMBER "CDATA"> <!ENTITY % NUMBERS "CDATA"> <!ENTITY % DAY "CDATA"> <!ENTITY % MONTH "CDATA"> <!ENTITY % YEAR "CDATA"> <!ENTITY % URI "CDATA"> <!ENTITY % ATEXT "CDATA"> <!ENTITY % CTEXT "#PCDATA"> <!ENTITY % TEXT "#PCDATA"> <!ELEMENT rfc (front,middle,back?)> <!ATTLIST rfc number %NUMBER; #IMPLIED obsoletes %NUMBERS; '' updates %NUMBERS; '' ! category (std|bcp|info|exp|historic) #IMPLIED ! consensus (no|yes) #IMPLIED seriesNo %NUMBER; #IMPLIED ! ipr (full2026|noDerivativeWorks2026|none|full3667|noModification3667 ! |noDerivatives3667|full3978|noModification3978|noDerivatives3978 ! |trust200811|noModificationTrust200811|noDerivativesTrust200811 ! |trust200902|noModificationTrust200902|noDerivativesTrust200902 ! |pre5378Trust200902) #IMPLIED ! iprExtract IDREF #IMPLIED ! submissionType (IETF|IAB|IRTF|independent) 'IETF' ! docName %ATEXT; #IMPLIED ! xml:lang %ATEXT; 'en'> <!ELEMENT front (title,author+,date,area*,workgroup*,keyword*,abstract?, note*)> <!ELEMENT title (%CTEXT;)> <!ATTLIST title abbrev %ATEXT; #IMPLIED> ! <!ELEMENT author (organization?,address?)> <!ATTLIST author initials %ATEXT; #IMPLIED surname %ATEXT; #IMPLIED ! fullname %ATEXT; #IMPLIED ! role (editor) #IMPLIED> <!ELEMENT organization (%CTEXT;)> <!ATTLIST organization abbrev %ATEXT; #IMPLIED> <!ELEMENT address (postal?,phone?,facsimile?,email?,uri?)> <!ELEMENT postal (street+,(city|region|code|country)*)> <!ELEMENT street (%CTEXT;)> <!ELEMENT city (%CTEXT;)> <!ELEMENT region (%CTEXT;)> <!ELEMENT code (%CTEXT;)> <!ELEMENT country (%CTEXT;)> <!ELEMENT phone (%CTEXT;)> <!ELEMENT facsimile (%CTEXT;)> <!ELEMENT email (%CTEXT;)> <!ELEMENT uri (%CTEXT;)> <!ELEMENT date EMPTY> <!ATTLIST date day %DAY; #IMPLIED ! month %MONTH; #IMPLIED ! year %YEAR; #IMPLIED> <!ELEMENT area (%CTEXT;)> <!ELEMENT workgroup (%CTEXT;)> <!ELEMENT keyword (%CTEXT;)> <!ELEMENT abstract (t)+> <!ELEMENT note (t)+> <!ATTLIST note title %ATEXT; #REQUIRED> <!ELEMENT middle (section)+> ! <!ELEMENT section ((t|figure|texttable|iref)*,section*)> <!ATTLIST section anchor ID #IMPLIED ! title %ATEXT; #REQUIRED ! toc (include|exclude|default) 'default'> ! <!ELEMENT t (%TEXT;|list|figure|xref|eref|iref|cref|spanx|vspace)*> <!ATTLIST t + anchor ID #IMPLIED hangText %ATEXT; #IMPLIED> <!ELEMENT list (t)+> <!ATTLIST list ! style %ATEXT; #IMPLIED ! hangIndent %NUMBER; #IMPLIED ! counter %ATEXT; #IMPLIED> <!ELEMENT xref (%CTEXT;)> <!ATTLIST xref target IDREF #REQUIRED ! pageno (true|false) 'false' ! format (counter|title|none|default) 'default'> <!ELEMENT eref (%CTEXT;)> <!ATTLIST eref target %URI; #REQUIRED> <!ELEMENT iref EMPTY> <!ATTLIST iref item %ATEXT; #REQUIRED ! subitem %ATEXT; '' ! primary (true|false) 'false'> ! ! <!ELEMENT cref (%CTEXT;)> ! ! <!ATTLIST cref ! anchor ID #IMPLIED ! source %ATEXT; #IMPLIED> ! ! <!ELEMENT spanx (%CTEXT;)> ! ! <!ATTLIST spanx ! xml:space (default|preserve) 'preserve' ! style %ATEXT; 'emph'> <!ELEMENT vspace EMPTY> <!ATTLIST vspace blankLines %NUMBER; '0'> ! <!ELEMENT figure (iref*,preamble?,artwork,postamble?)> <!ATTLIST figure anchor ID #IMPLIED ! title %ATEXT; '' ! suppress-title (true|false) 'false' ! src %URI; #IMPLIED ! align (left|center|right) 'left' ! alt %ATEXT; '' ! width %ATEXT; '' ! height %ATEXT; ''> ! <!ELEMENT preamble (%TEXT;|xref|eref|iref|cref|spanx)*> <!ELEMENT artwork (%TEXT;)*> <!ATTLIST artwork ! xml:space (default|preserve) 'preserve' ! name %ATEXT; '' ! type %ATEXT; '' ! src %URI; #IMPLIED ! align (left|center|right) 'left' ! alt %ATEXT; '' ! width %ATEXT; '' ! height %ATEXT; ''> ! <!ELEMENT postamble (%TEXT;|xref|eref|iref|cref|spanx)*> ! <!ELEMENT texttable (preamble?,ttcol+,c*,postamble?)> ! ! <!ATTLIST texttable ! anchor ID #IMPLIED ! title %ATEXT; '' ! suppress-title (true|false) 'false' ! align (left|center|right) 'center' ! style (all|none|headers|full) 'full'> ! ! <!ELEMENT ttcol (%CTEXT;)> ! ! <!ATTLIST ttcol ! width %ATEXT; #IMPLIED ! align (left|center|right) 'left'> ! ! <!ELEMENT c (%TEXT;|xref|eref|iref|cref|spanx)*> ! ! <!ELEMENT back (references*,section*)> <!ELEMENT references (reference)+> ! <!ATTLIST references ! title %ATEXT; 'References'> ! ! <!ELEMENT reference (front,seriesInfo*,format*,annotation*)> <!ATTLIST reference anchor ID #IMPLIED target %URI; #IMPLIED> <!ELEMENT seriesInfo EMPTY> <!ATTLIST seriesInfo name %ATEXT; #REQUIRED value %ATEXT; #REQUIRED> + + <!ELEMENT format EMPTY> + + <!ATTLIST format + target %URI; #IMPLIED + type %ATEXT; #REQUIRED + octets %NUMBER; #IMPLIED> + + <!ELEMENT annotation (%TEXT;|xref|eref|iref|cref|spanx)*>