source: rfc2629xslt/rfc2629xslt.xml @ 681

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

update to latest version of rfc2629.xslt package (suppresses new PIs for xml2rfc)

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