source: rfc2629xslt/rfc2629xslt.xml @ 2586

Last change on this file since 2586 was 2527, checked in by julian.reschke@…, 6 years ago

bump up document dates

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