source: rfc2629xslt/rfc2629xslt.xml @ 1217

Last change on this file since 1217 was 1217, checked in by julian.reschke@…, 9 years ago

xml2rfc 1.36

  • Property svn:eol-style set to native
File size: 136.4 KB
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
3
4<?rfc header="Documentation"?>
5<?rfc private="RFC2629 through XSLT"?>
6<?rfc toc="yes"?>
7<!-- <?rfc topblock="no"?>  -->
8<?rfc strict="yes"?>
9<?rfc symrefs="yes"?>
10<?rfc sortrefs="yes"?>
11<?rfc-ext allow-markup-in-artwork="yes" ?>
12<?rfc-ext include-references-in-index="yes" ?>
13
14<rfc xmlns:x="http://purl.org/net/xml2rfc/ext">
15        <front>
16        <title abbrev="RFC2629 through XSLT">Transforming RFC2629-formatted XML through XSLT</title>
17
18        <author initials="J. F." surname="Reschke" fullname="Julian F. Reschke">
19                <organization abbrev="greenbytes">greenbytes GmbH</organization>
20        <address>
21                <postal>
22                <street>Hafenweg 16</street>
23            <city>Muenster</city><region>NW</region><code>48155</code>
24                <country>Germany</country>
25                </postal>
26                  <phone>+49 251 2807760</phone>       
27                  <email>julian.reschke@greenbytes.de</email>   
28                  <uri>http://greenbytes.de/tech/webdav/</uri> 
29                </address>
30        </author>
31     
32    <date month="March" year="2011"/>
33
34    <keyword>RFC2629</keyword>
35    <keyword>xml2rfc</keyword>
36    <keyword>XSLT</keyword>
37    <keyword>hCard</keyword>
38    <keyword>XSL-FO</keyword>
39    <keyword>PDF</keyword>
40    <keyword>GRDDL</keyword>
41    <keyword>epub</keyword>
42    <keyword>Dublin Core</keyword>
43        </front>
44
45        <middle>
46
47<section title="Introduction">
48<t>
49  This document describes a set of XSLT transformations that can be used to
50  transform RFC2629-compliant XML (see <xref target="RFC2629"/>) to various
51  output formats, such as HTML and PDF. The main topics are 
52  <list style="symbols">
53    <t>compliance to the xml2rfc XML element set (<xref target="supported.elements"/>),</t>
54    <t>support for xml2rfc processing instructions (<xref target="processing.instructions"/>),</t>
55    <t>the names of anchor elements generated in HTML and PDF output (<xref target="anchors"/>),</t>
56    <t>various XSLT engines that can be used (<xref target="xslt.engines"/>),</t>
57    <t>outputting HTML (<xref target="output.html"/>) and XHTML (<xref target="output.xhtml"/>),</t>
58    <t>outputting CHM (Compiled Microsoft Help, <xref target="output.chm"/>),</t>
59    <t>outputting PDF (<xref target="output.pdf"/>),</t>
60    <t>extensions to the xml2rfc vocabulary (<xref target="extensions"/>).</t>
61    <t>various utilities (<xref target="utilities"/>).</t>
62  </list>
63</t>
64<t>
65  The full distribution is available at <eref target="http://greenbytes.de/tech/webdav/rfc2629xslt.zip"/>.
66</t>
67</section>
68
69<section title="Supported RFC2629 elements" anchor="supported.elements">
70<t>
71  <spanx style="verb">rfc2629.xslt</spanx> supports both all RFC2629 grammar elements and the extensions
72  implemented in xml2rfc 1.33.
73</t>
74<section title="Extension elements">
75<t>
76  <spanx style="verb">rfc2629.xslt</spanx> supports two kind of extension
77  elements, using different XML namespaces.
78</t>
79<t>
80  The first set contains (hopefully) generally useful extensions, see
81  <xref target="extensions"/>.
82</t>
83<t>
84  The second set is used for change and issue tracking and currently is not
85  documented here. Please email the author in case
86  you're interested in using these extensions.
87</t>
88</section>
89</section>
90
91<section title="Processing Instructions" anchor="processing.instructions">
92<t>
93  All PIs can be set as XSLT parameter as well, overriding any value that
94  is found in the source file to be transformed.
95</t>
96<figure>
97<preamble>Using processing instructions:</preamble>
98<artwork type="example">
99&lt;?rfc toc="yes"?>
100&lt;?rfc-ext support-rfc2731="no"?>
101</artwork>
102</figure>
103<figure>
104<preamble>Using XSLT parameters (Saxon):</preamble>
105<artwork type="example">
106java -cp saxon.jar com.icl.saxon.StyleSheet source.xml rfc2629.xslt \
107  xml2rfc-toc=yes xml2rfc-ext-support-rfc2731=no > result.html
108</artwork></figure>
109<figure>
110<preamble>Using XSLT parameters (xsltproc):</preamble>
111<artwork type="example">
112xsltproc --param xml2rfc-toc '"yes"' \
113   --param xml2rfc-ext-support-rfc2731 '"no"' \
114   rfc2629.xslt source.xml > result.html
115</artwork>
116<postamble>(note the required quoting of string parameters)<iref item="xsltproc" subitem="passing parameters"/></postamble>
117</figure>
118
119<section title="Supported xml2rfc-compatible PIs">
120<texttable>
121  <ttcol>PI target</ttcol>
122  <ttcol>PI pseudo-attribute</ttcol>
123  <ttcol>XSLT parameter name</ttcol>
124  <ttcol>default</ttcol>
125  <ttcol>comment</ttcol>
126
127  <c>rfc</c>
128  <c>background<iref item="background PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="background"/></c>
129  <c>xml2rfc-background<iref item="xml2rfc-background parameter"/> <iref item="Parameters" subitem="xml2rfc-background"/></c>
130  <c>(not set)</c>
131  <c/>
132 
133  <c>rfc</c>
134  <c>compact<iref item="compact PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="compact"/></c>
135  <c>xml2rfc-compact<iref item="xml2rfc-editing parameter"/> <iref item="Parameters" subitem="xml2rfc-compact"/></c>
136  <c>"no"</c>
137  <c>only applies to HTML output method when printing</c>
138
139  <c>rfc</c>
140  <c>comments<iref item="comments PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="comments"/></c>
141  <c>xml2rfc-comments<iref item="xml2rfc-comments parameter"/> <iref item="Parameters" subitem="xml2rfc-comments"/></c>
142  <c>(not set)</c>
143  <c/>
144
145  <c>rfc</c>
146  <c>editing<iref item="editing PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="editing"/></c>
147  <c>xml2rfc-editing<iref item="xml2rfc-editing parameter"/> <iref item="Parameters" subitem="xml2rfc-editing"/></c>
148  <c>"no"</c>
149  <c/>
150 
151  <c>rfc</c>
152  <c>footer<iref item="footer PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="footer"/></c>
153  <c>xml2rfc-footer<iref item="xml2rfc-footer parameter"/> <iref item="Parameters" subitem="xml2rfc-footer"/></c>
154  <c>(not set)</c>
155  <c/>
156 
157  <c>rfc</c>
158  <c>header<iref item="header PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="header"/></c>
159  <c>xml2rfc-header<iref item="xml2rfc-header parameter"/> <iref item="Parameters" subitem="xml2rfc-header"/></c>
160  <c>(not set)</c>
161  <c/>
162
163  <c>rfc</c>
164  <c>inline<iref item="inline PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="inline"/></c>
165  <c>xml2rfc-inline<iref item="xml2rfc-inline parameter"/> <iref item="Parameters" subitem="xml2rfc-inline"/></c>
166  <c>(not set)</c>
167  <c/>
168
169  <c>rfc</c>
170  <c>iprnotified<iref item="iprnotified PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="iprnotified"/></c>
171  <c>xml2rfc-iprnotified<iref item="xml2rfc-iprnotified parameter"/> <iref item="Parameters" subitem="xml2rfc-iprnotified"/></c>
172  <c>"no"</c>
173  <c/>
174
175  <c>rfc</c>
176  <c>linkmailto<iref item="linkmailto PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="linkmailto"/></c>
177  <c>xml2rfc-linkmailto<iref item="xml2rfc-linkmailto parameter"/> <iref item="Parameters" subitem="xml2rfc-linkmailto"/></c>
178  <c>"yes"</c>
179  <c/>
180 
181  <c>rfc</c>
182  <c>private<iref item="private PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="private"/></c>
183  <c>xml2rfc-private<iref item="xml2rfc-private parameter"/> <iref item="Parameters" subitem="xml2rfc-private"/></c>
184  <c>(not set)</c>
185  <c/>
186 
187  <c>rfc</c>
188  <c>refparent<iref item="refparent PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="refparent"/></c>
189  <c>xml2rfc-private<iref item="xml2rfc-refparent parameter"/> <iref item="Parameters" subitem="xml2rfc-refparent"/></c>
190  <c>"References"</c>
191  <c>Title for References sections when automatically inserted</c>
192
193  <c>rfc</c>
194  <c>rfcedstyle<iref item="rfcedstyle PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="rfcedstyle"/></c>
195  <c>xml2rfc-rfcedstyle<iref item="xml2rfc-rfcedstyle parameter"/> <iref item="Parameters" subitem="xml2rfc-rfcedstyle"/></c>
196  <c>(not set)</c>
197  <c>(limited support)</c>
198
199  <c>rfc</c>
200  <c>sortrefs<iref item="sortrefs PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="sortrefs"/></c>
201  <c>xml2rfc-sortrefs<iref item="xml2rfc-sortrefs parameter"/> <iref item="Parameters" subitem="xml2rfc-sortrefs"/></c>
202  <c>"no"</c>
203  <c/>
204 
205  <c>rfc</c>
206  <c>symrefs<iref item="symrefs PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="symrefs"/></c>
207  <c>xml2rfc-symrefs<iref item="xml2rfc-symrefs parameter"/> <iref item="Parameters" subitem="xml2rfc-symrefs"/></c>
208  <c>"yes"</c>
209  <c>The default has changed from "no" to "yes" as of June 6, 2007 and xml2rfc 1.33pre4.</c>
210 
211  <c>rfc</c>
212  <c>toc<iref item="toc PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="toc"/></c>
213  <c>xml2rfc-toc<iref item="xml2rfc-toc parameter"/> <iref item="Parameters" subitem="xml2rfc-toc"/></c>
214  <c>"no"</c>
215  <c/>
216 
217  <c>rfc</c>
218  <c>tocdepth<iref item="tocdepth PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="tocdepth"/></c>
219  <c>xml2rfc-tocdepth<iref item="xml2rfc-tocdepth parameter"/> <iref item="Parameters" subitem="xml2rfc-tocdepth"/></c>
220  <c>99</c>
221  <c/>
222
223  <c>rfc</c>
224  <c>topblock<iref item="topblock PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="topblock"/></c>
225  <c>xml2rfc-topblock<iref item="xml2rfc-topblock parameter"/> <iref item="Parameters" subitem="xml2rfc-topblock"/></c>
226  <c>"yes"</c>
227  <c/>
228
229</texttable>
230</section>
231
232<section title="Unsupported xml2rfc-compatible PIs">
233<texttable>
234  <ttcol>PI target</ttcol>
235  <ttcol>PI pseudo-attribute</ttcol>
236  <ttcol>comment</ttcol>
237
238  <c>rfc</c>
239  <c>include<iref item="include PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="include"/></c>
240  <c>incompatible with XML/XSLT processing model, please use external entities instead</c>
241
242  <c>rfc</c>
243  <c>needLines<iref item="needLines PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="needLines"/></c>
244  <c/>
245
246  <c>rfc</c>
247  <c>slides<iref item="slides PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="slides"/></c>
248  <c/>
249
250  <c>rfc</c>
251  <c>strict<iref item="strict PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="strict"/></c>
252  <c/>
253
254  <c>rfc</c>
255  <c>subcompact<iref item="subcompact PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="subcompact"/></c>
256  <c/>
257
258  <c>rfc</c>
259  <c>tocindent<iref item="tocindent PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="tocindent"/></c>
260  <c>(defaults to "yes")</c>
261
262 <c>rfc</c>
263  <c>tocompact<iref item="tocompact PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="tocompact"/></c>
264  <c/>
265
266</texttable>
267</section>
268
269<section title="Extension PIs">
270<texttable>
271  <ttcol>PI target</ttcol>
272  <ttcol>PI pseudo-attribute</ttcol>
273  <ttcol>XSLT parameter name</ttcol>
274  <ttcol>default</ttcol>
275  <ttcol>description</ttcol>
276
277  <c>rfc-ext</c>
278  <c>allow-markup-in-artwork<iref item="allow-markup-in-artwork PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="allow-markup-in-artwork"/></c>
279  <c>xml2rfc-allow-markup-in-artwork<iref item="xml2rfc-ext-allow-markup-in-artwork parameter"/> <iref item="Parameters" subitem="xml2rfc-ext-allow-markup-in-artwork"/></c>
280  <c>"no"</c>
281  <c>Enables support for specific elements inside abstract elements (using this extension
282  makes the document incompatible to the RFC2629bis DTD; see description of
283  conversion XSLT in <xref target="clean-for-dtd"/>).</c>
284
285  <c>rfc-ext</c>
286  <c>authors-section<iref item="authors-section PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="authors-section"/></c>
287  <c>xml2rfc-ext-authors-section<iref item="xml2rfc-ext-authors-section parameter"/> <iref item="Parameters" subitem="xml2rfc-ext-authors-section"/></c>
288  <c></c>
289  <c>When "end", place the authors section at the end (just before the
290  copyright statements). This seems to be the preferred order in the
291  newest RFCs.</c>
292
293  <c>rfc-ext</c>
294  <c>duplex<iref item="duplex PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="duplex"/></c>
295  <c>xml2rfc-ext-duplex<iref item="xml2rfc-ext-duplex"/> <iref item="Parameters" subitem="xml2rfc-ext-duplex"/></c>
296  <c>no</c>
297  <c>When set to "yes", format the PDF output for doublesided printing.</c>
298
299  <c>rfc-ext</c>
300  <c>include-references-in-index<iref item="include-references-in-index PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="include-references-in-index"/></c>
301  <c>xml2rfc-ext-include-references-in-index<iref item="xml2rfc-ext-include-references-in-index parameter"/> <iref item="Parameters" subitem="xml2rfc-ext-include-references-in-index"/></c>
302  <c></c>
303  <c>When set to "yes", index entries are generated for all references.</c>
304
305  <c>rfc-ext</c>
306  <c>justification<iref item="justification PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="ijustification"/></c>
307  <c>xml2rfc-ext-justification<iref item="xml2rfc-ext-justification parameter"/> <iref item="Parameters" subitem="xml2rfc-ext-justification"/></c>
308  <c>"never"</c>
309  <c>"never": never emit justified text, "always": always emit justified text, "print": only emit justified text for print media.</c>
310
311  <c>rfc-ext</c>
312  <c>parse-xml-in-artwork<iref item="parse-xml-in-artwork PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="parse-xml-in-artwork"/></c>
313  <c>xml2rfc-parse-xml-in-artwork<iref item="xml2rfc-ext-parse-xml-in-artwork parameter"/> <iref item="Parameters" subitem="xml2rfc-ext-parse-xml-in-artwork"/></c>
314  <c>"no"</c>
315  <c>May be used to enable parsing of XML content in figures (MSXML only).</c>
316
317  <c>rfc-ext</c>
318  <c>support-rfc2731<iref item="support-rfc2731 PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="support-rfc2731"/></c>
319  <c>xml2rfc-ext-support-rfc2731<iref item="xml2rfc-ext-support-rfc2731 parameter"/> <iref item="Parameters" subitem="xml2rfc-ext-support-rfc2731"/></c>
320  <c>"yes"</c>
321  <c>Decides whether the HTML transformation should generate META tags according <xref target="rfc2731.properties"/>.</c>
322
323  <c>rfc-ext</c>
324  <c>sec-no-trailing-dots<iref item="sec-no-trailing-dots PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="sec-no-trailing-dots"/></c>
325  <c>xml2rfc-ext-sec-no-trailing-dots<iref item="xml2rfc-ext-sec-no-trailing-dots parameter"/> <iref item="Parameters" subitem="xml2rfc-ext-sec-no-trailing-dots"/></c>
326  <c></c>
327  <c>When set to "yes", add trailing dots to section numbers. This seems to be the preferred format in the
328  newest RFCs.</c>
329
330</texttable>
331</section>
332
333</section>
334
335<section title="Anchors" anchor="anchors">
336<t>
337  The transformation automatically generates anchors that are supposed to
338  be stable and predictable and that can be used to identify specific
339  parts of the document. Anchors are generated both in HTML and XSL-FO
340  content (but the latter will only be used for PDF output when the XSL-FO
341  engine supports producing PDF anchors).
342</t>
343<texttable>
344<preamble>The following anchors get auto-generated:</preamble>
345<ttcol>Anchor name</ttcol><ttcol>Description</ttcol>
346
347  <c>rfc.abstract <iref item="rfc.abstract anchor"/><iref item="Anchors" subitem="rfc.abstract"/></c><c>Abstract</c>
348  <c>rfc.authors <iref item="rfc.authors anchor"/><iref item="Anchors" subitem="rfc.authors"/></c><c>Authors section</c>
349  <c>rfc.copyright <iref item="rfc.copyright anchor"/><iref item="Anchors" subitem="rfc.copyright"/></c><c>Copyright section</c>
350  <c>rfc.copyrightnotice <iref item="rfc.copyrightnotice anchor"/><iref item="Anchors" subitem="rfc.copyrightnotice"/></c><c>Copyright notice</c>
351  <c>rfc.figure.<spanx>n</spanx> <iref item="rfc.figure.n anchor"/><iref item="Anchors" subitem="rfc.figure.n"/></c><c>Figures (titled)</c>
352  <c>rfc.figure.u.<spanx>n</spanx> <iref item="rfc.figure.u.n anchor"/><iref item="Anchors" subitem="rfc.figure.u.n"/></c><c>Figures (untitled)</c>
353  <c>rfc.index <iref item="rfc.index anchor"/><iref item="Anchors" subitem="rfc.index"/></c><c>Index</c>
354  <c>rfc.ipr <iref item="rfc.ipr anchor"/><iref item="Anchors" subitem="rfc.ipr"/></c><c>Intellectual Property</c>
355  <c>rfc.iref.<spanx>n</spanx> <iref item="rfc.iref.n anchor"/><iref item="Anchors" subitem="rfc.iref.n"/></c><c>Internal references</c>
356  <c>rfc.note.<spanx>n</spanx> <iref item="rfc.note.n anchor"/><iref item="Anchors" subitem="rfc.note.n"/></c><c>Notes (from front section)</c>
357  <c>rfc.references <iref item="rfc.references anchor"/><iref item="Anchors" subitem="rfc.references"/></c><c>References</c>
358  <c>rfc.references.<spanx>n</spanx> <iref item="rfc.references.n anchor"/><iref item="Anchors" subitem="rfc.references"/></c><c>Additional references</c>
359  <c>rfc.section.<spanx>n</spanx> <iref item="rfc.section.n anchor"/><iref item="Anchors" subitem="rfc.section.n"/></c><c>Section <spanx>n</spanx></c>
360  <c>rfc.section.<spanx>n</spanx>.p.<spanx>m</spanx> <iref item="rfc.section.n.p.m anchor"/><iref item="Anchors" subitem="rfc.section.n.p.m"/></c><c>Section <spanx>n</spanx>, paragraph <spanx>m</spanx></c>
361  <c>rfc.status <iref item="rfc.status anchor"/><iref item="Anchors" subitem="rfc.status"/></c><c>Status of memo</c>
362  <c>rfc.table.<spanx>n</spanx> <iref item="rfc.figure.n anchor"/><iref item="Anchors" subitem="rfc.figure.n"/></c><c>Tables (titled)</c>
363  <c>rfc.table.u.<spanx>n</spanx> <iref item="rfc.figure.u.n anchor"/><iref item="Anchors" subitem="rfc.figure.u.n"/></c><c>Tables (untitled)</c>
364  <c>rfc.toc <iref item="rfc.toc anchor"/><iref item="Anchors" subitem="rfc.toc"/></c><c>Table of contents</c>
365  <c>rfc.xref.<spanx>name</spanx>.<spanx>n</spanx> <iref item="rfc.xref.name.n anchor"/><iref item="Anchors" subitem="rfc.xref.name.n"/></c><c>References to reference <spanx>n</spanx> to <spanx>name</spanx></c>
366
367</texttable>
368</section>
369
370<section title="Supported XSLT engines" anchor="xslt.engines">
371<t>
372  The transformation requires a non-standard extension function (see <eref target="http://www.exslt.org/exsl/functions/node-set/exsl.node-set.html">
373  exsl:node-set</eref>)
374  which is however widely available. XSLT processors that do not support this
375  extension (or a functional equivalent) currently are not supported.
376</t>
377<section title="Standalone Engines">
378<t>
379  The following XSLT engines are believed to work well:
380  <list style="symbols">
381    <t>Windows: <iref item="MSXML3"/><iref item="MSXML4"/>MSXML3 and MSXML4 (<eref target="http://msdn.microsoft.com/xml"/>;
382      command line processor "msxsl" is available from <eref target="http://www.microsoft.com/downloads/details.aspx?FamilyID=2FB55371-C94E-4373-B0E9-DB4816552E41">Microsoft Download Center</eref>)</t>
383    <t>Java: <iref item="Saxon"/>Saxon (<eref target="http://saxon.sourceforge.net/"/>)</t>
384    <t>Java: <iref item="Xalan"/>Xalan (<eref target="http://xml.apache.org/xalan-j/"/>)</t>
385    <t>C/C++: <iref item="xsltproc"/>xsltproc (libxslt) (<eref target="http://xmlsoft.org/XSLT/"/>, make sure that you
386    have a current version)</t>
387  </list>
388</t>
389</section>
390
391<section title="In-Browser Engines" anchor="xslt.engines.browser">
392<t>
393  The following browsers seem to work fine:
394  <list style="symbols">
395    <x:lt>
396      <t><iref item="Internet Explorer 5.5"/>Internet Explorer 5.5 (Windows version, if MSXML3 is installed)</t>
397    </x:lt>
398    <x:lt>
399      <t><iref item="Internet Explorer 6"/><iref item="Internet Explorer 7"/><iref item="Internet Explorer 8"/>Internet Explorer 6 and newer</t>
400    </x:lt>
401    <x:lt>
402      <t anchor="firefox3"><iref item="Mozilla"/><iref item="Firefox" subitem="3.*"/>Firefox 3.0 and newer</t>
403      <t>
404        <list style="symbols">
405          <t>Be aware that XSLT execution can be suppressed using <iref item="NoScript"/><eref target="https://addons.mozilla.org/de/firefox/addon/722">NoScript</eref></t>
406          <t>Firefox does not load external DTDs nor external entities,
407          see <eref target="https://bugzilla.mozilla.org/show_bug.cgi?id=22942">Mozilla Bug 22942</eref>, thus entities
408          like &amp;nbsp; need to be declared in the internal subset (<xref target="examples.internalsubset"/>)</t>
409          <t>There seems to be a new problem in Firefox 4 where it occasionally
410          does the initial rendering with the wrong width (people who can reproduce
411          this problem please comment on <eref target="https://bugzilla.mozilla.org/show_bug.cgi?id=640390"/>.
412          </t>
413        </list>
414      </t>
415    </x:lt>
416    <x:lt>
417      <t><iref item="Safari"/><iref item="Safari" subitem="3.*"/>Safari 3 (starting with version 3.0.4)</t>
418    </x:lt>
419    <x:lt>
420      <t><iref item="Google Chrome"/>Google Chrome</t>
421    </x:lt>
422    <x:lt>
423      <t><iref item="Opera"/>Opera (starting with version 10)</t>
424    </x:lt>
425  </list>
426</t>
427<t>
428  The following browsers are known not to work properly:
429  <list style="symbols">
430    <x:lt>
431      <t anchor="firefox12"><iref item="Mozilla"/><iref item="Firefox" subitem="1.*/2.*"/>Firefox 1.*/2.*: (missing extension function - see change request at Mozilla BugZilla
432      <eref target="http://bugzilla.mozilla.org/show_bug.cgi?id=193678">193678</eref>)</t>
433    </x:lt>
434    <x:lt>
435      <t anchor="opera"><iref item="Opera"/>Opera 9.21: execution fails, potentially
436      to a somewhat complex XPath expression (reported to Opera as bug 245725).</t>
437    </x:lt>
438    <x:lt>
439      <t>Opera 9.5 and 9.6:
440      transformation appears to work, but CSS isn't getting applied (reported to Opera as bug 337388 on 2008-06-12).</t>
441    </x:lt>
442    <x:lt>
443      <t anchor="safari"><iref item="Safari"/>Safari 2.* supports client-side XSLT as of MacOS X 10.4,
444      but misses required extension functions. A problem
445      with stylesheets producing non-ASCII output (such as NBSP characters)
446      has been fixed as of OSX 10.4.4. Both
447      problems have been reported through Apple's bug tracking system, see
448      <eref target="http://drakken.dbc.mtview.ca.us/pipermail/xml2rfc/2005-May/002073.html"/> and
449      <eref target="http://bugs.webkit.org/show_bug.cgi?id=4079"/>.
450      </t>
451    </x:lt>
452  </list>
453</t>
454</section>
455
456</section>
457
458<section title="Transforming to HTML" anchor="output.html">
459<t>
460  Transformation to HTML can be done inside the browser if it supports
461  XSLT. To enable this, add the following processing instruction to
462  the start of the source file:
463</t>
464<iref item="xml-stylesheet PI"/>
465<figure><artwork type="example">
466  &lt;?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
467</artwork></figure>
468<t>
469  (and ensure that <spanx style="verb">rfc2629.xslt</spanx> is present).
470</t>
471
472<section title="HTML compliance">
473<t>
474  The transformation result is supposed to conform to the HTML 4.01 strict
475  DTD <xref target="HTML"/>. This can be checked using the W3C's online
476  validator at <eref target="http://validator.w3.org" /><iref item="HTML compliance"/>.
477</t>
478</section>
479
480<section title="Standard HTML LINK elements" anchor="html.link">
481<t>
482  LINK elements exist since HTML 2.0. They can be used to embed content-independant
483  links inside the document. Unfortunately, only few user agents
484  support this element. Firefox users may want to check the
485  <eref target="https://addons.mozilla.org/firefox/2933/">Link Widgets</eref>
486  extension.
487</t>
488<texttable>
489<preamble>The following LINK elements are produced:</preamble>
490
491  <ttcol>LINK type</ttcol>
492  <ttcol>description</ttcol>
493 
494  <c>alternate<iref item="alternate HTML LINK element"/><iref item="HTML LINK elements" subitem="alternate"/></c><c>for RFCs, a link to the authorative ASCII version on the IETF web site</c>
495  <c>appendic<iref item="appendix HTML LINK element"/><iref item="HTML LINK elements" subitem="appendix"/></c><c>pointer to all top-level appendics</c>
496  <c>author<iref item="author HTML LINK element"/><iref item="HTML LINK elements" subitem="author"/></c><c>pointer to "authors" section</c>
497  <c>chapter<iref item="chapter HTML LINK element"/><iref item="HTML LINK elements" subitem="chapter"/></c><c>pointer to all top-level sections</c>
498  <c>contents<iref item="contents HTML LINK element"/><iref item="HTML LINK elements" subitem="contents"/></c><c>pointer to table of contents</c>
499  <c>copyright<iref item="copyright HTML LINK element"/><iref item="HTML LINK elements" subitem="copyright"/></c><c>pointer to copyright statement</c>
500  <c>index<iref item="index HTML LINK element"/><iref item="HTML LINK elements" subitem="index"/></c><c>pointer to index</c>
501
502</texttable>
503<figure>
504<preamble>
505The figure below shows how Mozilla Firefox 1.0 displays the Site Navigation Bar
506for rfc2396.xml.
507</preamble>
508<artwork src="rfc2629xslt-fig1.png" height="235" width="509" type="image/png">
509(LINK elements displayed in Mozilla Firefox for RFC2396.xml)
510</artwork>
511</figure>
512
513</section>
514
515
516<section title="Standard HTML metadata">
517<texttable>
518<preamble>The following standard HTML META elements are produced:</preamble>
519
520  <ttcol>META name</ttcol>
521  <ttcol>description</ttcol>
522 
523  <c>generator<iref item="generator HTML META element"/><iref item="HTML META elements" subitem="generator"/></c><c>from XSLT engine version and stylesheet version</c>
524  <c>keywords<iref item="keywords HTML META element"/><iref item="HTML META elements" subitem="keywords"/></c><c>from keyword elements in front section</c>
525
526</texttable>
527</section>
528
529
530<section title="Dublin Core (RFC2731) metadata" anchor="rfc2731.properties">
531<t>
532  Unless turned off using the "rfc-ext support-rfc2731" processing
533  instruction, the transformation will generate metadata according to
534  <xref target="RFC2731"/> and <xref target="DC-HTML"/>.
535</t>
536<texttable>
537<preamble>The following DCMI properties are produced:</preamble>
538
539  <ttcol>META name</ttcol>
540  <ttcol>description</ttcol>
541 
542  <c>DC.Creator<iref item="Creator DCMI property"/><iref item="DCMI properties" subitem="Creator"/></c><c>from author information in front section</c>
543  <c>DC.Date.Issued<iref item="Date.Issued DCMI property"/><iref item="DCMI properties" subitem="Date.Issued"/></c><c>from date information in front section</c>
544  <c>DC.Description.Abstract<iref item="Description.Abstract DCMI property"/><iref item="DCMI properties" subitem="Description.Abstract"/></c><c>from abstract</c>
545  <c>DC.Identifier<iref item="Identifier DCMI property"/><iref item="DCMI properties" subitem="Identifier"/></c><c>document URN <xref target="RFC2648" /> from "docName" attribute</c>
546  <c>DC.isPartOf<iref item="isPartOf DCMI property"/><iref item="DCMI properties" subitem="isPartOf"/></c><c>RFC ISSN (for RFCs)</c>
547  <c>DC.Relation.Replaces<iref item="Relation.Replaces DCMI property"/><iref item="DCMI properties" subitem="Relation.Replaces"/></c><c>from "obsoletes" attribute</c>
548
549</texttable>
550</section>
551
552<section title="Experimental hCard support" anchor="hcard">
553<t>
554  The generated author information is formatted in <eref target="http://microformats.org/wiki/hcard">hCard</eref>
555  format.
556</t>
557</section>
558
559
560</section>
561
562<section title="Transforming to XHTML" anchor="output.xhtml">
563<t>
564  Transforming to XHTML requires slightly different XSLT output options and
565  is implemented by the derived transformation script <spanx style="verb">rfc2629toXHTML.xslt</spanx>.
566</t>
567<t><list><t>
568  <x:h>Note:</x:h> Microsoft Internet Explorer does <spanx>not</spanx> support XHTML.
569  Therefore it usually makes more sense to generate plain old HTML.
570</t></list></t>
571</section>
572
573<section title="Transforming to CHM (Microsoft Compiled Help)" anchor="output.chm">
574<t>
575  <iref item="CHM format"/>
576  <iref item="Microsoft Help"/>
577  To generate a CHM file using Microsoft's HTML Help Compiler (hhc), three
578  files are required in addition to the HTML file.
579  <list style="numbers">
580    <t>hhc - table of contents file (HTML)</t>
581    <t>hhk - index file (HTML)</t>
582    <t>hhp - project file (plain text)</t>
583  </list> 
584</t>
585<t>
586  The three files are generated with three specific transformations, each
587  requiring the additional XSLT parameter "basename" to specify the filename
588  prefix.
589</t>
590<figure>
591<preamble>Example:</preamble>
592<artwork type="example">
593saxon rfc2616.xml rfc2629toHhp.xslt basename=rfc2616  > rfc2616.hhp
594saxon rfc2616.xml rfc2629toHhc.xslt basename=rfc2616  > rfc2616.hhc
595saxon rfc2616.xml rfc2629toHhk.xslt basename=rfc2616  > rfc2616.hhk
596hhc rfc2616.hhp
597</artwork>
598</figure>
599</section>
600
601<section title="Transforming to PDF" anchor="output.pdf">
602
603<section title="Via XSL-FO" anchor="output.pdf.fop">
604<t>
605  Transformation to XSL-FO <xref target="XSL-FO"/> format is available through
606  <spanx style="verb">rfc2629toFO.xslt</spanx> (which includes <spanx style="verb">rfc2629.xslt</spanx>, so keep both in the
607  same folder).
608</t>
609<t>
610  Compared to HTML user agents, XSL-FO engines unfortunately either come
611  as open source (for instance, <iref item="Apache FOP"/>Apache FOP) or
612  feature-complete (for instance, <iref item="AntennaHouse XSL Formatter"/>
613  AntennaHouse XSL Formatter), but not both at the same time.
614</t>
615<t>
616  As Apache FOP needs special workarounds (index generation), and
617  some popular extensions aren't standardized yet, the translation produces
618  a generic output (hopefully) conforming to <xref target="XSL-FO"/>.
619  Specific backends (<spanx style="verb">xsl11toFop.xslt</spanx>,
620  <spanx style="verb">xsl11toXep.xslt</spanx>, <spanx style="verb">xsl11toAn.xslt</spanx>)
621  then provide post-processing for the individual processors.
622</t>
623<x:note>
624  <t>
625    <x:h>Note:</x:h>
626    the output is currently targeted at Apache FOP 1.0.
627  </t>
628</x:note>
629
630<section title="Extension feature matrix">
631<texttable>
632  <ttcol/>
633  <ttcol align="center" width="20%">PDF anchors</ttcol>
634  <ttcol align="center" width="20%">PDF bookmarks</ttcol>
635  <ttcol align="center" width="20%">PDF document information</ttcol>
636  <ttcol align="center" width="20%">Index cleanup</ttcol>
637 
638  <c><eref target="http://www.w3.org/TR/2003/WD-xsl11-20031217/">XSL 1.1 WD</eref></c>
639  <c>no, but can be auto-generated from "id" attributes</c> 
640  <c><eref target="http://www.w3.org/TR/2003/WD-xsl11-20031217/#d0e12873">yes</eref></c>
641  <c>no, but uses XEP output extensions</c>
642  <c><eref target="http://www.w3.org/TR/2003/WD-xsl11-20031217/#d0e12534">yes</eref></c>
643
644  <c><eref target="http://www.antennahouse.com/">Antenna House XSL formatter</eref></c>
645  <c>no</c>
646  <c><eref target="http://www.antennahouse.com/XSL20/axf-extension.htm">yes</eref> (from XSL 1.1 bookmarks)</c>
647  <c><eref target="http://www.antennahouse.com/XSL20/axf-extension.htm">yes</eref> (from XEP document info)</c>
648  <c><eref target="http://www.antennahouse.com/XSL20/axf-extension.htm">yes</eref> (just page duplicate elimination, from XSL 1.1 page index)</c>
649
650  <c><eref target="http://xml.apache.org/fop/">Apache FOP</eref></c>
651  <c><eref target="http://xml.apache.org/fop/extensions.html#named-destinations">yes</eref></c>
652  <c><eref target="http://xml.apache.org/fop/extensions.html#bookmarks">yes</eref> (from XSL 1.1 bookmarks)</c>
653  <c><eref target="http://xmlgraphics.apache.org/fop/0.95/metadata.html#xmp-in-fo">yes</eref></c>
654  <c>no</c>
655
656  <c><eref target="http://xep.xattic.com/">RenderX XEP</eref></c>
657  <c>no</c>
658  <c><eref target="http://xep.xattic.com/xep/spec.html">yes</eref> (from XSL 1.1 bookmarks)</c>
659  <c><eref target="http://xep.xattic.com/xep/spec.html">yes</eref></c>
660  <c><eref target="http://xep.xattic.com/xep/spec.html">yes</eref> (from XSL 1.1 page index)</c>
661
662</texttable>
663</section>
664
665<section title="Example: producing output for Apache FOP">
666<figure>
667<preamble>Example:</preamble>
668<artwork type="example">
669saxon rfc2616.xml rfc2629toFo.xslt > tmp.fo
670saxon tmp.fo xsl11toFop.xslt > rfc2629.fo
671</artwork>
672</figure>
673</section>
674</section>
675
676<section title="Via X(HTML)" anchor="output.pdf.html">
677<t>
678  PDF output can also be produced directly from (X)HTML. One simple approach
679  is to rely on the browser's printing function, and to use a printer driver
680  that produces PDF. Depending on the brower's CSS capabilities, the output
681  will behave properly with respect to table breaks etc.
682</t>
683<t>
684  An alternative is PrinceXML (see <eref target="http://www.princexml.com/"/>),
685  which can produce PDF directly from (X)HTML input, based on the CSS printing
686  information.
687</t>
688<figure>
689  <preamble>
690    For instance, PDF output with text justification turned on can be
691    produced with:
692  </preamble>
693  <artwork type="example">
694saxon input.xml rfc2629toXHTML.xslt xml2rfc-ext-justification=print \
695  > output.xhtml
696prince output.xhtml output.pdf</artwork>
697</figure>
698</section>
699
700</section>
701
702<section title="Transforming to ePub" anchor="output.epub">
703<t>
704  Experimental transformation to ePub format is available through a set
705  of stylesheets, and the Unix Shell script
706  <spanx style="verb">mkepub.sh</spanx> (which requires that "zip" and either
707  "saxon" or "xsltproc" are installed).
708</t>
709<figure>
710  <preamble>
711    For instance, an epub version of rfc2616.xml can be generated like this:
712  </preamble>
713  <artwork type="example">
714mkepub.sh rfc2616.xml
715</artwork>
716</figure>
717</section>
718
719<section title="Generic Extensions" anchor="extensions">
720<t>
721  This section documents extensions implemented in
722  <spanx style="verb">rfc2629.xslt</spanx>, using the extension
723  namespace "http://purl.org/net/xml2rfc/ext".
724</t>
725
726<section title="&lt;abnf-char-sequence> element" anchor="ext.element.abnf-char-sequence">
727  <iref item="Extension Elements" subitem="abnf-char-sequence" primary="true"/>
728  <iref item="abnf-char-sequence Extension Element" primary="true"/>
729  <x:anchor-alias value="abnf-char-sequence"/>
730  <t>
731    Converts the contained quoted string into a hex-encoded character
732    sequence, for use in case-sensitive ABNF productions.
733  </t>
734  <t>
735    For instance, "&lt;x:abnf-char-sequence>"HTTP"&lt;/x:abnf-char-sequence>"
736    gets converted to "<x:abnf-char-sequence>"HTTP"</x:abnf-char-sequence>".
737  </t>
738</section>
739
740<section title="&lt;anchor-alias> element" anchor="ext.element.anchor-alias">
741  <iref item="Extension Elements" subitem="anchor-alias" primary="true"/>
742  <iref item="anchor-alias Extension Element" primary="true"/>
743  <x:anchor-alias value="anchor-alias"/>
744  <t>
745    Using its "value" attribute, this element allows the definition of an
746    internal link target alias for the enclosing element. This alias can
747    then be used with the &lt;<x:ref>ref</x:ref>> element for intra-document
748    references.
749  </t>
750  <t>
751    Note that the anchor alias is not subject to the naming constraints that
752    apply to anchor elements (which are <eref target="http://www.w3.org/TR/REC-xml/#NT-Name">XML
753    names</eref>).
754  </t>
755</section>
756
757<!--<section title="&lt;include-author> element" anchor="ext.element.include-author">
758  <iref item="Extension Elements" subitem="include-author" primary="true"/>
759  <iref item="include-author Extension Element" primary="true"/>
760  <x:anchor-alias value="include-author"/>
761  <t>
762    This element can be used to include an author's contact information in
763    place where a paragraphj (&lt;t>) would be allowed otherwise.
764  </t>
765</section> -->
766
767<section title="&lt;bcp14> element" anchor="ext.element.bcp14">
768  <iref item="Extension Elements" subitem="bcp14" primary="true"/>
769  <iref item="bcp14 Extension Element" primary="true"/>
770  <x:anchor-alias value="bcp14"/>
771  <t>
772    This element marks the content as being one of the normative keywords
773    defined in <xref target="RFC2119"/>.
774  </t>
775  <figure>
776    <preamble>
777      The DOCTYPE definition below allows using these keywords using XML
778      entity expansion: such as in "...server &amp;MUST; accept...".
779    </preamble>
780    <artwork type="example">
781&lt;!DOCTYPE rfc [
782 &lt;!ENTITY MAY "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
783   >MAY&lt;/bcp14>">
784 &lt;!ENTITY MUST "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
785   >MUST&lt;/bcp14>">
786 &lt;!ENTITY MUST-NOT "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
787   >MUST NOT&lt;/bcp14>">
788 &lt;!ENTITY OPTIONAL "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
789   >OPTIONAL&lt;/bcp14>">
790 &lt;!ENTITY RECOMMENDED "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
791   >RECOMMENDED&lt;/bcp14>">
792 &lt;!ENTITY REQUIRED "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
793   >REQUIRED&lt;/bcp14>">
794 &lt;!ENTITY SHALL "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
795   >SHALL&lt;/bcp14>">
796 &lt;!ENTITY SHALL-NOT "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
797   >SHALL NOT&lt;/bcp14>">
798 &lt;!ENTITY SHOULD "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
799   >SHOULD&lt;/bcp14>">
800 &lt;!ENTITY SHOULD-NOT "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
801   >SHOULD NOT&lt;/bcp14>">]></artwork>
802  </figure>
803</section>
804
805<section title="&lt;bb> element" anchor="ext.element.bb">
806  <iref item="Extension Elements" subitem="bb" primary="true"/>
807  <iref item="bb Extension Element" primary="true"/>
808  <x:anchor-alias value="bb"/>
809  <t>
810    Marking up a string as &lt;bb> indicates that it represents the bottom
811    line of a box drawing, replacing the "+" and "-" characters accordingly.
812  </t>
813</section>
814
815<section title="&lt;bc> element" anchor="ext.element.bc">
816  <iref item="Extension Elements" subitem="bc" primary="true"/>
817  <iref item="bc Extension Element" primary="true"/>
818  <x:anchor-alias value="bc"/>
819  <t>
820    Marking up a string as &lt;bc> indicates that it represents a center
821    line of a box drawing, replacing the "|" character accordingly.
822  </t>
823</section>
824
825<section title="&lt;blockquote> element" anchor="ext.element.blockquote">
826  <iref item="Extension Elements" subitem="blockquote" primary="true"/>
827  <iref item="blockquote Extension Element" primary="true"/>
828  <x:anchor-alias value="blockquote"/>
829  <t>
830    This element is like the "<eref target="http://www.w3.org/TR/html401/struct/text.html#edef-BLOCKQUOTE">blockquote</eref>" element in <xref target="HTML"/> 
831    (note this is a block-level element!). It should contain one or more
832    &lt;t> child elements.
833  </t>
834</section>
835
836<section title="&lt;boilerplate> element" anchor="ext.element.boilerplate">
837  <iref item="Extension Elements" subitem="boilerplate" primary="true"/>
838  <iref item="boilerplate Extension Element" primary="true"/>
839  <x:anchor-alias value="boilerplate"/>
840  <t>
841    Can be used to include boilerplate (status, copyright, ...) into the
842    front or back section. &lt;section> elements within &lt;x:boilerplate>
843    appear as unnumbered sections in the output.
844  </t>
845  <t>
846    <spanx>This element currently can not be "down-translated" for use
847    in xml2rfc!</spanx>
848  </t>
849</section>
850
851<section title="&lt;bt> element" anchor="ext.element.bt">
852  <iref item="Extension Elements" subitem="bt" primary="true"/>
853  <iref item="bt Extension Element" primary="true"/>
854  <x:anchor-alias value="bt"/>
855  <t>
856    Marking up a string as &lt;bt> indicates that it represents the top
857    line of a box drawing, replacing the "+" and "-" characters accordingly.
858  </t>
859</section>
860
861<section title="&lt;dfn> element" anchor="ext.element.dfn">
862  <iref item="Extension Elements" subitem="dfn" primary="true"/>
863  <iref item="dfn Extension Element" primary="true"/>
864  <x:anchor-alias value="dfn"/>
865  <t>
866    This element is like the "<eref target="http://www.w3.org/TR/html401/struct/text.html#edef-DFN">dfn</eref>" element in <xref target="HTML"/>.
867  </t>
868</section>
869
870<section title="&lt;h> element" anchor="ext.element.h">
871  <iref item="Extension Elements" subitem="h" primary="true"/>
872  <iref item="h Extension Element" primary="true"/>
873  <x:anchor-alias value="h"/>
874  <t>
875    This element is like the "<eref target="http://www.w3.org/TR/2006/WD-xhtml2-20060726/mod-structural.html#edef_structural_h">h</eref>" element in <xref target="XHTML2"/>.
876  </t>
877</section>
878
879<section title="&lt;highlight> element" anchor="ext.element.highlight">
880  <iref item="Extension Elements" subitem="highlight" primary="true"/>
881  <iref item="highlight Extension Element" primary="true"/>
882  <x:anchor-alias value="highlight"/>
883  <t>
884    Used to highlight text passages, currently only allowed in &lt;artwork>.
885  </t>
886  <t>
887    <x:h>Note:</x:h> this is stripped when generating input for xml2rfc,
888    so please use with care.
889  </t>
890</section>
891
892<section title="&lt;length-of> element" anchor="ext.element.length-of">
893  <iref item="Extension Elements" subitem="length-of" primary="true"/>
894  <iref item="length-of Extension Element" primary="true"/>
895  <x:anchor-alias value="length-of"/>
896  <t>
897    This element can be used to insert the length of another formatted
898    section (in decimal).
899  </t>
900  <figure>
901    <preamble>Example: computing the Content-Length header value</preamble>
902    <artwork type="example">
903&lt;artwork>
904...
905Content-Length: &lt;x:length-of target="req"/>
906 
907&lt;x:span anchor="req">123456789
908&lt;x:span>&lt;artwork/>
909</artwork>
910  </figure>
911  <t>
912    The lenght computation counts line ends as two characters (CRLF).
913  </t>
914  <t>
915    Note that indentation characters in artwork <spanx>will</spanx> be
916    counted. The "indented" attribute allows to specify the amount of
917    indentation to be substracted from the computed length.
918  </t>
919</section>
920
921<section title="&lt;link> element" anchor="ext.element.link">
922  <iref item="Extension Elements" subitem="link" primary="true"/>
923  <iref item="link Extension Element" primary="true"/>
924  <x:anchor-alias value="link"/>
925  <t>
926    This element can be added as a top-level child element below
927    &lt;rfc> to indicate additional link information. It's currently
928    used only when generating HTML output, in which case an HTML
929    <eref target="http://www.w3.org/TR/html4/struct/links.html#edef-LINK">&lt;link></eref> element with identical attributes gets generated.
930  </t>
931  <figure>
932    <preamble>Example: generating HTML link element</preamble>
933    <artwork type="example">
934        &lt;x:link xmlns="http://purl.org/net/xml2rfc/ext"
935            rel="Bookmark"
936            title="IETF WEBDAV Working Group"
937            href="http://ftp.ics.uci.edu/pub/ietf/webdav/"/></artwork>
938  </figure>
939</section>
940
941<section title="&lt;lt> element" anchor="ext.element.lt">
942  <iref item="Extension Elements" subitem="lt" primary="true"/>
943  <iref item="lt Extension Element" primary="true"/>
944  <x:anchor-alias value="lt"/>
945  <t>
946    Used for grouping multiple &lt;t&gt; elements into a single list item.
947  </t>
948</section>
949
950<section title="&lt;note> element" anchor="ext.element.note">
951  <iref item="Extension Elements" subitem="note" primary="true"/>
952  <iref item="note Extension Element" primary="true"/>
953  <x:anchor-alias value="note"/>
954  <t>
955    Can be used to add a note, usually indented by a few characters.
956    It should contain one or more &lt;t> child elements.
957  </t>
958</section>
959
960<section title="&lt;parse-xml> element" anchor="ext.element.parse-xml">
961  <iref item="Extension Elements" subitem="parse-xml" primary="true"/>
962  <iref item="parse-xml Extension Element" primary="true"/>
963  <x:anchor-alias value="parse-xml"/>
964  <t>
965    This element instructs the processor to parse the contents as XML and
966    to warn when there's a problem (requires either MSXML or Saxon8 or newer).
967  </t>
968</section>
969
970<section title="&lt;prose> element" anchor="ext.element.prose">
971  <iref item="Extension Elements" subitem="prose" primary="true"/>
972  <iref item="prose Extension Element" primary="true"/>
973  <x:anchor-alias value="prose"/>
974  <t>
975    This element can be used inside &lt;reference> to add plain text (before
976    the date, when present).
977  </t>
978</section>
979
980<section title="&lt;q> element" anchor="ext.element.q">
981  <iref item="Extension Elements" subitem="q" primary="true"/>
982  <iref item="q Extension Element" primary="true"/>
983  <x:anchor-alias value="q"/>
984  <t>
985    This element is like the "<eref target="http://www.w3.org/TR/html401/struct/text.html#edef-Q">q</eref>" element in <xref target="HTML"/>.
986  </t>
987</section>
988
989<section title="&lt;ref> element" anchor="ext.element.ref">
990  <iref item="Extension Elements" subitem="ref" primary="true"/>
991  <iref item="ref Extension Element" primary="true"/>
992  <x:anchor-alias value="ref"/>
993  <t>
994    This element is a simplified variant of the &lt;xref> element, in that
995    no "target" attribute needs to be specified, instead the text contents
996    acts as identifier.  That in itself wouldn't be terribly useful,
997    but together with the &lt;<x:ref>anchor-alias</x:ref>>, it allows
998    referring to other parts of the document with minimal additional markup.
999  </t>
1000  <t>
1001    For instance, given an alias definition such as
1002  </t>
1003  <figure>
1004    <artwork type="example">
1005      &lt;section title="Test" anchor="test">
1006        &lt;x:anchor-alias value="alias1"/>
1007        &lt;x:anchor-alias value="alias 2"/>
1008        ...
1009      &lt;/section></artwork>
1010  </figure>
1011  <t>
1012    the following simple references
1013  </t>
1014  <figure>
1015    <artwork type="example">
1016      &lt;x:ref>test&lt;/x:ref>
1017      &lt;x:ref>alias1&lt;/x:ref>
1018      &lt;x:ref>alias 2&lt;/x:ref></artwork>
1019  </figure>
1020  <t>
1021    are equivalent to...:
1022  </t>
1023  <figure>
1024    <artwork type="example">
1025      &lt;xref target="test">test&lt;/xref>
1026      &lt;xref target="test">alias1&lt;/xref>
1027      &lt;xref target="test">alias 2&lt;/xref></artwork>
1028  </figure>
1029</section>
1030
1031<section title="&lt;source> element" anchor="ext.element.source">
1032  <iref item="Extension Elements" subitem="source" primary="true"/>
1033  <iref item="source Extension Element" primary="true"/>
1034  <x:anchor-alias value="source"/>
1035  <t>
1036    Can be used to enhance a &lt;reference> with information about the
1037    location for the XML source. This can be used by the &lt;xref>
1038    processing code to automatically extract the target section number.
1039  </t>
1040  <figure>
1041    <preamble>
1042      For example:
1043    </preamble>
1044    <artwork type="example">
1045      ...
1046      &lt;xref target="RFC2616" x:fmt="of" x:rel="#PUT" />
1047      ...
1048   
1049      &lt;reference target="RFC2616"/>
1050        ...
1051        &lt;x:source href="rfc2616.xml"/>
1052        ...
1053    </artwork>
1054  </figure>
1055</section>
1056
1057<section title="&lt;sup> element" anchor="ext.element.sup">
1058  <iref item="Extension Elements" subitem="sup" primary="true"/>
1059  <iref item="sup Extension Element" primary="true"/>
1060  <x:anchor-alias value="sup"/>
1061  <t>
1062    This element is like the "<eref target="http://www.w3.org/TR/html401/struct/text.html#edef-SUP">sup</eref>" element in <xref target="HTML"/>.
1063  </t>
1064  <t>
1065    Note: the down conversion to RFC2629 format replaces
1066    "x<x:sup>y</x:sup>" by "x^y".
1067  </t>
1068</section>
1069
1070<section title="Extensions to Xml2rfc &lt;artwork&gt; element" anchor="ext-rfc2629.artwork">
1071<t>
1072  Sometimes, artwork occurs inside lists. To get it indent properly in xml2rfc's
1073  text output, it needs to be indented in the source. This is sub-optimal, as
1074  this whitespace will also appear in the HTML output, where it's already
1075  indented due to HTML's semantics.
1076</t>
1077<t>
1078  As a workaround, a "x:indent-with" attribute can be specified, containing
1079  a string that will be prepended to each line when <spanx style="verb">clean-for-DTD.xslt</spanx>
1080  is run (see <xref target="clean-for-dtd"/>).
1081</t>
1082</section>
1083
1084<section title="Extensions to Xml2rfc &lt;iref&gt; element" anchor="ext-rfc2629.iref">
1085<t>
1086  The extension attribute below is allowed on the standard &lt;iref&gt; element:
1087  <list style="symbols">
1088    <t>x:for-anchor specifies that the &lt;iref&gt; will also be automatically
1089    inserted whenever the specified anchor is cross-referenced -- this may
1090    save entering lots of &lt;iref&gt; instances. As a special case, a value of
1091    "" (empty string) refers to the anchor attribute of the closest ancestor.</t>
1092  </list>
1093</t>
1094</section>
1095
1096<section title="Extensions to Xml2rfc &lt;list&gt; element" anchor="ext-rfc2629.list">
1097<t>
1098  The extension attribute below is allowed on the standard &lt;list&gt; element:
1099  <list style="symbols">
1100    <t>x:indent specifies the amount of indentation for list items in hanging
1101    lists. This can be useful when the output format, such as XSL-FO, does not
1102    support automatical formatting. The value takes an XSL-FO width, such as "5em".
1103    The default is <spanx>length of longest label in characters</spanx> times
1104    <spanx>0.8em</spanx>.</t>
1105  </list>
1106</t>
1107<t>
1108  Also, the &lt;list&gt; element can take &lt;x:<x:ref>lt</x:ref>&gt; child elements instead of
1109  &lt;t&gt;, allowing to insert multiple paragraphs into a single list item.
1110</t>
1111</section>
1112
1113<section title="Extensions to Xml2rfc &lt;rfc&gt; element" anchor="ext-rfc2629.rfc">
1114<t>
1115  The extension attributes below are allowed on the standard &lt;rfc&gt; element:
1116  <list style="symbols">
1117    <t>grddl:transformation can be used to reference a GRDDL transform.</t>
1118    <t>x:maturiy-level can be used to specify the IETF Standards Track
1119    Maturity Level of "proposed", "draft" or "internet" (see <xref target="RFC2026" x:fmt="of" x:sec="4.1"/>).</t>
1120  </list>
1121</t>
1122</section>
1123
1124<section title="Extensions to Xml2rfc &lt;section&gt; element" anchor="ext-rfc2629.section">
1125<t>
1126  The extension attribute below is allowed on the standard &lt;list&gt; element:
1127  <list style="symbols">
1128    <t>x:fixed-section-number can be used to specify a fixed section number.
1129    This can be useful when formatting historic documents that used a different
1130    numbering style.</t>
1131  </list>
1132</t>
1133</section>
1134
1135<section title="Extensions to Xml2rfc &lt;xref&gt; element" anchor="ext-rfc2629.xref">
1136<t>
1137  Three extension attributes are allowed on the standard &lt;xref&gt; element:
1138  <list style="numbers">
1139    <t>x:sec can be specified to point to a specific section of the referenced document,</t>
1140    <t>x:rel may specify a relative reference to use when linking into the referenced document (if linking by section number is not available),</t>
1141    <t>x:fmt defines the text format to be used.</t>
1142  </list>
1143</t>
1144<t>
1145  The following formats are defined for the x:fmt attribute:
1146  <list style="hanging">
1147    <t hangText=", (Comma)">
1148      [<spanx>reference</spanx>], Section <spanx>sec</spanx>
1149    </t>
1150    <t hangText="()">
1151      [<spanx>reference</spanx>] (Section <spanx>sec</spanx>)
1152    </t>
1153    <t hangText="anchor">
1154      Like the default format, but without brackets.
1155    </t>
1156    <t hangText="of">
1157      Section <spanx>sec</spanx> of [<spanx>reference</spanx>]
1158    </t>
1159    <t hangText="number">
1160      <spanx>sec</spanx>
1161    </t>
1162    <t hangText="none">
1163      No output (can be used to have xrefs to references without
1164      having them rendered as such)
1165    </t>
1166    <t hangText="sec">
1167      Section <spanx>sec</spanx>
1168    </t>
1169  </list>
1170</t>
1171<t>
1172  These extensions are currently only supported for &lt;xref&gt; elements without
1173  child nodes.
1174</t>
1175<t>
1176  If the processor knows how to reference the target section, it will generate
1177  a link directly to the target section, such as in <xref target="RFC2119" x:fmt="," x:sec="5"/>.
1178</t>
1179</section>
1180
1181</section>
1182
1183<section title="Utilities" anchor="utilities">
1184
1185<section title="Checking References" anchor="checking-references">
1186<t>
1187  <spanx style="verb">check-references.xslt</spanx> can be used to check
1188  all references to RFC- and ID-series IETF publications and to W3C publications (note
1189  this script requires local copies of
1190  <eref target="ftp://ftp.isi.edu/in-notes/rfc-index.xml"/> and
1191  <eref target="http://www.w3.org/2002/01/tr-automation/tr.rdf"/> and
1192  will use the XML status information provided at <eref target="http://tools.ietf.org/"/>).
1193</t>
1194<t>
1195  If the document is supposed to be published on the IETF standards track,
1196  the desired level can be specified using the parameter <spanx style='verb'>intended-level</spanx>
1197  as 'proposed', 'draft' or 'internet'. Alternatively, it can be specified
1198  inside the document using the attribute x:maturity-level on the &lt;rfc> element.
1199</t>
1200<t>
1201  <x:h>Note:</x:h> Downward references should be
1202  annotated using the &lt;annotate> element, containing an &lt;xref> to
1203  <xref target="BCP97"/>.
1204</t>
1205<t>
1206  When an XSLT 2.0 processor is used, links in the document can be checked as well
1207  using the <spanx style='verb'>link-check</spanx> paramerer ('yes' or 'no').
1208  Note that this only works for http links to documents of type text/*.
1209</t>
1210<figure>
1211<preamble>
1212For instance, as of 2008-07-12, the script produces for <eref target="http://greenbytes.de/tech/webdav/rfc2518.xml"/>:
1213</preamble>
1214<artwork type="example">
1215> saxon rfc2518.xml check-references.xslt intended-status=PROPOSED \
1216  link-check=yes
1217
1218Normative References:
1219ISO-11578: not checked
1220ISO-639: not checked
1221ISO-8601: not checked
1222REC-xml-19980210: [FirstEdition] obsoleted by REC-xml-20001006
1223REC-xml-names-19990114: [FirstEdition] obsoleted by
1224 REC-xml-names-20060816
1225RFC1766: [PROPOSED STANDARD] obsoleted by RFC3066 RFC3282
1226RFC2068: [PROPOSED STANDARD] obsoleted by RFC2616
1227RFC2069: [PROPOSED STANDARD] obsoleted by RFC2617
1228RFC2119: [BEST CURRENT PRACTICE] (-> BCP0014) ok
1229RFC2141: [PROPOSED STANDARD] ok
1230RFC2277: [BEST CURRENT PRACTICE] (-> BCP0018) ok
1231RFC2396: [DRAFT STANDARD] obsoleted by RFC3986
1232RFC2279: [DRAFT STANDARD] obsoleted by RFC3629
1233
1234Informational References:
1235REC-PICS-labels-961031: [REC] ok
1236RFC1807: [INFORMATIONAL] ok
1237RFC2026: [BEST CURRENT PRACTICE] (-> BCP0009) ok
1238RFC2291: [INFORMATIONAL] ok
1239RFC2376: [INFORMATIONAL] obsoleted by RFC3023
1240RFC2413: [INFORMATIONAL] obsoleted by RFC5013
1241USMARC: not checked
1242WF: not checked
1243
1244Link Targets
1245&lt;http://www.w3.org/TR/1998/REC-xml-19980210>: ok
1246&lt;http://www.w3.org/TR/1999/REC-xml-names-19990114>: ok
1247&lt;http://www.dlib.org/dlib/july96/lagoze/07lagoze.html>: ok
1248&lt;http://www.w3.org/pub/WWW/TR/REC-PICS-labels-961031.html>: ok
1249</artwork></figure>
1250<t>
1251  Recognized formats in the &lt;seriesInfo> element are:
1252  <list style="symbols">
1253    <t>for RFCs, the name attribute must be "RFC", and the value attribute must
1254    be the number of the RFC,</t>
1255    <t>for Internet Drafs, the name attribute must be "ID" or "Internet-Draft", and the value attribute must
1256    be the file name of the draft (including the two-digit running number, but excluding a file extension),</t>
1257    <t>for W3C documents, the name attribute must be "W3C", must start with "W3C&#160;", or
1258    must start with "World Wide Web Consortium&#160;", and the value attribute
1259    must be the "shorthand" name of the specification, such as "REC-xml-19980210".</t>
1260  </list>
1261</t>
1262<x:note>
1263<t>
1264  <x:h>Note:</x:h> this stylesheet will need network access to check links and
1265  status of Internet Drafts. When running a Java-based XSLT engine, you may have
1266  to supply Java system properties specifying the HTTP proxy to be used, such
1267  as "-Dhttp.proxyHost=hostname -Dhttp.proxyPort=80".
1268</t>
1269</x:note>
1270
1271</section>
1272
1273<section title="Generating Graphs from References">
1274<t>
1275  <spanx style="verb">gen-reference-graph.xslt</spanx> generates a graph
1276  of RFC dependencies, using the same base data as in <spanx style="verb">check-references.xslt</spanx>
1277  (see <xref target="checking-references"/>). Its output is a "dot" file,
1278  to be processed by GraphViz (see <eref target="http://www.graphviz.org/"/>).
1279</t>
1280<figure>
1281<preamble>
1282The picture below shows the RFC dependencies in RFC2629.
1283</preamble>
1284<artwork src="rfc2629xslt-fig2.png" type="image/png">
1285(PNG output obtained from GraphViz)
1286</artwork>
1287</figure>
1288</section>
1289
1290<section title="Producing reference entries for books">
1291<t>
1292  <spanx style="verb">amazon-asin.xslt</spanx> uses the Amazon web services
1293  to generate a &lt;reference> element for a given ASIN (ISBN).
1294</t>
1295<figure>
1296<preamble>For instance:</preamble>
1297<artwork type="example">
1298&lt;?xml version="1.0" encoding="utf-8"?>
1299&lt;references>
1300 &lt;reference target="urn:isbn:0134516591">
1301   &lt;front>
1302     &lt;title>Simple Book, The: An Introduction to Internet Management,
1303               Revised Second Edition&lt;/title>
1304     &lt;author surname="Rose"
1305                fullname="Marshall T. Rose" initials="M. T. ">
1306       &lt;organization/>
1307     &lt;/author>
1308     &lt;author surname="Marshall"
1309                fullname="Rose T. Marshall" initials="R. T.">
1310       &lt;organization/>
1311     &lt;/author>
1312     &lt;date year="1996" month="March"/>
1313   &lt;/front>
1314   &lt;seriesInfo name="Prentice Hall" value=""/>
1315 &lt;/reference>
1316&lt;/references>
1317</artwork></figure>
1318<t>
1319  Note that the resulting XML usually requires checking, in this case Amazon's
1320  database is playing tricks with Marshall's name...
1321</t>
1322</section>
1323
1324<section title="Down-converting to RFC2629bis DTD" anchor="clean-for-dtd">
1325<t>
1326  <spanx style="verb">clean-for-DTD.xslt</spanx> can be used to down-convert
1327  some extensions to a format that is supported by the base xml2rfc
1328  distribution.  Note that these extensions are experimental (feedback
1329  appreciated).
1330</t>
1331<t>
1332  The following mappings are done:
1333  <list style="symbols">
1334    <t>
1335      &lt;iref> elements inside &lt;artwork> elements are moved in front
1336      of the enclosing &lt;figure> element.
1337    </t>
1338    <t>
1339      &lt;xref> elements inside &lt;artwork> are expanded just like in
1340      regular text (that is, the markup is stripped, but the element
1341      is replaced by the applicable replacement text).
1342    </t>
1343    <t>
1344      &lt;x:<x:ref>anchor-alias</x:ref>> elements get stripped.
1345    </t>
1346    <t>
1347      &lt;x:<x:ref>bcp14</x:ref>> elements get stripped.
1348    </t>
1349    <t>
1350      &lt;x:<x:ref>bb</x:ref>>, &lt;x:<x:ref>bc</x:ref>> and &lt;x:<x:ref>bt</x:ref>> elements get stripped.
1351    </t>
1352    <t>
1353      &lt;x:<x:ref>blockquote</x:ref>> elements get converted to
1354      indented text (through a &lt;list> element).
1355    </t>
1356    <t>
1357      &lt;x:<x:ref>dfn</x:ref>> elements get stripped.
1358    </t>
1359    <t>
1360      &lt;x:<x:ref>h</x:ref>> elements get stripped.
1361    </t>
1362    <t>
1363      &lt;x:<x:ref>link</x:ref>> elements get stripped.
1364    </t>
1365    <t>
1366      &lt;x:<x:ref>lt</x:ref>> elements get collapsed into a single &lt;lt>
1367      element with added &lt;vspace> added to simulate paragraph breaks.
1368    </t>
1369    <t>
1370      &lt;x:<x:ref>note</x:ref>> elements get converted to
1371      indented text (through a &lt;list> element).
1372    </t>
1373    <t>
1374      &lt;x:<x:ref>q</x:ref>> elements get stripped, with apostrophes
1375      added around the text.
1376    </t>
1377    <t>
1378      &lt;x:<x:ref>prose</x:ref>> elements are transformed into
1379      &lt;seriesInfo> elements (which is an abuse of the element and only
1380      a workaround until xml2rfc gets a matching extension).
1381    </t>
1382    <t>
1383      &lt;x:<x:ref>ref</x:ref>> elements get replaced by &lt;xref>
1384      elements, targetting either the anchor or another anchor with
1385      matching &lt;x:<x:ref>anchor-alias</x:ref>> child element.
1386    </t>
1387  </list>
1388</t>
1389</section>
1390
1391<section title="Extracting artwork" anchor="extract-artwork">
1392<t>
1393  With <spanx style="verb">extract-artwork.xslt</spanx>, artwork elements
1394  named through the "name" attribute can be extracted. This can be used
1395  to automatically check their syntax (for instance, when ABNFs appear
1396  within a figure element).
1397</t>
1398<figure><preamble>For instance:</preamble>
1399<artwork type="example">saxon rfc3986.xml extract-artwork.xslt name=uri.abnf
1400</artwork>
1401</figure>
1402<t>
1403  In addition, artwork of a specific type can be extracted, such as with:
1404</t>
1405<figure>
1406<artwork type="example">saxon rfc3986.xml extract-artwork.xslt type=abnf
1407</artwork>
1408</figure>
1409<t>
1410  When extracting by type, artwork elements with a specified name can be
1411  excluded; this can be handy when the document uses some kind of schema
1412  language, and an appendix contains the collected schema, repeating definitions
1413  from earlier on. Example:
1414</t>
1415<figure><artwork type="example">saxon rfc3986.xml extract-artwork.xslt type=abnf except-name=clschm
1416</artwork></figure>
1417</section>
1418
1419<section title="GRRDL" anchor="grddl">
1420<t>
1421  <spanx style="verb">rfc2629grddl.xslt</spanx> extracts RDF
1422  information. This is experimental work-in-progress. See
1423  <eref target="http://www.w3.org/TR/grddl/"/> for more information.
1424</t>
1425</section>
1426</section>
1427
1428 
1429
1430</middle>
1431
1432<back>
1433<references title="Informative References">
1434
1435<reference anchor='RFC2026'>
1436  <front>
1437    <title abbrev='Internet Standards Process'>The Internet Standards Process -- Revision 3</title>
1438    <author initials='S.' surname='Bradner' fullname='Scott O. Bradner'>
1439      <organization>Harvard University</organization>
1440      <address>
1441        <email>sob@harvard.edu</email>
1442      </address>
1443    </author>
1444    <date year='1996' month='October' />
1445  </front>
1446  <seriesInfo name='BCP' value='9' />
1447  <seriesInfo name='RFC' value='2026' />
1448</reference>
1449
1450<reference anchor="RFC2119">
1451  <front>
1452    <title abbrev="RFC Key Words">Key words for use in RFCs to Indicate Requirement Levels</title>
1453    <author initials="S." surname="Bradner" fullname="Scott Bradner">
1454      <organization>Harvard University</organization>
1455      <address>
1456        <email>sob@harvard.edu</email>
1457      </address>
1458    </author>
1459    <date month="March" year="1997"/>
1460  </front>
1461  <seriesInfo name="BCP" value="14"/>
1462  <seriesInfo name="RFC" value="2119"/>
1463</reference>
1464
1465<reference anchor="RFC2616">
1466  <front>
1467  <title abbrev="HTTP/1.1">Hypertext Transfer Protocol -- HTTP/1.1</title>
1468  <author initials="R.T." surname="Fielding" fullname="Roy T. Fielding">
1469  <organization>University of California, Irvine, Information and Computer Science</organization>
1470  <address>
1471  <postal>
1472  <street/>
1473  <city>Irvine</city>
1474  <region>CA</region>
1475  <code>92697-3425</code>
1476  <country>US</country></postal>
1477  <phone>+1 949 824 1715</phone>
1478  <email>fielding@ics.uci.edu</email></address></author>
1479  <author initials="J." surname="Gettys" fullname="James Gettys">
1480  <organization>World Wide Web Consortium, MIT Laboratory for Computer Science</organization>
1481  <address>
1482  <postal>
1483  <street>545 Technology Square</street>
1484  <city>Cambridge</city>
1485  <region>MA</region>
1486  <code>02139</code>
1487  <country>US</country></postal>
1488  <phone/>
1489  <facsimile>+1 617 258 8682</facsimile>
1490  <email>jg@w3.org</email></address></author>
1491  <author initials="J.C." surname="Mogul" fullname="Jeffrey C. Mogul">
1492  <organization>Compaq Computer Corporation, Western Research Laboratory</organization>
1493  <address>
1494  <postal>
1495  <street>250 University Avenue</street>
1496  <city>Palo Alto</city>
1497  <region>CA</region>
1498  <code>94301</code>
1499  <country>US</country></postal>
1500  <phone/>
1501  <email>mogul@wrl.dec.com</email></address></author>
1502  <author initials="H.F." surname="Nielsen" fullname="Henrik Frystyk Nielsen">
1503  <organization>World Wide Web Consortium, MIT Laboratory for Computer Science</organization>
1504  <address>
1505  <postal>
1506  <street>545 Technology Square</street>
1507  <city>Cambridge</city>
1508  <region>MA</region>
1509  <code>02139</code>
1510  <country>US</country></postal>
1511  <phone/>
1512  <facsimile>+1 617 258 8682</facsimile>
1513  <email>frystyk@w3.org</email></address></author>
1514  <author initials="L." surname="Masinter" fullname="Larry Masinter">
1515  <organization>Xerox Corporation</organization>
1516  <address>
1517  <postal>
1518  <street>3333 Coyote Hill Road</street>
1519  <city>Palo Alto</city>
1520  <region>CA</region>
1521  <code>94034</code>
1522  <country>US</country></postal>
1523  <phone/>
1524  <email>masinter@parc.xerox.com</email></address></author>
1525  <author initials="P.J." surname="Leach" fullname="Paul J. Leach">
1526  <organization>Microsoft Corporation</organization>
1527  <address>
1528  <postal>
1529  <street>1 Microsoft Way</street>
1530  <city>Redmond</city>
1531  <region>WA</region>
1532  <code>98052</code>
1533  <country>US</country></postal>
1534  <phone/>
1535  <email>paulle@microsoft.com</email></address></author>
1536  <author initials="T." surname="Berners-Lee" fullname="Tim Berners-Lee">
1537  <organization>World Wide Web Consortium, MIT Laboratory for Computer Science</organization>
1538  <address>
1539  <postal>
1540  <street>545 Technology Square</street>
1541  <city>Cambridge</city>
1542  <region>MA</region>
1543  <code>02139</code>
1544  <country>US</country></postal>
1545  <phone>+1 617 258 8682</phone>
1546  <facsimile/>
1547  <email>timbl@w3.org</email></address></author>
1548  <date month="June" year="1999"/>
1549  </front>
1550  <seriesInfo name="RFC" value="2616"/>
1551</reference>
1552
1553<reference anchor='RFC2629'>
1554  <front>
1555    <title>Writing I-Ds and RFCs using XML</title>
1556    <author initials='M.T.' surname='Rose' fullname='Marshall T. Rose'>
1557      <organization>Invisible Worlds, Inc.</organization>
1558      <address>
1559        <postal>
1560          <street>660 York Street</street>
1561          <city>San Francisco</city>
1562          <region>CA</region>
1563          <code>94110</code>
1564          <country>US</country>
1565        </postal>
1566        <phone>+1 415 695 3975</phone>
1567        <email>mrose@not.invisible.net</email>
1568        <uri>http://invisible.net/</uri>
1569      </address>
1570    </author>
1571    <date month='June' year='1999' />
1572  </front>
1573  <seriesInfo name='RFC' value='2629' />
1574</reference>
1575
1576<reference anchor='RFC2648'>
1577  <front>
1578    <title>A URN Namespace for IETF Documents</title>
1579    <author initials='R.' surname='Moats' fullname='Ryan Moats'>
1580      <organization>AT&amp;T</organization>
1581      <address>
1582      <postal>
1583        <street>15621 Drexel Circle</street>
1584        <city>Omaha</city>
1585        <region>NE</region>
1586        <code>68135-2358</code>
1587        <country>US</country>
1588      </postal>
1589      <email>jayhawk@att.com</email></address>
1590    </author>
1591    <date month='August' year='1999' />
1592  </front>
1593  <seriesInfo name='RFC' value='2648' />
1594</reference>
1595
1596<reference anchor='RFC2731'>
1597  <front>
1598    <title>Encoding Dublin Core Metadata in HTML</title>
1599    <author initials='J.A.' surname='Kunze' fullname='John A. Kunze'>
1600      <organization>University of California, San Francisco,  Center for Knowledge Management</organization>
1601      <address>
1602        <postal>
1603          <street>530 Parnassus Ave</street>
1604          <street>Box 0840</street>
1605          <city>San Francisco</city>
1606          <region>CA</region>
1607          <code>94143-0840</code>
1608          <country>US</country>
1609        </postal>
1610        <facsimile>+1 415 476 4653</facsimile>
1611        <email>jak@ckm.ucsf.edu</email>
1612      </address>
1613    </author>
1614    <date month='December' year='1999' />
1615  </front>
1616  <seriesInfo name='RFC' value='2731' />
1617</reference>
1618
1619<reference anchor='DC-HTML' target="http://dublincore.org/documents/2008/08/04/dc-html/">
1620  <front>
1621    <title>Expressing Dublin Core metadata using HTML/XHTML meta and link elements</title>
1622    <author initials='P.' surname='Johnston' fullname='Pete Johnston'>
1623      <organization>Eduserv Foundation</organization>
1624      <address>
1625        <email>pete.johnston@eduserv.org.uk</email>
1626      </address>
1627    </author>
1628    <author initials='A.' surname='Powell' fullname='Andy Powell'>
1629      <organization>Eduserv Foundation</organization>
1630      <address>
1631        <email>andy.powell@eduserv.org.uk</email>
1632      </address>
1633    </author>
1634    <date month='August' year='2008' />
1635  </front>
1636  <seriesInfo name='Dublin Core Metadata Initiative' value='' />
1637</reference>
1638
1639<reference anchor="RFC5234">
1640  <front>
1641    <title abbrev="ABNF for Syntax Specifications">Augmented BNF for Syntax Specifications: ABNF</title>
1642    <author initials="D." surname="Crocker" fullname="Dave Crocker" role="editor">
1643      <organization>Brandenburg InternetWorking</organization>
1644      <address>
1645      <postal>
1646      <street>675 Spruce Dr.</street>
1647      <city>Sunnyvale</city>
1648      <region>CA</region>
1649      <code>94086</code>
1650      <country>US</country></postal>
1651      <phone>+1.408.246.8253</phone>
1652      <email>dcrocker@bbiw.net</email></address> 
1653    </author>
1654    <author initials="P." surname="Overell" fullname="Paul Overell">
1655      <organization>THUS plc.</organization>
1656      <address>
1657      <postal>
1658      <street>1/2 Berkeley Square</street>
1659      <street>99 Berkely Street</street>
1660      <city>Glasgow</city>
1661      <code>G3 7HR</code>
1662      <country>UK</country></postal>
1663      <email>paul.overell@thus.net</email></address>
1664    </author>
1665    <date month="January" year="2008"/>
1666  </front>
1667  <seriesInfo name="STD" value="68"/>
1668  <seriesInfo name="RFC" value="5234"/>
1669</reference>
1670
1671<reference anchor='RFC5741'>
1672  <front>
1673    <title>RFC Streams, Headers, and Boilerplates</title>
1674    <author initials='L.' surname='Daigle' fullname='Leslie Daigle'/>
1675    <author initials='O.' surname='Kolkman' fullname='Olaf Kolkman'/>
1676    <date month='December' year='2009' />
1677  </front>
1678  <seriesInfo name='RFC' value='5741' />
1679</reference>
1680
1681
1682<reference anchor="HTML" target="http://www.w3.org/TR/html401/">
1683  <front>
1684    <title>HTML 4.01 Specification</title>
1685    <author initials="D." surname="Raggett" fullname="David Raggett">
1686      <organization>W3C</organization>
1687      <address>
1688        <email>dsr@w3.org</email>
1689      </address>
1690    </author>
1691    <author initials="A." surname="Hors" fullname="Arnaud Le Hors">
1692      <organization>W3C</organization>
1693    </author>
1694    <author initials="I." surname="Jacobs" fullname="Ian Jacobs">
1695      <organization>W3C</organization>
1696    </author>
1697    <date month="December" day="24" year="1999" />
1698  </front>
1699  <seriesInfo name="W3C" value="REC-html401-19991224" />
1700</reference>
1701
1702<reference anchor="XHTML2" target="http://www.w3.org/TR/xhtml2">
1703  <front>
1704    <title>XHTML&#8482; 2.0</title>
1705    <author initials="J." surname="Axelsson" fullname="Jonny Axelsson">
1706      <organization>Opera Software</organization>
1707    </author>
1708    <author initials="M." surname="Birbeck" fullname="Mark Birbeck">
1709      <organization>x-port.net</organization>
1710    </author>
1711    <author initials="M." surname="Dubinko" fullname="Micah Dubinko">
1712      <organization></organization>
1713    </author>
1714    <author initials="B." surname="Epperson" fullname="Beth Epperson">
1715      <organization>Websense</organization>
1716    </author>
1717    <author initials="M." surname="Ishikawa" fullname="Masayasu Ishikawa">
1718      <organization>W3C</organization>
1719    </author>
1720    <author initials="S." surname="McCarron" fullname="Shane McCarron">
1721      <organization>Applied Testing and Technology</organization>
1722    </author>
1723    <author initials="A." surname="Navarro" fullname="Ann Navarro">
1724      <organization>WebGeek, Inc.</organization>
1725    </author>
1726    <author initials="S." surname="Pemberton" fullname="Steven Pemberton">
1727      <organization>CWI</organization>
1728    </author>
1729    <date month="July" day="26" year="2006" />
1730  </front>
1731  <seriesInfo name="W3C" value="WD-xhtml2-20060726" />
1732</reference>
1733
1734<reference anchor="XSL-FO" target="http://www.w3.org/TR/2006/REC-xsl11-20061205/">
1735  <front>
1736    <title>Extensible Stylesheet Language (XSL) Version 1.1</title>
1737    <author initials="A." surname="Berglund" fullname="Anders Berglund">
1738      <organization>IBM</organization>
1739      <address>
1740        <email>alrb@us.ibm.com</email>
1741      </address>
1742    </author>
1743    <date month="Dec" day="5" year="2006" />
1744  </front>
1745  <seriesInfo name="W3C" value="REC-xsl11-20061205" />
1746</reference>
1747
1748<reference anchor="RNC" target="http://www.oasis-open.org/committees/relax-ng/compact-20021121.html">
1749  <front>
1750    <title>RELAX NG Compact Syntax</title>
1751    <author initials="J." surname="Clark" fullname="James Clark">
1752      <organization/>
1753      <address>
1754        <email>jjc@jclark.com</email>
1755      </address>
1756    </author>
1757    <date month="Nov" day="21" year="2002" />
1758  </front>
1759  <seriesInfo name="OASIS" value=""/>
1760</reference>
1761
1762<reference anchor='BCP97'>
1763  <front>
1764    <title>Handling Normative References to Standards-Track Documents</title>
1765    <author initials='J.' surname='Klensin' fullname='J. Klensin'>
1766      <organization />
1767      <address>
1768        <email>klensin+ietf@jck.com</email>
1769      </address>
1770    </author>
1771    <author initials='S.' surname='Hartman' fullname='S. Hartman'>
1772      <organization>MIT</organization>
1773      <address>
1774        <email>hartmans-ietf@mit.edu</email>
1775      </address>
1776    </author>
1777    <date year='2007' month='June' />
1778  </front>
1779  <seriesInfo name='BCP' value='97' />
1780  <seriesInfo name='RFC' value='4897' />
1781</reference>
1782
1783<reference anchor="XML" target="http://www.w3.org/TR/2008/REC-xml-20081126/">
1784  <front>
1785    <title>Extensible Markup Language (XML) 1.0 (Fifth Edition)</title>
1786    <author initials="T." surname="Bray" fullname="Tim Bray">
1787      <organization>Textuality and Netscape</organization>
1788      <address>
1789        <email>tbray@textuality.com</email>
1790      </address>
1791    </author>
1792    <author initials="J." surname="Paoli" fullname="Jean Paoli">
1793      <organization>Microsoft</organization>
1794      <address>
1795        <email>jeanpa@microsoft.com</email>
1796      </address>
1797    </author>
1798    <author initials="C.M." surname="Sperberg-McQueen" fullname="C. M. Sperberg-McQueen">
1799      <organization>W3C</organization>
1800      <address>
1801        <email>cmsmcq@w3.org</email>
1802      </address>
1803    </author>
1804    <author initials="E." surname="Maler" fullname="Eve Maler">
1805      <organization>Sun Microsystems</organization>
1806      <address>
1807        <email>eve.maler@east.sun.com</email>
1808      </address>
1809    </author>
1810    <author initials="F." surname="Yergeau" fullname="Francois Yergeau">
1811      <organization/>
1812    </author>
1813    <date day="26" month="November" year="2008"/>
1814  </front>
1815  <seriesInfo name="W3C" value="REC-xml-20081126"/>
1816</reference>
1817</references>
1818
1819  <section title="RELAX NG Compact Schema" anchor="grammar">
1820  <iref item="Grammar" primary="true"/>
1821  <iref item="Schema" primary="true"/>
1822  <iref item="RELAX NG Compact Schema" primary="true"/>
1823  <t>
1824    The RelaxNG schema (<xref target="RNC"/>) below can be used to validate
1825    input documents (for instance, with <eref target="http://www.thaiopensource.com/relaxng/jing.html">Jing</eref>).
1826  </t>
1827  <t>
1828    <spanx>Note that this is work in progress, and doesn't yet cover all
1829    extensions completely.</spanx>
1830  </t>
1831  <figure>
1832    <artwork type="application/relax-ng-compact-syntax" name="rfc2629-ext.rnc" x:extraction-note="# Automatically extracted from rfc2629xslt.xml. DO NOT EDIT!&#10;">
1833<spanx># WORK IN PROGRESS! PLEASE REPORT PROBLEMS TO THE AUTHOR.</spanx>
1834
1835<spanx># Define our extension namespace</spanx>
1836namespace x = "http://purl.org/net/xml2rfc/ext"
1837
1838<spanx># Define GRDDL namespace</spanx>
1839namespace grddl = "http://www.w3.org/2003/g/data-view#"
1840
1841<spanx># Define RDF namespace</spanx>
1842namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1843
1844<spanx># Include rfc2629bis RNC grammar</spanx>
1845include "rfc2629.rnc" {
1846 
1847  <spanx># Redefine &lt;artwork> to allow markup</spanx>
1848  artwork =
1849    element artwork {
1850      attlist.artwork,
1851      (TEXT
1852        <spanx style="strong">| eref</spanx> 
1853        <spanx style="strong">| iref</spanx> 
1854        <spanx style="strong">| spanx</spanx> 
1855        <spanx style="strong">| xref</spanx>
1856        <spanx style="strong">| <x:ref>x_abnf-char-sequence</x:ref></spanx>
1857        <spanx style="strong">| <x:ref>x_bb</x:ref></spanx>
1858        <spanx style="strong">| <x:ref>x_bc</x:ref></spanx>
1859        <spanx style="strong">| <x:ref>x_bcp14</x:ref></spanx>
1860        <spanx style="strong">| <x:ref>x_bt</x:ref></spanx>
1861        <spanx style="strong">| <x:ref>x_highlight</x:ref></spanx>
1862        <spanx style="strong">| <x:ref>x_length-of</x:ref></spanx>
1863        <spanx style="strong">| <x:ref>x_parse-xml</x:ref></spanx>
1864        <spanx style="strong">| <x:ref>x_ref</x:ref></spanx>
1865        <spanx style="strong">| <x:ref>x_span</x:ref></spanx>
1866        <spanx style="strong">| <x:ref>x_x</x:ref></spanx>)*
1867    }
1868
1869  <spanx># Redefine &lt;back> to allow boilerplate</spanx>
1870  back =
1871    element back {
1872      attlist.back,
1873      references*,
1874      section*,
1875      <spanx style="strong"><x:ref>x_boilerplate</x:ref>?</spanx>
1876    }
1877
1878  <spanx># Redefine &lt;c> to allow our extension elements</spanx>
1879  c =
1880    element c {
1881      attlist.c,
1882      (TEXT
1883        | xref
1884        | eref
1885        | iref
1886        | cref
1887        | spanx
1888        <spanx style="strong">| <x:ref>x_ref</x:ref></spanx>)*
1889    }
1890
1891  <spanx># Redefine &lt;cref> to allow more child elements</spanx>
1892  cref =
1893    element cref {
1894      attlist.cref,
1895      (TEXT
1896        | eref
1897        | xref)*
1898    }
1899
1900  <spanx># Redefine &lt;front> to allow boilerplate</spanx>
1901  front =
1902    element front {
1903      attlist.front,
1904      title,
1905      author+,
1906      date,
1907      area*,
1908      workgroup*,
1909      keyword*,
1910      <spanx style="strong"><x:ref>x_boilerplate</x:ref>?,</spanx>
1911      abstract?,
1912      note*
1913    }
1914 
1915  <spanx># Redefine &lt;list> element to allow &lt;x:<x:ref>lt</x:ref>> child elements</spanx>
1916  \list =
1917    element list {
1918      attlist.list,
1919      (t+ <spanx style="strong">| <x:ref>x_lt</x:ref>+</spanx>)
1920    }   
1921   
1922  <spanx># Redefine &lt;preamble> to allow our extension elements</spanx>
1923  preamble =
1924    element preamble {
1925      attlist.preamble,
1926      (TEXT
1927        | xref
1928        | eref
1929        | iref
1930        | cref
1931        | spanx
1932        <spanx style="strong">| <x:ref>x_anchor-alias</x:ref></spanx>)*
1933    }
1934
1935  <spanx># Redefine &lt;postamble> to allow our extension elements</spanx>
1936  postamble =
1937    element postamble {
1938      attlist.postamble,
1939      (TEXT
1940        | xref
1941        | eref
1942        | iref
1943        | cref
1944        | spanx
1945        <spanx style="strong">| <x:ref>x_bcp14</x:ref></spanx>)*
1946    }
1947
1948  <spanx># Redefine &lt;reference> to allow our extension elements</spanx>
1949  reference =
1950    element reference {
1951      attlist.reference,
1952      front,
1953      seriesInfo*,
1954      <spanx style="strong"><x:ref>x_prose</x:ref>?</spanx>
1955      format*,
1956      annotation*,
1957      <spanx style="strong"><x:ref>x_source</x:ref>?</spanx>
1958    }
1959
1960  <spanx># Redefine &lt;rfc> to allow our extension elements</spanx>
1961  rfc =
1962    element rfc {
1963      attlist.rfc,
1964      <spanx style="strong"><x:ref>x_link</x:ref>*,</spanx>
1965      <spanx style="strong"><x:ref>x_assign-section-number</x:ref>*,</spanx>
1966      front,
1967      middle,
1968      back?
1969    }
1970
1971  <spanx># Redefine &lt;section> to allow our extension elements</spanx>
1972  section =
1973    element section {
1974      attlist.section,
1975      (t
1976       | figure
1977       | texttable
1978       | iref
1979       | section
1980       <spanx style="strong">| <x:ref>x_anchor-alias</x:ref></spanx>
1981       <spanx style="strong">| <x:ref>x_blockquote</x:ref></spanx>
1982       <spanx style="strong">| <x:ref>x_include-author</x:ref></spanx>
1983       <spanx style="strong">| <x:ref>x_note</x:ref></spanx>
1984       <spanx style="strong">| <x:ref>rdf_Description</x:ref></spanx>)*
1985    }
1986
1987  <spanx># Redefine &lt;spanx> to allow some markup</spanx>
1988  spanx =
1989    element spanx {
1990      attlist.spanx,
1991      (TEXT
1992        <spanx style="strong">| iref</spanx>
1993        <spanx style="strong">| xref</spanx>
1994        <spanx style="strong">| <x:ref>x_ref</x:ref></spanx>)*
1995    }
1996
1997  <spanx># Redefine &lt;t> to allow our extension elements</spanx>
1998  t =
1999    element t {
2000      attlist.t,
2001      (TEXT
2002       | \list
2003       | figure
2004       | xref
2005       | eref
2006       | iref
2007       | cref
2008       | spanx
2009       | vspace
2010       <spanx style="strong">| <x:ref>x_abnf-char-sequence</x:ref></spanx>
2011       <spanx style="strong">| <x:ref>x_anchor-alias</x:ref></spanx>
2012       <spanx style="strong">| <x:ref>x_bcp14</x:ref></spanx>
2013       <spanx style="strong">| <x:ref>x_dfn</x:ref></spanx>
2014       <spanx style="strong">| <x:ref>x_h</x:ref></spanx>
2015       <spanx style="strong">| <x:ref>x_q</x:ref></spanx>
2016       <spanx style="strong">| <x:ref>x_ref</x:ref></spanx>
2017       <spanx style="strong">| <x:ref>x_sup</x:ref></spanx>)*
2018    }
2019}
2020
2021<spanx># Allow x:indent-with attribute on &lt;artwork></spanx>
2022attlist.artwork &amp;=
2023  attribute x:indent-with { ATEXT }?
2024
2025<spanx># Allow anchor and x:annotation attributes on &lt;author></spanx>
2026attlist.author &amp;=
2027  attribute anchor { xsd:ID }?,
2028  attribute x:annotation { ATEXT }?
2029 
2030  <spanx># Extend attribute set for &lt;iref> (see <xref target="ext-rfc2629.iref"/>)</spanx>
2031attlist.iref &amp;=
2032  attribute x:for-anchor { ATEXT }?
2033
2034<spanx># Extend attribute set for &lt;list> (see <xref target="ext-rfc2629.list"/>)</spanx>
2035attlist.list &amp;=
2036  attribute x:indent { ATEXT }?
2037
2038<spanx># Extend attribute set for &lt;preamble></spanx>
2039attlist.preamble &amp;=
2040  attribute anchor { xsd:ID }?
2041
2042<spanx># Extend attribute set for &lt;rfc></spanx>
2043attlist.rfc &amp;=
2044  attribute grddl:transformation { ATEXT }?,
2045  attribute x:maturity-level { "proposed" | "draft" | "internet" }?
2046
2047<spanx># Extend attribute set for &lt;section> (see <xref target="ext-rfc2629.section"/>)</spanx>
2048attlist.section &amp;=
2049  attribute x:fixed-section-number { ATEXT }?
2050
2051<spanx># Allow anchor attribute on &lt;spanx></spanx>
2052attlist.spanx &amp;=
2053  attribute anchor { xsd:ID }?
2054
2055<spanx># Allow x:quotes attribute on &lt;title></spanx>
2056attlist.title &amp;=
2057  attribute x:quotes { "true" | "false" }?
2058
2059<spanx># Allow annotation attribute on &lt;uri></spanx>
2060attlist.uri &amp;=
2061  attribute x:annotation { ATEXT }?
2062
2063<spanx># Extend attribute set for &lt;xref> (see <xref target="ext-rfc2629.xref"/>)</spanx>
2064attlist.xref &amp;=
2065  attribute x:fmt  { "()" | "," | "anchor" | "of" | "number" | "sec" |
2066                     "none" }?,
2067  attribute x:rel  { ATEXT }?,
2068  attribute x:sec  { ATEXT }?
2069
2070<spanx anchor="x_abnf-char-sequence"><iref item="abnf-char-sequence Extension Element"/><iref item="Extension Elements" subitem="abnf-char-sequence"
2071/># Conversion to ABNF char sequence (see <xref target="ext.element.abnf-char-sequence"/>)</spanx>
2072<x:ref>x_abnf-char-sequence</x:ref> =
2073  element x:abnf-char-sequence {
2074    TEXT
2075  }
2076
2077<spanx anchor="x_anchor-alias"><iref item="anchor-alias Extension Element"/><iref item="Extension Elements" subitem="anchor-alias"
2078/># Aliasing of anchors (see <xref target="ext.element.anchor-alias"/>)</spanx>
2079<x:ref>x_anchor-alias</x:ref> =
2080  element x:anchor-alias {
2081    attribute value { TEXT },
2082    empty
2083  }
2084
2085<spanx anchor="x_include-author"><iref item="include-author Extension Element"/><iref item="Extension Elements" subitem="include-author"
2086/># Including Author information
2087# (experimental)</spanx>
2088<x:ref>x_include-author</x:ref> =
2089  element x:include-author {
2090    attribute target { xsd:IDREF }
2091  }
2092
2093<spanx anchor="x_assign-section-number"><iref item="assign-section-number Extension Element"/><iref item="Extension Elements" subitem="assign-section-number"
2094/># Setting section numbers for internally generated sections
2095# (experimental)</spanx>
2096<x:ref>x_assign-section-number</x:ref> =
2097  element x:assign-section-number {
2098    attribute builtin-target { "authors" },
2099    attribute number { TEXT },
2100    empty
2101  }
2102
2103<spanx anchor="x_bb"><iref item="bb Extension Element"/><iref item="Extension Elements" subitem="bb"
2104/># Bottom line of box drawing (see <xref target="ext.element.bb"/>)</spanx>
2105<x:ref>x_bb</x:ref> =
2106  element x:bb {
2107    (TEXT
2108      | iref
2109      | xref
2110      | <x:ref>x_bb</x:ref>
2111      | <x:ref>x_bc</x:ref>
2112      | <x:ref>x_bt</x:ref>
2113      | <x:ref>x_ref</x:ref>)*
2114  }
2115
2116<spanx anchor="x_bc"><iref item="bc Extension Element"/><iref item="Extension Elements" subitem="bc"
2117/># Center line of box drawing (see <xref target="ext.element.bc"/>)</spanx>
2118<x:ref>x_bc</x:ref> =
2119  element x:bc {
2120    (TEXT
2121      | iref
2122      | spanx
2123      | xref
2124      | <x:ref>x_bb</x:ref>
2125      | <x:ref>x_bc</x:ref>
2126      | <x:ref>x_bt</x:ref>
2127      | <x:ref>x_ref</x:ref>)*
2128  }
2129
2130<spanx anchor="x_bcp14"><iref item="bcp14 Extension Element"/><iref item="Extension Elements" subitem="bcp14"
2131/># BCP14/RFC2119 keywords (see <xref target="ext.element.bcp14"/>)</spanx>
2132<x:ref>x_bcp14</x:ref> =
2133  element x:bcp14 {
2134    "MAY"
2135    | "MUST"
2136    | "MUST NOT"
2137    | "NOT RECOMMENDED"
2138    | "OPTIONAL"
2139    | "RECOMMENDED"
2140    | "REQUIRED"
2141    | "SHALL"
2142    | "SHALL NOT"
2143    | "SHOULD"
2144    | "SHOULD NOT"
2145  }
2146 
2147<spanx anchor="x_blockquote"><iref item="blockquote Extension Element"/><iref item="Extension Elements" subitem="blockquote"
2148/># Blockquote (see <xref target="ext.element.blockquote"/>)</spanx>
2149<x:ref>x_blockquote</x:ref> =
2150  element x:blockquote {
2151    attribute cite { URI }?,
2152    t+
2153  }
2154
2155<spanx anchor="x_boilerplate"><iref item="boilerplate Extension Element"/><iref item="Extension Elements" subitem="boilerplate"
2156/># Boilerplate (see <xref target="ext.element.blockquote"/>) </spanx>
2157<x:ref>x_boilerplate</x:ref> =
2158  element x:boilerplate {
2159    section+
2160  }
2161
2162<spanx anchor="x_bt"><iref item="bt Extension Element"/><iref item="Extension Elements" subitem="bt"
2163/># Top line of box drawing (see <xref target="ext.element.bt"/>)</spanx>
2164<x:ref>x_bt</x:ref> =
2165  element x:bt {
2166    (TEXT
2167      | iref
2168      | xref
2169      | <x:ref>x_bb</x:ref>
2170      | <x:ref>x_bc</x:ref>
2171      | <x:ref>x_bt</x:ref>
2172      | <x:ref>x_ref</x:ref>)*
2173  }
2174
2175<spanx anchor="x_dfn"><iref item="dfn Extension Element"/><iref item="Extension Elements" subitem="dfn"
2176/># Definition (see <xref target="ext.element.dfn"/>)</spanx>
2177<x:ref>x_dfn</x:ref> =
2178  element x:dfn {
2179    attribute anchor { xsd:ID }?,
2180    (TEXT
2181      | iref)*
2182  }
2183 
2184<spanx anchor="x_h"><iref item="h Extension Element"/><iref item="Extension Elements" subitem="h"
2185/># Heading (see <xref target="ext.element.h"/>)</spanx>
2186<x:ref>x_h</x:ref> =
2187  element x:h {
2188    TEXT
2189  }
2190
2191<spanx anchor="x_highlight"><iref item="highlight Extension Element"/><iref item="Extension Elements" subitem="highlight"
2192/># Heading (see <xref target="ext.element.highlight"/>)</spanx>
2193<x:ref>x_highlight</x:ref> =
2194  element x:highlight {
2195    TEXT
2196  }
2197
2198<spanx anchor="x_length-of"><iref item="length-of Extension Element"/><iref item="Extension Elements" subitem="length-of"
2199/># Length Measurement (see <xref target="ext.element.length-of"/>)</spanx>
2200<x:ref>x_length-of</x:ref> =
2201  element x:length-of {
2202    attribute indented { NUMBER }?,
2203    attribute target { xsd:IDREF },
2204    empty
2205  }
2206
2207<spanx anchor="x_link"><iref item="link Extension Element"/><iref item="Extension Elements" subitem="link"
2208/># Link (see <xref target="ext.element.link"/>)</spanx>
2209<x:ref>x_link</x:ref> =
2210  element x:link {
2211    attribute href { URI },
2212    attribute title { TEXT }?,
2213    attribute rel { TEXT },
2214    empty
2215  }
2216 
2217<spanx anchor="x_lt"><iref item="lt Extension Element"/><iref item="Extension Elements" subitem="lt"
2218/># Extended list item (see <xref target="ext.element.lt"/>)</spanx>
2219<x:ref>x_lt</x:ref> =
2220  element x:lt {
2221    attribute anchor { xsd:ID }?,
2222    attribute hangText { TEXT }?,
2223    t+
2224  }
2225
2226<spanx anchor="x_note"><iref item="note Extension Element"/><iref item="Extension Elements" subitem="note"
2227/># Note (see <xref target="ext.element.note"/>)</spanx>
2228<x:ref>x_note</x:ref> =
2229  element x:note {
2230    t+
2231  }
2232
2233<spanx anchor="x_parse-xml"><iref item="parse-xml Extension Element"/><iref item="Extension Elements" subitem="parse-xml"
2234/># Signal XML content (see <xref target="ext.element.parse-xml"/>)</spanx>
2235<x:ref>x_parse-xml</x:ref> =
2236  element x:parse-xml {
2237    (TEXT
2238      | xref)*
2239  }
2240
2241<spanx anchor="x_prose"><iref item="prose Extension Element"/><iref item="Extension Elements" subitem="prose"
2242/># Inline prose in a reference (see <xref target="ext.element.prose"/>)</spanx>
2243<x:ref>x_prose</x:ref> =
2244  element x:prose {
2245    TEXT
2246  }
2247
2248<spanx anchor="x_q"><iref item="q Extension Element"/><iref item="Extension Elements" subitem="q"
2249/># Inline quote (see <xref target="ext.element.q"/>)</spanx>
2250<x:ref>x_q</x:ref> =
2251  element x:q {
2252    TEXT
2253  }
2254
2255<spanx anchor="x_ref"><iref item="ref Extension Element"/><iref item="Extension Elements" subitem="ref"
2256/># Anchor reference (see <xref target="ext.element.ref"/>)</spanx> 
2257<x:ref>x_ref</x:ref> =
2258  element x:ref {
2259    attribute anchor { xsd:ID }?,
2260    TEXT
2261  }
2262
2263<spanx anchor="x_source"><iref item="source Extension Element"/><iref item="Extension Elements" subitem="source"
2264/># source information (see <xref target="ext.element.source"/>)</spanx> 
2265<x:ref>x_source</x:ref> =
2266  element x:source {
2267    attribute basename { ATEXT }?,
2268    attribute href { URI },
2269    empty
2270  }
2271
2272<spanx anchor="x_sup"><iref item="sup Extension Element"/><iref item="Extension Elements" subitem="sup"
2273/># superscript (see <xref target="ext.element.sup"/>)</spanx>
2274<x:ref>x_sup</x:ref> =
2275  element x:sup {
2276    TEXT
2277  }
2278
2279<spanx anchor="x_span"><iref item="span Extension Element"/><iref item="Extension Elements" subitem="span"
2280/># Inline Span <!--(see <xref target="ext.element.span"/>)--></spanx>
2281<x:ref>x_span</x:ref> =
2282  element x:span {
2283    attribute anchor { xsd:ID }?,
2284    (TEXT
2285      | <x:ref>x_parse-xml</x:ref>)*
2286  }
2287
2288<spanx anchor="x_x"><iref item="x Extension Element"/><iref item="Extension Elements" subitem="x"
2289/># Nop (for alignment in source)</spanx>
2290<x:ref>x_x</x:ref> =
2291  element x:x {
2292    empty
2293  }
2294
2295<spanx anchor="rdf_Description"><iref item="rdf:Description Extension Element"/><iref item="Extension Elements" subitem="rdf:Description"
2296/># Embed RDF statements </spanx>
2297<x:ref>rdf_Description</x:ref> =
2298  element rdf:Description {
2299    rdf_content
2300  }
2301 
2302rdf_content =
2303  ( TEXT | element * { rdf_content })*
2304</artwork></figure>
2305  </section>
2306 
2307  <section title="Implementation Notes">
2308 
2309  <section title="Recognized type attributes for &lt;artwork> element">
2310  <t>
2311    Specific values in the &lt;artwork> element's "type" attribute are
2312    recognized and cause a different visual style to be used:
2313  </t>
2314  <texttable>
2315    <ttcol>Media Type</ttcol>
2316    <ttcol>Comment</ttcol>
2317   
2318    <c>abnf</c><c>ABNF as per <xref target="RFC5234"/></c>
2319    <c>abnf2616</c><c>ABNF as per <xref target="RFC2616" x:fmt="," x:sec="2.1" /></c>
2320    <c>application/relax-ng-compact-syntax</c><c>Relax NG Compact Syntax as per <xref target="RNC"/></c>
2321    <c>application/xml-dtd</c><c>XML DTD</c>
2322    <c>message/http; msgtype="request"</c><c>HTTP message, as per <xref target="RFC2616" x:fmt="," x:sec="19.1" /></c>
2323    <c>message/http; msgtype="response"</c><c>HTTP message, as per <xref target="RFC2616" x:fmt="," x:sec="19.1" /></c>
2324  </texttable>
2325  </section>
2326 
2327  </section>
2328 
2329  <section title="Examples" anchor="examples">
2330
2331  <section title="Using the 'Internal Subset'" anchor="examples.internalsubset">
2332  <t>
2333    The prolog of the XML document can both be used to refer to an external
2334    DTD, and also to define internal entities (<xref target="XML" x:fmt="of" x:sec="2.8" x:rel="#sec-prolog-dtd"/>):
2335  </t>
2336  <figure><artwork type="example">
2337&lt;?xml version="1.0"?>
2338&lt;?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
2339
2340&lt;!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
2341
2342  &lt;!-- <spanx>use "&amp;MAY;" for a BCP 14 "MAY", see <xref target="ext.element.bcp14"/></spanx> -->
2343  &lt;!ENTITY MAY
2344  "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>MAY&lt;/bcp14>">
2345
2346  &lt;!-- <spanx>re-declare "&amp;nbsp;" as code point 160 (non-breaking space)</spanx> -->
2347  &lt;!-- <spanx>you may need this for UAs that do not read external DTDs</spanx> -->
2348  &lt;!ENTITY nbsp
2349  "&amp;#160;">
2350
2351  &lt;!-- <spanx>allow later RFC2616 reference using "&amp;rfc2616;"</spanx> -->
2352  &lt;!-- <spanx>the data will be fetched from xml.resource.org</spanx> -->
2353  &lt;!ENTITY rfc2616 PUBLIC
2354  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
2355
2356  &lt;!-- <spanx>allow a custom reference using "&amp;mydraft;"</spanx> -->
2357  &lt;!-- <spanx>the data will be fetched from the same location as the
2358       source file</spanx> -->
2359  &lt;!ENTITY mydraft PUBLIC "reference.mydraft.xml">
2360]>
2361</artwork>
2362<postamble>
2363  Note: including entities from a remote site will not work in Firefox,
2364  see <eref target="https://bugzilla.mozilla.org/show_bug.cgi?id=22942"/>.</postamble>
2365</figure>
2366 
2367  </section>
2368
2369  <section title="Customization" anchor="examples.customizing">
2370  <t>
2371    The XSLT code can be customized by creating a custom XSLT file that
2372    uses &lt;xsl:import> to include the original code, and just overrides
2373    particular rules.
2374  </t>
2375  <figure>
2376  <preamble>For instance, the code below overrides several attributes in
2377  <spanx style="verb">rfc2629toFO.xslt</spanx>, changing the color, spacing and font family for
2378  headers.</preamble>
2379  <artwork type="example">
2380&lt;xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
2381               version="1.0">
2382
2383  &lt;xsl:import href="rfc2629toFO.xslt"/>
2384 
2385  &lt;xsl:attribute-set name="h1">
2386    &lt;xsl:attribute name="color">darkblue&lt;/xsl:attribute>
2387    &lt;xsl:attribute name="font-family">sans-serif&lt;/xsl:attribute>
2388    &lt;xsl:attribute name="space-before">24pt&lt;/xsl:attribute>
2389  &lt;/xsl:attribute-set>
2390 
2391  &lt;xsl:attribute-set name="h2">
2392    &lt;xsl:attribute name="color">darkblue&lt;/xsl:attribute>
2393    &lt;xsl:attribute name="font-family">sans-serif&lt;/xsl:attribute>
2394    &lt;xsl:attribute name="space-before">18pt&lt;/xsl:attribute>
2395    &lt;xsl:attribute name="space-after">3pt&lt;/xsl:attribute>
2396  &lt;/xsl:attribute-set>
2397 
2398  &lt;xsl:attribute-set name="h3">
2399    &lt;xsl:attribute name="color">darkblue&lt;/xsl:attribute>
2400    &lt;xsl:attribute name="font-family">sans-serif&lt;/xsl:attribute>
2401    &lt;xsl:attribute name="space-before">16pt&lt;/xsl:attribute>
2402    &lt;xsl:attribute name="space-after">2pt&lt;/xsl:attribute>
2403  &lt;/xsl:attribute-set>
2404
2405&lt;/xsl:transform>
2406</artwork></figure>
2407<x:note>
2408  <t>
2409    <x:h>Note:</x:h> the name for the attribute sets may change in the future
2410    as more working is done with respect to customizability. In any case,
2411    overriding the settings in a separate file will be easier to maintain.
2412    Please contact the author if you find yourself trying to override style
2413    definitions that currently do not use attribute sets.
2414  </t>
2415  <t>
2416    <x:h>Note:</x:h> the CSS style information used in <spanx style="verb">rfc2629.xslt</spanx>
2417    can be overriden in a similar (but less granular) way: just overwrite the
2418    template called "insertCss". As for XSL-FO, the class names may change in
2419    future.
2420  </t>
2421</x:note>
2422</section>
2423</section>
2424
2425<section title="Producing the IETF 'Boilerplate'" anchor="boilerplate">
2426<t>
2427  Various attributes of the <spanx style="verb">&lt;rfc&gt;</spanx>
2428  element plus some child elements of <spanx style="verb">&lt;front&gt;</spanx>
2429  affect the automatically generated parts of the front page, such as the
2430  tabular information at the beginning, the "Status Of This Memo", and the
2431  "Copyright Notice".
2432</t>
2433<t>
2434  When submitting an Internet Draft, this "boilerplate" is checked
2435  by "Idnits" (<eref target="http://tools.ietf.org/tools/idnits/"/>) for
2436  compliance with the current Intellectual Property rules, and thus
2437  it is important to set the correct values.
2438</t>
2439<t>
2440  Furthermore, the RFC Production Center uses RFC2629-based tools to
2441  generate the final RFC text, so the more accurate the supplied information
2442  is, the less additional work is left, and the risk for errors in producing
2443  the final (and immutable!) document is reduced.
2444</t>
2445<x:note>
2446  <t>
2447    <x:h>Note:</x:h> this only applies to the case when IETF documents are
2448    produced. The "private" processing instruction <iref item="private PI pseudo-attribute"/><iref item="Processing Instruction pseudo attributes" subitem="private"/>
2449    allows to switch off most of the autogeneration logic.
2450  </t>
2451</x:note>
2452
2453<section title="The /rfc/@ipr Attribute" anchor="attribute-ipr">
2454<t>
2455  As of the time of this writing, this attribute value can take a long list of values. As
2456  frequently, this is not the result of a grand plan, but simply for historic
2457  reasons. Of these values, only a few are currently in use; all others are
2458  supported by the various tools for backwards compatibility with old source
2459  files.
2460</t>
2461<x:note>
2462  <t>
2463    <x:h>Note:</x:h> some variations of the boilerplate are selected based
2464    on the document's date; therefore it is important to specify the "year",
2465    "month" and "day" attributes of the <spanx style="verb">&lt;date&gt;</spanx> element
2466    when archiving the XML source of an Internet Draft on the day of submission.
2467  </t>
2468</x:note>
2469<t>
2470  <spanx>Disclaimer: THIS ONLY PROVIDES IMPLEMENTATION INFORMATION. IF YOU NEED
2471  LEGAL ADVICE, PLEASE CONTACT A LAWYER.</spanx>
2472  For further information, refer to <eref target="http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf"/>.
2473</t>
2474<t>
2475  Finally, for the current "Status Of This Memo" text, the <spanx style="verb">submissionType</spanx> attribute
2476  determines whether a statement about "Code Components" is inserted (this is the
2477  case for the value "IETF", which also happens to be the default). Other values,
2478  such as "independent", suppress this part of the text.
2479</t>
2480
2481
2482<section title="Current Values: '*trust200902'" anchor="attribute-ipr-current">
2483<t>
2484  The name for these values refers to the "TLP" ("IETF TRUST Legal Provisions Relating
2485  to IETF Documents"), on effect February 15, 2009 (see <eref target="http://trustee.ietf.org/license-info/archive/IETF-Trust-License-Policy-20090215.pdf"/>).
2486  Updates to this document were published on September 12, 2009 (TLP 3.0, <eref target="http://trustee.ietf.org/license-info/archive/IETF-Trust-License-Policy-20090912.pdf"/>)
2487  and on December 28, 2009 (TLP 4.0, <eref target="http://trustee.ietf.org/license-info/archive/IETF-Trust-License-Policy-20091228.pdf"/>),
2488  modifying the license for code components.
2489  The actual text is located in Section 6 ("Text To Be Included in IETF Documents")
2490  of these documents.
2491</t>
2492<t> 
2493  The tools will automatically produce the "right" text depending on the
2494  document's date information (see above):
2495</t>
2496<texttable align="left">
2497  <ttcol>TLP</ttcol><ttcol>URI</ttcol><ttcol>starting with publication date</ttcol>
2498
2499  <c>3.0</c>
2500  <c><eref target="http://trustee.ietf.org/license-info/archive/IETF-Trust-License-Policy-20090912.pdf"/></c>
2501  <c>2009-11-01</c>
2502
2503  <c>4.0</c>
2504  <c><eref target="http://trustee.ietf.org/license-info/archive/IETF-Trust-License-Policy-20091228.pdf"/></c>
2505  <c>2010-04-01</c>
2506
2507</texttable> 
2508
2509
2510<section title="trust200902" anchor="attribute-ipr-trust200902">
2511<t>
2512  This should be the default, unless one of the more specific '*trust200902'
2513  values is a better fit. It produces the text in Sections 6.a and 6.b of
2514  the TLP.
2515</t>
2516</section>
2517
2518<section title="noModificationTrust200902" anchor="attribute-ipr-noModificationTrust200902">
2519<t>
2520  This produces the additional text from Section 6.c.i of the TLP:
2521</t>
2522<x:blockquote>
2523  <t>
2524    This document may not be modified, and derivative works of it may
2525    not be created, except to format it for publication as an RFC or
2526    to translate it into languages other than English.
2527  </t>
2528</x:blockquote>
2529</section>
2530
2531<section title="noDerivativesTrust200902" anchor="attribute-ipr-noDerivativesTrust200902">
2532<t>
2533  This produces the additional text from Section 6.c.ii of the TLP:
2534</t>
2535<x:blockquote>
2536  <t>
2537    This document may not be modified, and derivative works of it may
2538    not be created, and it may not be published except as an Internet-Draft.
2539  </t>
2540</x:blockquote>
2541</section>
2542
2543<section title="pre5378Trust200902" anchor="attribute-ipr-pre5378Trust200902">
2544<t>
2545  This produces the additional text from Section 6.c.iii of the TLP, frequently
2546  called the "pre-5378 escape clause":
2547</t>
2548<x:blockquote>
2549  <t>
2550    This document may contain material from IETF Documents or IETF Contributions published or
2551    made publicly available before November 10, 2008. The person(s) controlling the copyright in
2552    some of this material may not have granted the IETF Trust the right to allow modifications of such
2553    material outside the IETF Standards Process. Without obtaining an adequate license from the
2554    person(s) controlling the copyright in such materials, this document may not be modified outside
2555    the IETF Standards Process, and derivative works of it may not be created outside the IETF
2556    Standards Process, except to format it for publication as an RFC or to translate it into languages
2557    other than English.
2558  </t>
2559</x:blockquote>
2560<t>
2561  See Section 4 of <eref target="http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf"/>
2562  for further information about when to use this value.
2563</t>
2564<x:note>
2565  <t>
2566    <x:h>Note:</x:h> this text appears under "Copyright Notice", unless the
2567    document was published before November 2009, in which case it appears
2568    under "Status Of This Memo".
2569  </t>
2570</x:note>
2571</section>
2572</section> 
2573
2574<section title="Historic Values" anchor="attribute-ipr-historic">
2575
2576<section title="Historic Values: '*trust200811'" anchor="attribute-ipr-200811">
2577<t>
2578  The attribute values "<x:span anchor="attribute-ipr-trust200811">trust200811</x:span>",
2579  "<x:span anchor="attribute-ipr-noModificationTrust200811">noModificationTrust200811</x:span>" and
2580  "<x:span anchor="attribute-ipr-noDerivativesTrust200811">noDerivativesTrust200811</x:span>"
2581  are similar to their "trust200902" counterparts, except that they use text
2582  specified in <eref target="http://trustee.ietf.org/license-info/archive/IETF-Trust-License-Policy_11-10-08.pdf"/>.
2583</t>
2584</section>
2585
2586<section title="Historic Values: '*3978'" anchor="attribute-ipr-3978">
2587<t>
2588  The attribute values "<x:span anchor="attribute-ipr-full3978">full3978</x:span>",
2589  "<x:span anchor="attribute-ipr-noModification3978">noModification3978</x:span>" and
2590  "<x:span anchor="attribute-ipr-noDerivatives3978">noDerivatives3978</x:span>"
2591  are similar to their counterparts above, except that they use text
2592  specified in RFC 3978 (March 2005).
2593</t>
2594</section>
2595
2596<section title="Historic Values: '*3667'" anchor="attribute-ipr-3667">
2597<t>
2598  The attribute values "<x:span anchor="attribute-ipr-full3667">full3667</x:span>",
2599  "<x:span anchor="attribute-ipr-noModification3667">noModification3667</x:span>" and
2600  "<x:span anchor="attribute-ipr-noDerivatives3667">noDerivatives3667</x:span>"
2601  are similar to their counterparts above, except that they use text
2602  specified in RFC 3667 (February 2004).
2603</t>
2604</section>
2605
2606<section title="Historic Values: '*2026'" anchor="attribute-ipr-2026">
2607<t>
2608  The attribute values "<x:span anchor="attribute-ipr-full2026">full2026</x:span>" and
2609  "<x:span anchor="attribute-ipr-noDerivativeWorks2026">noDerivativeWorks2026</x:span>"
2610  are similar to their counterparts above, except that they use text
2611  specified in RFC 2026 (October 1996).
2612</t>
2613<t>
2614  The special value "<x:span anchor="attribute-ipr-none">none</x:span>"
2615  was also used back then, and denied the IETF any rights beyond publication
2616  as Internet Draft.
2617</t>
2618</section>
2619
2620</section>
2621</section>
2622
2623<section title="The /rfc/@category Attribute" anchor="attribute-category">
2624<t>
2625  For RFCs, the <spanx style="verb">category</spanx> determines the "maturity level"
2626  (see <xref target="RFC2026" x:fmt="of" x:sec="4"/>). The allowed values
2627  are "std" for "Standards Track", "bcp" for "BCP", "info" for "Informational",
2628  "exp" for "Experimental", and "historic" for - surprise - "Historic".
2629</t>
2630<t>
2631  For Internet Drafts, the category attribute is not needed, but <spanx>will</spanx>
2632  appear on the front page ("Intended Status"). Supplying this information can
2633  be useful, because reviewers may want to know.
2634</t>
2635<x:note>
2636  <t>
2637    <x:h>Note:</x:h> the Standards Track consists of "Proposed Standard",
2638    "Draft Standards", and "Internet Standard". These do not appear in the
2639    boilerplate, thus the category attribute doesn't handle them.
2640    However, this information can be useful for validity checkers, and thus
2641    <spanx style="verb">rfc2629.xslt</spanx> supports an extension attribute
2642    for that purpose (see <xref target="ext-rfc2629.rfc"/> for details).
2643  </t>
2644</x:note>
2645</section>
2646
2647<section title="The /rfc/@submissionType Attribute" anchor="attribute-submissiontype">
2648<t>
2649  The RFC Editor publishes documents from different "document streams", of which
2650  the "IETF stream" of course is the most prominent one. Other streams are the "independent stream"
2651  (used for things like administrative information or April 1st RFCs),
2652  the "IAB stream" (Internet Architecture Board) and the "IRTF stream" (Internet Research Task Force).
2653</t>
2654<t>
2655  Not surprisingly, the values for the attribute are "IETF" (the default value),
2656  "independent", "IAB", and "IRTF".
2657</t>
2658<t>
2659  <spanx>The values "IAB" and "IRTF" are supported by rfc2629.xslt, but not
2660  yet allowed by the DTD (waiting for release 1.36 of xml2rfc).</spanx>
2661</t>
2662<t>
2663  Historically, this did not affect the final appearance of RFCs, except for
2664  subtle differences in Copyright notices.
2665  Nowadays (as of <xref target="RFC5741"/>), the stream name appears in the first
2666  line of the front page, and it also affects the text in the "Status Of This Memo"
2667  section.
2668</t>
2669<t>
2670  For current documents, setting <spanx style="verb">submissionType</spanx> attribute will
2671  have the following effect:
2672  <list style="symbols">
2673    <t>
2674      For RFCs, the stream name appears in the upper left corner of the
2675      first page (in Internet Drafts, this is either "Network Working Group",
2676      or the value of the <spanx style="verb">&lt;workgroup&gt;</spanx> element).
2677    </t>
2678    <t>
2679      For RFCs, if affects the whole "Status Of This Memo" section (see
2680      <xref x:sec="3.2.2" x:fmt="of" target="RFC5741"/>).
2681    </t>
2682    <t>
2683      For all RFCs and Internet Drafts, it determines whether the "Copyright
2684      Notice" mentions the Copyright on Code Components (see TLP, Section "Text To Be Included in IETF Documents").
2685    </t>
2686  </list>
2687</t>
2688<x:note>
2689  <t>
2690    <x:h>Note:</x:h> as of Version 1.35, <spanx style="verb">xml2rfc</spanx>
2691    (as opposed to <spanx style="verb">rfc2629.xslt</spanx>)
2692    does <spanx>not</spanx> implement support values other than "IETF" or
2693    "independent".
2694  </t>
2695</x:note>
2696</section>
2697
2698<section title="The /rfc/@consensus Attribute" anchor="attribute-consensus">
2699<t>
2700  <spanx>Supported by rfc2629.xslt, but not
2701  yet allowed by the DTD (waiting for release 1.36 of xml2rfc).</spanx>
2702</t>
2703<t>
2704  For some of the publication streams (see <xref target="attribute-submissiontype"/>),
2705  the "Status Of This Memo" section depends on whether there was a consensus
2706  to publish (again, see <xref x:sec="3.2.2" x:fmt="of" target="RFC5741"/>).
2707</t>
2708<t>
2709  The <spanx style="verb">consensus</spanx> attribute ("yes"/"no", defaulting to "yes")
2710  can be used to supply this information. The effect for the various streams is:
2711  <list style="symbols">
2712    <t>"independent" and "IAB": none.</t>
2713    <t>"IETF": mention that there was an IETF consensus.</t>
2714    <t>"IRTF": mention that there was a research group consensus (where the name of the research
2715    group is extracted from the <spanx style="verb">&lt;workgroup&gt;</spanx> element).</t>
2716  </list>
2717</t>
2718</section>
2719
2720<section title="The /rfc/@number Attribute" anchor="attribute-number">
2721<t>
2722  For RFCs, this attribute supplies the RFC number.
2723</t>
2724</section>
2725
2726<section title="The /rfc/@docName Attribute" anchor="attribute-docname">
2727<t>
2728  For Internet Drafts, this specifies the draft name (which appears
2729  below the title). The file extension is <spanx>not</spanx> part
2730  of the draft, so in general it should end with the current draft number
2731  ("-", plus two digits).
2732</t>
2733<x:note>
2734  <t>
2735  <x:h>Note:</x:h> "Idnits" (<eref target="http://tools.ietf.org/tools/idnits/"/>)
2736  checks the in-document draft name for consistency with the filename of
2737  the submitted document.
2738  </t>
2739</x:note>
2740</section>
2741
2742<section title="The /rfc/@obsoletes Attribute" anchor="attribute-obsoletes">
2743<t> 
2744  The RFC Editor maintains a database (<eref target="http://www.rfc-editor.org/rfc.html"/>)
2745  of all RFCs, including information about which one obsoletes which. Upon publication of an RFC, this
2746  database is updated from the data on the front page.
2747</t>
2748<t>
2749  This attribute takes a list of comma-separated RFC <spanx>numbers</spanx>.
2750  Do <spanx>not</spanx> put the string "RFC" here.
2751</t>
2752</section>
2753 
2754<section title="The /rfc/@updates Attribute" anchor="attribute-updates">
2755<t>
2756  This is like <spanx style="verb">obsoletes</spanx>, but for the "updates"
2757  relation.
2758</t>
2759</section>
2760</section>
2761  <section title="License" anchor="license">
2762  <t>
2763Copyright (c) 2006-2010, Julian Reschke (julian.reschke@greenbytes.de)
2764  </t>
2765  <t>
2766All rights reserved.
2767  </t>
2768  <t>
2769Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
2770  <list style="symbols">
2771    <t>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</t>
2772    <t>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</t>
2773    <t>Neither the name of Julian Reschke nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</t>
2774  </list>
2775  </t>
2776  <t>
2777THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2778  </t>
2779  </section>
2780
2781  <section title="Change Logs">
2782   
2783 
2784    <section title="Package">
2785      <t><list style="hanging">
2786<t hangText="2006-01-01">
2787    Switch to BSD License.
2788</t>
2789<t hangText="2007-01-12">
2790    Update to xml2rfc v1.33pre2.
2791</t>
2792<t hangText="2007-03-31">
2793    Update to xml2rfc v1.33pre3.
2794</t>
2795<t hangText="2007-05-01">
2796    Add XSLT test cases.
2797</t>
2798<t hangText="2008-07-18">
2799    Experimental support for inlined rdf:Description elements (ignored
2800    by the formatter, extracted by rfc2629grddl).
2801</t>
2802<t hangText="2008-12-04">
2803    Update to xml2rfc v1.34pre2.
2804</t>
2805<t hangText="2009-02-24">
2806    Experimental support for February 2009 boilerplate changes, and for
2807    the x:boilerplate element.
2808</t>
2809<t hangText="2009-07-08">
2810    Support new boilerplate ordering in RFCs published since July 2009.
2811    Fix problems with one-column text tables.
2812</t>
2813<t hangText="2009-07-19">
2814    When possible, calculate the actual Expiry date for Internet Drafts
2815    (full date must be available).
2816</t>
2817<t hangText="2009-08-01">
2818    For '$xml2rfc-ext-authors-section='end'", move the index in front of the
2819    authors section.
2820</t>
2821<t hangText="2009-08-04">
2822    Consider /rfc/@ipr="pre5378Trust200902" when producing RFCs, not IDs.
2823</t>
2824<t hangText="2009-08-29">
2825    Support alignment for artwork containing images (as opposed to, well,
2826    artwork).
2827</t>
2828<t hangText="2009-09-01">
2829    Allow xref in cref (as extension).
2830</t>
2831<t hangText="2009-09-14">
2832    Refactor handling of processing instructions.
2833</t>
2834<t hangText="2009-09-24">
2835    Fix typo in Status Of This Memo, present since November 2008.
2836                Fix formatting of iprExtract attribute.
2837                Starting with Internet Draft publication dates after 2009-11-30: use new Trust
2838                Legal Provisions text; for Internet Drafts: move Abstract up, and
2839                move "pre5378" escape clause to the Copyright Notice.
2840                Add support for refparent PI. For RFCs: use new TLP text as of September 2009.
2841    Incorporate xml2rfc v1.34pre4.
2842</t>
2843<t hangText="2009-10-06">
2844                Starting with Internet Draft publication dates after 2009-10-31: use new Trust
2845                Legal Provisions text; for Internet Drafts: move Abstract up, and
2846                move "pre5378" escape clause to the Copyright Notice.
2847    Incorporate xml2rfc v1.34pre5.
2848</t>
2849<t hangText="2009-10-27">
2850    Upgrade to xml2rfc v1.34.
2851</t>
2852<t hangText="2010-01-08">
2853    For RFC generation (not IDs), experimentally support RFC 5741 headers and boilerplate and Trust
2854    Legal Provisions 4.0.
2855</t>
2856<t hangText="2010-03-31">
2857    Upgrade to xml2rfc v1.35.
2858</t>
2859<t hangText="2010-06-27">
2860    Be consistent with xml2rfc.tcl in formatting initials (truncate after
2861    the first); see <eref target="http://trac.tools.ietf.org/tools/xml2rfc/trac/ticket/10"/>.
2862</t>
2863<t hangText="2010-08-31">
2864    Experimental support for prose in references.
2865</t>
2866<t hangText="2011-01-27">
2867    Update to xml2rfc v1.36pre1.
2868</t>
2869      </list></t>
2870    </section>
2871   
2872    <section title="amazon-asin.xslt">
2873    <t><list style="hanging">
2874<t hangText="2003-11-16">
2875     Initial release.
2876</t>
2877<t hangText="2005-04-02">
2878     Fix two DTD issues.
2879</t>
2880    </list></t>
2881    </section>
2882
2883    <section title="check-references.xslt">
2884    <t><list style="hanging">
2885<t hangText="2003-11-16">
2886     Initial release.
2887</t>
2888<t hangText="2004-05-11">
2889     Add document status; print references type.
2890</t>
2891<t hangText="2005-01-01">
2892     Add experimental check for ID status.
2893</t>
2894<t hangText="2005-04-01">
2895     Add fixes from Bill Fenner.
2896</t>
2897<t hangText="2005-12-03">
2898    Add checks against local copy of <eref target="http://www.w3.org/2002/01/tr-automation/tr.rdf"/>
2899</t>
2900<t hangText="2006-07-22">
2901    Add checks for standards levels.
2902</t>
2903<t hangText="2006-08-06">
2904    "check-ietf-references.xslt" replaced by "check-references.xslt".
2905</t>
2906<t hangText="2007-01-04">
2907    Use information online at <eref target="http://tools.ietf.org/"/> to
2908    retrieve Internet-Draft status information.
2909</t>
2910<t hangText="2007-06-16">
2911    Fix bug looking up ref type when inside change markup.
2912</t>
2913<t hangText="2008-06-14">
2914    Enhance output when draft was updated, and then published as RFC.
2915</t>
2916<t hangText="2008-07-12">
2917    Add XSLT2-based link target checking.
2918</t>
2919<t hangText="2008-08-10">
2920    Change keywords for "intended-level" to proposed/draft/internet,
2921    optionally extract intended level from /rfc/@x:maturity-level attribute.
2922</t>
2923    </list></t>
2924    </section>
2925   
2926    <section title="gen-reference-graph.xslt">
2927    <t><list style="hanging">
2928<t hangText="2006-09-03">
2929  New.
2930</t>
2931<t hangText="2007-06-07">
2932  Use <eref target="http://dpcarlisle.blogspot.com/2007/05/exslt-node-set-function.html">Carlisle method</eref> to define exslt:node-set in
2933  msxsml (which means that the stylesheet can now be used with MSXML as well).
2934</t>
2935<t hangText="2007-10-15">
2936  Use W3C data from tr.rdf as well (experimental).
2937</t>
2938    </list></t>
2939    </section>
2940
2941    <section title="rfc2629.xslt">
2942      <t><list style="hanging">
2943<t hangText="2001-03-28">
2944    Code rearranged, generate numbered section anchors for paragraphs (t)
2945    as well. Fixes in index handling.
2946</t>
2947<t hangText="2001-04-12">
2948    Moved HTML output into XHTML namespace.
2949</t>
2950<t hangText="2001-10-02">
2951    Fixed default location for RFCs and numbering of section references.
2952    Support ?rfc editing processing instruction.
2953</t>
2954<t hangText="2001-10-07">
2955    Made telephone number links active.
2956</t>
2957<t hangText="2001-10-08">
2958    Support for vspace element.
2959</t>
2960<t hangText="2001-10-09">
2961    Experimental support for rfc-issue PI.
2962</t>
2963<t hangText="2001-11-11">
2964    Support rfc private PI. Removed bogus code reporting the WG in the header.
2965</t>
2966<t hangText="2001-11-11">
2967    Support rfc private PI. Removed bogus code reporting the WG in the header.
2968</t>
2969<t hangText="2001-12-17">
2970    Support title attribute on references element
2971</t>
2972<t hangText="2002-01-05">
2973    Support for list/@style="@format"
2974</t>
2975<t hangText="2002-01-09">
2976    Display "closed" RFC issues as deleted
2977</t>
2978<t hangText="2002-01-14">
2979    Experimentally and optionally parse XML encountered in artwork elements
2980    (requires MSXSL).
2981</t>
2982<t hangText="2002-01-27">
2983    Some cleanup. Moved RFC issues from PIs into namespaced elements.
2984</t>
2985<t hangText="2002-01-29">
2986    Added support for sortrefs PI. Added support for figure names.
2987</t>
2988<t hangText="2002-02-07">
2989    Highlight parts of artwork which are too wide (72 characters).
2990</t>
2991<t hangText="2002-02-12">
2992    Code rearrangement for static texts. Fixes for section numbering.
2993    TOC generation rewritten.
2994</t>
2995<t hangText="2002-02-15">
2996    Support for irefs in sections; support iref @primary=true
2997</t>
2998<t hangText="2002-03-03">
2999    Moved anchor prefix into a constant. Added sanity checks on user anchor
3000    names.
3001</t>
3002<t hangText="2002-03-23">
3003    Bugfix in detection of matching org names when creating the header. Fixed
3004    sorting in subitems.
3005</t>
3006<t hangText="2002-04-02">
3007    Fix TOC link HTML generation when no TOC is generated (created broken
3008    HTML table code).
3009</t>
3010<t hangText="2002-04-03">
3011    Made rendering of references more tolerant re: missing parts.
3012</t>
3013<t hangText="2002-04-08">
3014    Fixed reference numbering when references are split into separate sections.
3015</t>
3016<t hangText="2002-04-16">
3017    Fix default namespace (shouldn't be set for HTML output method).
3018</t>
3019<t hangText="2002-04-19">
3020    Lowercase internal CSS selectors for Mozilla compliance. Do not put TOC
3021    into ul element.
3022</t>
3023<t hangText="2002-04-21">
3024    Make numbered list inside numbered lists use alphanumeric numbering.
3025</t>
3026<t hangText="2002-05-05">
3027    Updated issue/editing support.
3028</t>
3029<t hangText="2002-05-15">
3030    Bugfix for section numbering after introduction of ed:replace
3031</t>
3032<t hangText="2002-06-21">
3033    When producing private documents, do not include document status, copyright etc.
3034</t>
3035<t hangText="2002-07-08">
3036    Fix xrefs to Appendices.
3037</t>
3038<t hangText="2002-07-19">
3039    Make artwork lightyellow for easier reading. (fielding)
3040</t>
3041<t hangText="2002-10-09">
3042    Translate references title to anchor name to avoid non-uri characters. (fielding)
3043</t>
3044<t hangText="2002-10-13">
3045    Support for tocdepth PI.
3046</t>
3047<t hangText="2002-11-03">
3048    Added temporariry workaround for Mozilla/Transformiix result tree fragment problem.
3049    (search for 'http://bugzilla.mozilla.org/show_bug.cgi?id=143668')
3050</t>
3051<t hangText="2002-12-25">
3052    xref code: attempt to uppercase "section" and "appendix" when at the start
3053    of a sentence.
3054</t>
3055<t hangText="2003-02-02">
3056    fixed code for vspace blankLines="0", enhanced display for list with "format" style,
3057    got rid of HTML blockquote elements, added support for "hangIndent"
3058</t>
3059<t hangText="2003-04-10">
3060    experimental support for appendix and spanx elements
3061</t>
3062<t hangText="2003-04-19">
3063    fixed counting of list numbers in "format %" styles (one counter
3064    per unique format string). Added more spanx styles.
3065</t>
3066<t hangText="2003-05-02">
3067    experimental texttable support
3068</t>
3069<t hangText="2003-05-02">
3070    Make mailto links optional (default = none) (jre: default and PI name changed) (fielding)
3071</t>
3072<t hangText="2003-05-04">
3073    experimental support for HTML link elements; fix default for table header
3074    alignment default
3075</t>
3076<t hangText="2003-05-06">
3077    support for "background" PI.
3078</t>
3079<t hangText="2003-05-11">
3080    change %c format to lowercase alphabetic. add support for keyword
3081    elements (generate META tag). fix various HTML conformance problems.
3082    added experimental support for role attribute. do not number paragraphs
3083    in unnumbered sections. update boilerplate texts. support for
3084    "iprnotified" PI. bugfix list numbering. strip whitespace when
3085    building tel: URIs.
3086</t>
3087<t hangText="2003-05-12">
3088    more conformance fixes (layout moved into CSS, move lists and figures
3089    out of para content, do not use tables for list formatting)
3090</t>
3091<t hangText="2003-05-13">
3092    add DC.Creator meta tag, refactoring
3093</t>
3094<t hangText="2003-05-16">
3095    put nbsps between "section" and section number (xref).
3096</t>
3097<t hangText="2003-05-18">
3098    author summary: add missing comma.
3099</t>
3100<t hangText="2003-06-06">
3101    fix index generation bug (transposed characters in key generation). Enhance
3102    sentence start detection (xref starting a section was using lowercase
3103    "section").
3104</t>
3105<t hangText="2003-06-22">
3106    exp. support for xref/@format. Add missing support for eref w/o content.
3107    exp. support for annotations in reference elements. Code cleanup
3108    reference table formatting.
3109</t>
3110<t hangText="2003-07-09">
3111    Another fix for DC.Creator meta tag creation based on RFC2731
3112</t>
3113<t hangText="2003-07-24">
3114    Fix namespace name for DC.Creator.
3115</t>
3116<t hangText="2003-08-06">
3117    Cleanup node-set support (only use exslt (saxon, xalan, libxslt) extension
3118    functions; remove Transformix workarounds that stopped to work in Moz 1.4)
3119</t>
3120<t hangText="2003-08-09">
3121    Generate HTML lang tag.
3122</t>
3123<t hangText="2003-08-10">
3124    Map spanx/verb to HTML "samp" element. Fix author name display in
3125    references (reverse surname/initials for last author), add "Ed.".
3126    Fix internal bookmark generation.
3127</t>
3128<t hangText="2003-08-17">
3129    Add DCMI dates, identifiers and abstract. Add PI to suppress DCMI
3130    generation.  Do not add TOC entry to Copyright Statement when there is
3131    none. Align RFC2629 PI names and parameter names. Change style for
3132    inline URIs generated by eref. Add header and footer support.
3133    Enhance CSS paging properties. Support topblock PI. Added hooks for
3134    proper XHTML generation through separate XSLT. Enhance warning and
3135    error messages. Add support for artwork image display. Table formatting
3136    fixes (borders, thead continuation).
3137</t>
3138<t hangText="2003-08-18">
3139    Add workaround for MSXML4 node-set and Mozilla node-set issues (fallback
3140    just displays are warning).
3141</t>
3142<t hangText="2003-10-06">
3143    Add workaround for broken pre/ins handling in Mozilla
3144    (see <eref target="http://bugzilla.mozilla.org/show_bug.cgi?id=204401"/>). Make use
3145    of cite attribute on ed:replace. CSS cleanup.
3146</t>
3147<t hangText="2003-10-08">
3148    Fix minor issue detecting the same org for the header (caused by IE's
3149    non-standard whitespace handling). Fix default handling for /rfc/@category.
3150</t>
3151<t hangText="2003-11-09">
3152    Inherit ed:entered-by from ancestor elements. Change CSS color for inserted
3153    text to green. Generate issues-list anchor. Do not complain about missing
3154    targets when the xref element is below ed:del. Remove code that attempted
3155    to distinguish section/Section when producing links - always use
3156    uppercase. Fix date rendering for issue resolutions.
3157</t>
3158<t hangText="2003-11-29">
3159    Fix color values for table backgrounds for issue rendering. Change
3160    rendering of issue links to use inline-styles. Add colored issue markers to
3161    issues.
3162</t>
3163<t hangText="2003-12-13">
3164    Fix inheritance of ed:entered-by attribute. Display note elements inside
3165    change tracking as well.
3166</t>
3167<t hangText="2004-01-18">
3168    When PI compact = 'yes', make most CSS print page breaks conditional.
3169</t>
3170<t hangText="2004-02-20">
3171    Support for RFC3667 IPR changes (xml2rfc 1.22); see
3172    <eref target="http://lists.xml.resource.org/pipermail/xml2rfc/2004-February/001088.html"/>.
3173</t>
3174<t hangText="2004-03-11">
3175    Add "(if approved)" to "updates" and "obsoletes" unless the document has
3176    an RFC number.
3177</t>
3178<t hangText="2004-04-01">
3179    Fix RFC3667 output, see <eref target="http://lists.xml.resource.org/pipermail/xml2rfc/2004-April/001208.html"/>.
3180</t>
3181<t hangText="2004-04-04">
3182    Add support for section/top attribute. Move references into plain
3183    section container.
3184</t>
3185<t hangText="2004-04-06">
3186    Do not emit identical para anchors for deleted content.
3187</t>
3188<t hangText="2004-04-14">
3189    Fix references TOC generation when there are no references.
3190</t>
3191<t hangText="2004-04-24">
3192    Fix RFC3667 output, see <eref target="http://xml.resource.org/pipermail/xml2rfc/2004-April/001246.html"/>.
3193</t>
3194<t hangText="2004-05-09">
3195    Add custom support for generating compound index documents. Add anchors
3196    for each Index letter. Add experimental cref support. Fix conditional page
3197    breaks before References section.
3198</t>
3199<t hangText="2004-05-16">
3200    Refactor external index generation.
3201</t>
3202<t hangText="2004-05-20">
3203    Rewrite anchor generation for comments.
3204</t>
3205<t hangText="2004-05-22">
3206    Enhance issues rendering (add links to changes).
3207</t>
3208<t hangText="2004-05-30">
3209    Allow single quote as delimiter in processing instructions as well. Move
3210    block-level issue pointers to floats. Disable issue pointers for print
3211    media. Add "purple numbers". Add hrefs to section headings. Add non-printing
3212    index key letter list to start of index.
3213</t>
3214<t hangText="2004-06-01">
3215    Use &amp;#xb6; instead of # for PNs.
3216</t>
3217<t hangText="2004-07-18">
3218    Add support for list style=letters (thanks Roy F.). Make PNs optional;
3219    add new PI.
3220</t>
3221<t hangText="2004-09-05">
3222    Fix index links into unnumbered sections.  Bring IPR boilerplate in-line
3223    with xml2rfc 1.25.  Add experimental CSS3 paged media support.  Various
3224    HTML fixes.
3225</t>
3226<t hangText="2004-09-21">
3227    Enhance checking of artwork width.
3228</t>
3229<t hangText="2004-09-26">
3230    Add check for unused references. Uppercase letters in list style letters
3231    when nested into another list.
3232</t>
3233<t hangText="2004-10-10">
3234    Fix internal change track pointers.
3235</t>
3236<t hangText="2004-11-01">
3237    Allow change tracking on references (as a whole).  Rewrite artwork handling
3238    so that it allows change tracking inside artwork.  Also allow a subset of
3239    text markup inside artwork, such as xrefs (note this requires post-processing
3240    the source to make it compliant to RFC2629bis).
3241</t>
3242<t hangText="2004-11-03">
3243    Enhanced placement of iref anchors.
3244</t>
3245<t hangText="2004-11-06">
3246    Index: display irefs that appeared (with primary=true) inside artwork elements
3247    in a monospaced font.
3248</t>
3249<t hangText="2004-11-14">
3250    Add special code so that changes in section titles can be change-tracked.
3251</t>
3252<t hangText="2005-01-14">
3253    Bugfixes for HtmlToXhtml converter.
3254</t>
3255<t hangText="2005-01-22">
3256    Enhance generation of HTML h* elements (for Mozilla Outliner).
3257</t>
3258<t hangText="2005-01-31">
3259    Put vertical space around top-level TOC entries in TOC.  Switch to
3260    pt-based CSS. Re-arrange top section. Make hr elements reflect new-page
3261    settings in TXT output (compact-PI).  Fix page number in footer (CSS
3262    print) and add some more experimental support for paged media (tested
3263    with Prince 4.1 alpha).  Rewrite TOC and Index generation to generate HTML
3264    lists.  Cleanup id generation for paragraphs.  Reduce whitespace in output.
3265    Fix vspace implementation. Use right/left dqoutes and copyright sign
3266    where appropriate.
3267</t>
3268<t hangText="2005-02-04">
3269    Add &lt;link> element to references section.  Fix newly introduced bug
3270    in references processing.
3271</t>
3272<t hangText="2005-02-05">
3273    Integrate various fixes/enhancements by Roy Fielding: spelling of
3274    "Authors' Addresses", comma setting in references, position of "Authors"
3275    section, optionally place authors addresses at end (PI), trailing dots
3276    in section numbers, switch to verdana default font in CSS.  Add
3277    experimental support for centered artwork.
3278</t>
3279<t hangText="2005-02-09">
3280    Fixes in spacing and links of references section titles.  Enhance sorting
3281    in references when change tracking is in place.  Re-add figure centering
3282    support.  Add missing 2nd part of "Author's Adresses" fix.
3283</t>
3284<t hangText="2005-02-25">
3285    Align section number format with xml2rfc1.29.
3286</t>
3287<t hangText="2005-03-28">
3288    Get rid of table elements in Author's section.  Add experimental hCard
3289    (<eref target="http://developers.technorati.com/wiki/hCard"/>) support.
3290</t>
3291<t hangText="2005-04-03">
3292    Add RFC3978-style IPR statement support. (fenner@research.att.com)
3293</t>
3294<t hangText="2005-04-11">
3295    Cleanup author display. hCard related fixes.
3296</t>
3297<t hangText="2005-05-07">
3298    Minor fixes to allow change tracking in doc title.  Add experimental
3299    support for table border styles. CSS cleanup.
3300</t>
3301<t hangText="2005-06-18">
3302    Implement missing support for references to texttables.
3303</t>
3304<t hangText="2005-09-25">
3305    Use (-moz-)column-count when printing the index.
3306</t>
3307<t hangText="2005-10-04">
3308    Report missing element templates with xsl:message.
3309</t>
3310<t hangText="2005-10-15">
3311    Process t/@anchor.
3312</t>
3313<t hangText="2005-10-23">
3314    More workarounds for Mozilla's broken del/ins handling (this time for
3315    figures).
3316</t>
3317<t hangText="2005-10-27">
3318    lowercase hCard class names
3319</t>
3320<t hangText="2005-11-22">
3321    Enhance diagnostics for XML-in-artwork extension
3322</t>
3323<t hangText="2005-11-26">
3324    Fix formatting of section numbers for sections inserted into &lt;back>.
3325</t>
3326<t hangText="2005-12-12">
3327    Fix some validity problems when change tracking occured inside lists.
3328</t>
3329<t hangText="2005-12-18">
3330    Add change tracking inside the index.
3331</t>
3332<t hangText="2006-02-04">
3333    Add prev/next links to highlighted changes (change tracking extension).
3334</t>
3335<t hangText="2006-02-10">
3336    Catch errors instantiating MSXML component.
3337</t>
3338<t hangText="2006-02-11">
3339    References: add "work in progress" for Internet Drafts.
3340</t>
3341<t hangText="2006-02-27">
3342    Fix front matter (lowercase Internet-Draft, say "Intended status" for
3343    non-RFC documents). Start work on experimental extension for 
3344    simplified internal links.
3345</t>
3346<t hangText="2006-03-19">
3347    Tweaks to IESG Copyright stuff; support submissionType attribute.
3348    Fix duplicate reference anchors in HTML output.  Reduce HTML Tidy warnings.
3349    Fix reference to normative ASCII version (now requires trailing ".txt").
3350    Tweaks to hCard generation.  Started to move non-issue-tracking
3351    extensions into namespace "http://purl.org/net/xml2rfc/ext".
3352</t>
3353<t hangText="2006-03-27">
3354    Moved "simple reference" extension into namespace "http://purl.org/net/xml2rfc/ext"
3355    and add documentation.  HTML conformance enhancements.
3356</t>
3357<t hangText="2006-04-02">
3358    Cleanup special code for automated XHTML XSLT generation.
3359</t>
3360<t hangText="2006-04-21">
3361    Generate &lt;CITE> elements where appropiate.
3362    Introduce x:blockquote, x:dfn, x:h and x:q elements.
3363</t>
3364<t hangText="2006-05-06">
3365    Introduce x:bcp14 element.
3366</t>
3367<t hangText="2006-05-14">
3368  Fix content model for x:blockquote.
3369</t>
3370<t hangText="2006-06-18">
3371  Add box drawing support (x:bt, x:bc, x:bb).
3372</t>
3373<t hangText="2006-06-20">
3374  HTML validity fixes (legal chars in anchors in index).
3375</t>
3376<t hangText="2006-06-24">
3377  Reduce leading empty lines in artwork. Move &lt;dt> style info into CSS.
3378</t>
3379<t hangText="2006-07-14">
3380  Fix rendering of multiple street address entries (missing line break).
3381</t>
3382<t hangText="2006-07-24">
3383  Add extension for deep linking into RFCs, do not generate empty list
3384  items in TOC output, avoid empty &lt;dt> elements for list items
3385  without hangText attribute.
3386</t>
3387<t hangText="2006-08-01">
3388  Allow @anchor on more elements; start work on Relax NG grammar for
3389  extensions. Reduce generated style elements (use CSS classes instead).
3390  Consistently use "id" instead of "name". Change default target for RFC
3391  links to "http://tools.ietf.org/html/rfcNNNN".
3392</t>
3393<t hangText="2006-08-06">
3394  Include appendices defined in &lt;appendix> elements in TOC (please
3395  consider them deprecated anyhow!). Generate links to
3396  "http://tools.ietf.org/html/draft-*" for Internet Drafts.
3397  Replace x:frag by x:rel, allowing any kind of relative reference instead
3398  of just fragments.
3399</t>
3400<t hangText="2006-08-30">
3401  Reduce textual differences between HTML output and what xml2rfc produces
3402  in TXT output mode (section refs/reference targets). Add small workaround
3403  for Opera 9.0.1's problem with node-set().
3404</t>
3405<t hangText="2006-10-29">
3406  Fix problem generating internal links to change markup within references
3407  section. Enhancements when generating numbered references for deleted
3408  references.
3409  Allow inclusion of references into the index (through include-references-in-index
3410  extension).
3411  Fix a bug that caused the newer version of the IETF boilerplate to be
3412  produced rather than the pre-RFC3667 one.
3413  Update to RFC4287 boilerplate.
3414</t>
3415<t hangText="2006-11-11">
3416  Add extension attribute x:for-anchor to &lt;iref&gt; handling.
3417</t>
3418<t hangText="2006-11-26">
3419  Experimental (and limited) support for &lt;x:lt&gt;.
3420</t>
3421<t hangText="2006-12-04">
3422  Fix bugs in processing documents that have both the ipr and the number attribute
3423  set on the rfc root element. Add support for x:fmt='none' on xrefs.
3424  Add different pre style based on artwork type attributes (experimental).
3425</t>
3426<t hangText="2006-12-13">
3427  Add x:fmt='anchor' for xref elements.
3428</t>
3429<t hangText="2007-01-07">
3430  Fix root template for compatibility for the exslt:node-set implementation
3431  in Firefox3.
3432</t>
3433<t hangText="2007-01-29">
3434  Avoid empty table entry in front matter when organization is not specified
3435  for an author.
3436</t>
3437<t hangText="2007-02-10">
3438  Allow change tracking in table rows.
3439</t>
3440<t hangText="2007-03-09">
3441  Add hcard profile URI (<eref target="http://www.w3.org/2006/03/hcard"/>) to head element.
3442  Add warning for misplaced &lt;t> elements (after section).
3443</t>
3444<t hangText="2007-03-21">
3445  Fix internal linking from reference entries in index for some xref types.
3446  Minor CSS tweaks contributed by MTR. Allow turning on text justification through
3447  a PI. Improve iref anchor generation to generate less instable anchors.
3448</t>
3449<t hangText="2007-03-28">
3450  Fixes for numbering of ed:inserted references sections.
3451</t>
3452<t hangText="2007-05-04">
3453  Do not generate anchors for edits in deleted sections. Enhance HTML
3454  conformance.
3455</t>
3456<t hangText="2007-05-19">
3457  Enhance diagnostics when using Saxon (needs Saxon's "-l" command line
3458  parameter to keep line number information). Add warning when symref PI
3459  is missing (default will change in the future).
3460  Add support for overriding computed section numbers (when formatting
3461  historic documents).
3462</t>
3463<t hangText="2007-06-07">
3464  Change default for symrefs PI to "yes" (see change in xml2rfc 1.33pre4).
3465  Warn about docName attributes that appear to contain a file extension.
3466</t>
3467<t hangText="2007-06-26">
3468  Workaround author/@initials values without trailing dot, as in xml2rfc.tcl.
3469</t>
3470<t hangText="2007-07-14">
3471  Enhance index generation for references that use @x:sec attribute.
3472</t>
3473<t hangText="2007-09-09">
3474  Fix: sortrefs is a nop when symrefs=no.
3475</t>
3476<t hangText="2007-10-17">
3477  Work in progress: add support for referencing sections in sibling
3478  documents by anchor name.
3479</t>
3480<t hangText="2007-10-17">
3481  Work in progress (continued): support for referencing sections in sibling
3482  documents by anchor name.
3483</t>
3484<t hangText="2007-12-31">
3485  Emit warning when updating/obsoleting stuff that's not referenced.
3486</t>
3487<t hangText="2008-02-03">
3488  Support xml2rfc-1.33pre5's suppress-title attribute on texttable and figure.
3489</t>
3490<t hangText="2008-02-06">
3491  Extension: allow &lt;eref> below &lt;cref>.
3492</t>
3493<t hangText="2008-02-17">
3494  Extensions: add x:span and x:length-of.
3495</t>
3496<t hangText="2008-02-20">
3497  Add new RFC boilerplate (as changed in 2007-08).
3498</t>
3499<t hangText="2008-02-27">
3500  Improve diagnostics for artwork width problems; add defaulting of publication
3501  dates (requires XSLT processor supporting exslt:date, or msxml).
3502</t>
3503<t hangText="2008-02-29">
3504  Enhance CSS for link elements in the front header, update rules for
3505  generating "Acknowledgment" statement.
3506</t>
3507<t hangText="2008-03-01">
3508  Use line numbers in diagnostics in Saxon8/9 as well.
3509</t>
3510<t hangText="2008-03-02">
3511  Fix a bug in the logic choosing the boilerplate, resulting in obsolete
3512  text being inserted into IDs.
3513</t>
3514<t hangText="2008-04-01">
3515  Add support for superscript element.
3516</t>
3517<t hangText="2008-06-28">
3518  Add sanity checks for email addresses, allow multiple email elements.
3519</t>
3520<t hangText="2008-07-06">
3521  Add x:abnf-char-sequence.
3522</t>
3523<t hangText="2008-08-21">
3524  Add x:note.
3525</t>
3526<t hangText="2008-09-06">
3527  Add experimental support for SVG images.
3528</t>
3529<t hangText="2008-09-17">
3530  Add experimental support for x:author. Fix xref/@format=none.
3531</t>
3532<t hangText="2008-10-10">
3533  Fix a huge bug, causing text content after an XML comment to be ignored.
3534</t>
3535<t hangText="2009-02-24">
3536  Use table/caption when needed.
3537</t>
3538<t hangText="2009-03-07">
3539  Fix bug that caused text to disappear in the output in presence of
3540  processing instructions.
3541</t>
3542<t hangText="2009-03-12">
3543  Make inlined comments bookmarkable.
3544</t>
3545<t hangText="2009-04-09">
3546  Upgrade to DC-HTML from RFC 2731 (affects head/@profile).
3547</t>
3548<t hangText="2009-07-08">
3549  Remove table/@summary in output; the value getting inserted was just
3550  repeating stuff that appeared in the preamble.
3551</t>
3552<t hangText="2009-08-01">
3553  Implement table alignment (HTML output only for now).
3554</t>
3555<t hangText="2009-08-18">
3556  Replicate Dublin Core "abstract" metadata into meta/@name=description
3557  (search engines do use it).
3558</t>
3559<t hangText="2009-09-02">
3560  Fix default/left alignment of table columns, remove silly table summmary
3561  attributes.
3562</t>
3563<t hangText="2009-09-24">
3564  Support double-sided layout using CSS page:left/right selectors.
3565</t>
3566<t hangText="2009-11-27">
3567  Generate unordered lists instead of broken definition lists for list style empty.
3568</t>
3569      </list></t>
3570    </section>
3571    <section title="rfc2629toFO.xslt">
3572      <t><list style="hanging">
3573<t hangText="2003-11-16">
3574    Initial release.
3575</t>
3576<t hangText="2003-11-29">
3577    Enhance handling of unknown list styles.
3578</t>
3579<t hangText="2004-04-04">
3580    Update reference section handling.
3581</t>
3582<t hangText="2004-04-17">
3583    Use XSL-WD-1.1-style fo:bookmark and index handling and add postprocessors for
3584    existing implementations. Unify PDF info generation by using XEP (postprocessors)
3585    will convert.
3586</t>
3587<t hangText="2004-04-20">
3588    Add experimental cref support.
3589</t>
3590<t hangText="2004-06-14">
3591    Set correct index-item defaults.
3592</t>
3593<t hangText="2004-07-18">
3594    Add list style=letters.
3595</t>
3596<t hangText="2004-09-03">
3597    Make URLs in text break where they are allowed to break by inserting
3598    zero-width spaces.
3599</t>
3600<t hangText="2004-09-26">
3601    Fix letter-style inside nested lists.
3602</t>
3603<t hangText="2004-10-31">
3604    Update handling of artwork.
3605</t>
3606<t hangText="2004-11-13">
3607    Fix handling of references inside ed:* markup.  Fix whitespace handling
3608    in artwork.
3609</t>
3610<t hangText="2004-11-27">
3611    Irefs in artwork generate monospaced entries in index.
3612</t>
3613<t hangText="2005-01-31">
3614    Fix TOC generation that was broken after changes in main XSLT.
3615</t>
3616<t hangText="2005-02-05">
3617    Bring in sync with cosmetic changes in rfc2629.xslt.
3618</t>
3619<t hangText="2005-05-07">
3620    Minor fix for change tracking in document title.  Support for table
3621    styles.
3622</t>
3623<t hangText="2005-06-18">
3624    Fix references to tables.
3625</t>
3626<t hangText="2005-10-15">
3627    Process t/@anchor.
3628</t>
3629<t hangText="2006-02-11">
3630    References: add "work in progress" for Internet Drafts.
3631</t>
3632<t hangText="2006-06-02">
3633    Use XSL 1.1 WD Feb 2006.
3634</t>
3635<t hangText="2007-03-21">
3636    Support optional text justification.
3637</t>
3638<t hangText="2007-05-19">
3639    Various improvements in spacing; also allow overriding the automatic
3640    list indentation via list/x:indent.
3641</t>
3642<t hangText="2009-04-08">
3643    Fix spacing in headers; add support for formatting for double-sided printing.
3644</t>
3645<t hangText="2009-08-01">
3646    Remove surplus empty pages when not generating double-sided output.
3647</t>
3648     </list></t>
3649    </section>
3650
3651    <section title="xsl11toAn.xslt">
3652    <t><list style="hanging">
3653<t hangText="2004-05-17">
3654     Initial release.
3655</t>
3656<t hangText="2006-06-02">
3657    Use XSL 1.1 WD Feb 2006.
3658</t>
3659    </list></t>
3660    </section>
3661
3662    <section title="xsl11toFop.xslt">
3663    <t><list style="hanging">
3664<t hangText="2010-08-25">
3665    Switch to Apache FOP 1.0.
3666</t>
3667<t hangText="2009-09-12">
3668    Support for FOP 0.20.5 and FOP 0.93 removed. Please use FOP 0.95.
3669</t>
3670<t hangText="2008-03-15">
3671    Add a workaround to the fo:inline workaround (sigh).
3672</t>
3673    </list></t>
3674    </section>
3675
3676    <section title="xsl11toXep.xslt">
3677    <t><list style="hanging">
3678<t hangText="2004-05-17">
3679     Initial release.
3680</t>
3681<t hangText="2004-09-04">
3682     Fix xep:index-item attributes.
3683</t>
3684<t hangText="2006-06-02">
3685    Use XSL 1.1 WD Feb 2006.
3686</t>
3687    </list></t>
3688    </section>
3689  </section>
3690
3691</back>
3692</rfc>
Note: See TracBrowser for help on using the repository browser.