source: rfc2629xslt/rfc2629xslt.xml @ 2684

Last change on this file since 2684 was 2628, checked in by julian.reschke@…, 7 years ago

bump up document dates, update to latest version of rfc2629.xslt

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