source: rfc2629xslt/rfc2629xslt.html

Last change on this file was 2754, checked in by julian.reschke@…, 4 years ago

update XSLTs, add RFC 7838

  • Property svn:eol-style set to native
File size: 200.3 KB
Line 
1<!DOCTYPE html>
2<html lang="en"><head>
3      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
4   <title>Transforming RFC2629-formatted XML through XSLT</title><script type="application/javascript">
5function anchorRewrite() {
6  map = { "abnf-char-sequence": "ext.element.abnf-char-sequence", "anchor-alias": "ext.element.anchor-alias", "bcp14": "ext.element.bcp14", "bb": "ext.element.bb", "bc": "ext.element.bc", "blockquote": "ext.element.blockquote", "bt": "ext.element.bt", "dfn": "ext.element.dfn", "feedback": "ext.element.feedback", "h": "ext.element.h", "highlight": "ext.element.highlight", "length-of": "ext.element.length-of", "link": "ext.element.link", "lt": "ext.element.lt", "note": "ext.element.note", "parse-xml": "ext.element.parse-xml", "prose": "ext.element.prose", "q": "ext.element.q", "ref": "ext.element.ref", "source": "ext.element.source", "sup": "ext.element.sup", "attribute-ipr": "boiler.plate.attributes", "attribute-ipr-current": "boiler.plate.attributes", "attribute-ipr-trust200902": "boiler.plate.attributes", "attribute-ipr-noModificationTrust200902": "boiler.plate.attributes", "attribute-ipr-noDerivativesTrust200902": "boiler.plate.attributes", "attribute-ipr-pre5378Trust200902": "boiler.plate.attributes", "attribute-ipr-historic": "boiler.plate.attributes", "attribute-ipr-200811": "boiler.plate.attributes", "attribute-ipr-3978": "boiler.plate.attributes", "attribute-ipr-3667": "boiler.plate.attributes", "attribute-ipr-2026": "boiler.plate.attributes", "attribute-category": "boiler.plate.attributes", "attribute-submissiontype": "boiler.plate.attributes", "attribute-consensus": "boiler.plate.attributes"};
7  if (window.location.hash.length >= 1) {
8    var fragid = window.location.hash.substr(1);
9    if (fragid) {
10      if (! document.getElementById(fragid)) {
11        var prefix = "rfc.";
12        var mapped = map[fragid];
13        if (mapped) {
14          window.location.hash = mapped;
15        } else if (fragid.indexOf("section-") == 0) {
16          window.location.hash = prefix + "section." + fragid.substring(8);
17        } else if (fragid.indexOf("appendix-") == 0) {
18          window.location.hash = prefix + "section." + fragid.substring(9);
19        } else if (fragid.indexOf("s-") == 0) {
20          window.location.hash = prefix + "section." + fragid.substring(2);
21        } else if (fragid.indexOf("p-") == 0) {
22          var r = fragid.substring(2);
23          var p = r.indexOf("-");
24          if (p >= 0) {
25            window.location.hash = prefix + "section." + r.substring(0, p) + ".p." + r.substring(p + 1);
26          }
27        }
28      }
29    } 
30  }
31}
32window.addEventListener('hashchange', anchorRewrite);
33window.addEventListener('DOMContentLoaded', anchorRewrite);
34</script><script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script><style type="text/css" title="Xml2Rfc (sans serif)">
35a {
36  text-decoration: none;
37}
38a.smpl {
39  color: black;
40}
41a:hover {
42  text-decoration: underline;
43}
44a:active {
45  text-decoration: underline;
46}
47address {
48  margin-top: 1em;
49  margin-left: 2em;
50  font-style: normal;
51}
52body {
53  color: black;
54  font-family: cambria, georgia, serif;
55  font-size: 12pt;
56  margin: 2em auto;
57  max-width: 1000px;
58}
59samp, span.tt, code, pre {
60  font-family: consolas, monaco, monospace;
61}
62cite {
63  font-style: normal;
64}
65aside {
66  margin-left: 2em;
67}
68dl {
69  margin-left: 2em;
70}
71dl > dt {
72  float: left;
73  margin-right: 1em;
74}
75dl.nohang > dt {
76  float: none;
77}
78dl > dd {
79  margin-bottom: .5em;
80}
81dl.compact > dd {
82  margin-bottom: .0em;
83}
84dl > dd > dl {
85  margin-top: 0.5em;
86}
87ul.empty {
88  list-style-type: none;
89}
90ul.empty li {
91  margin-top: .5em;
92}
93dl p {
94  margin-left: 0em;
95}
96dl.reference > dt {
97  font-weight: bold;
98}
99dl.reference > dd {
100  margin-left: 6em;
101}
102h1 {
103  color: green;
104  font-size: 150%;
105  line-height: 18pt;
106  font-weight: bold;
107  text-align: center;
108  margin-top: 36pt;
109  margin-bottom: 0pt;
110}
111h2 {
112  font-size: 130%;
113  line-height: 21pt;
114  page-break-after: avoid;
115}
116h2.np {
117  page-break-before: always;
118}
119h3 {
120  font-size: 120%;
121  line-height: 15pt;
122  page-break-after: avoid;
123}
124h4 {
125  font-size: 110%;
126  page-break-after: avoid;
127}
128h5, h6 {
129  page-break-after: avoid;
130}
131h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
132  color: black;
133}
134img {
135  margin-left: 3em;
136}
137li {
138  margin-left: 2em;
139}
140ol {
141  margin-left: 2em;
142}
143ol.la {
144  list-style-type: lower-alpha;
145}
146ol.ua {
147  list-style-type: upper-alpha;
148}
149ol p {
150  margin-left: 0em;
151}
152p {
153  margin-left: 2em;
154}
155pre {
156  font-size: 11pt;
157  margin-left: 3em;
158  background-color: lightyellow;
159  padding: .25em;
160  page-break-inside: avoid;
161}
162pre.text2 {
163  border-style: dotted;
164  border-width: 1px;
165  background-color: #f0f0f0;
166}
167pre.inline {
168  background-color: white;
169  padding: 0em;
170  page-break-inside: auto;
171  border: none !important;
172}
173pre.text {
174  border-style: dotted;
175  border-width: 1px;
176  background-color: #f8f8f8;
177}
178pre.drawing {
179  border-style: solid;
180  border-width: 1px;
181  background-color: #f8f8f8;
182  padding: 2em;
183}
184sup {
185  font-size: 60%;
186}
187table {
188  margin-left: 2em;
189}
190table.tt {
191  border-collapse: collapse;
192  border-color: gray;
193  border-spacing: 0; 
194  vertical-align: top;
195 }
196table.tt th {
197  border-color: gray;
198  padding: 3px;
199}
200table.tt td {
201  border-color: gray;
202  padding: 3px;
203}
204table.all {
205  border-style: solid;
206  border-width: 2px;
207}
208table.full {
209  border-style: solid;
210  border-width: 2px;
211}
212table.tt td {
213  vertical-align: top;
214}
215table.all td {
216  border-style: solid;
217  border-width: 1px;
218}
219table.full td {
220  border-style: none solid;
221  border-width: 1px;
222}
223table.tt th {
224  vertical-align: top;
225}
226table.all th {
227  border-style: solid;
228  border-width: 1px;
229}
230table.full th {
231  border-style: solid;
232  border-width: 1px 1px 2px 1px;
233}
234table.headers th {
235  border-style: none none solid none;
236  border-width: 2px;
237}
238table.tleft {
239  margin-right: auto;
240}
241table.tright {
242  margin-left: auto;
243}
244table.tcenter {
245  margin-left: auto;
246  margin-right: auto;
247}
248caption {
249  caption-side: bottom;
250  font-weight: bold;
251  font-size: 10pt;
252  margin-top: .5em;
253}
254
255table.header {
256  border-spacing: 1px;
257  width: 95%;
258  font-size: 11pt;
259  color: white;
260}
261td.top {
262  vertical-align: top;
263}
264td.topnowrap {
265  vertical-align: top;
266  white-space: nowrap;
267}
268table.header td {
269  background-color: gray;
270  width: 50%;
271}
272thead {
273  display:table-header-group;
274}
275ul.toc, ul.toc ul {
276  list-style: none;
277  margin-left: 1.5em;
278  padding-left: 0em;
279}
280ul.toc li {
281  line-height: 150%;
282  font-weight: bold;
283  margin-left: 0em;
284}
285ul.toc li li {
286  line-height: normal;
287  font-weight: normal;
288  font-size: 11pt;
289  margin-left: 0em;
290}
291li.excluded {
292  font-size: 0pt;
293}
294ul p {
295  margin-left: 0em;
296}
297.filename, h1, h2, h3, h4 {
298  font-family: candara, calibri, segoe, optima, arial, sans-serif;
299}
300ul.ind, ul.ind ul {
301  list-style: none;
302  margin-left: 1.5em;
303  padding-left: 0em;
304  page-break-before: avoid;
305}
306ul.ind li {
307  font-weight: bold;
308  line-height: 200%;
309  margin-left: 0em;
310}
311ul.ind li li {
312  font-weight: normal;
313  line-height: 150%;
314  margin-left: 0em;
315}
316.avoidbreakinside {
317  page-break-inside: avoid;
318}
319.avoidbreakafter {
320  page-break-after: avoid;
321}
322
323.comment {
324  background-color: yellow;
325}
326.center {
327  text-align: center;
328}
329.error {
330  color: red;
331  font-style: italic;
332  font-weight: bold;
333}
334.figure {
335  font-weight: bold;
336  text-align: center;
337  font-size: 10pt;
338}
339.filename {
340  color: #333333;
341  font-size: 112%;
342  font-weight: bold;
343  line-height: 21pt;
344  text-align: center;
345  margin-top: 0pt;
346}
347.fn {
348  font-weight: bold;
349}
350.left {
351  text-align: left;
352}
353.right {
354  text-align: right;
355}
356.warning {
357  font-size: 130%;
358  background-color: yellow;
359}
360.self {
361    color: #999999;
362    margin-left: .3em;
363    text-decoration: none;
364    visibility: hidden;
365    -webkit-user-select: none; 
366    -moz-user-select: none;
367    -ms-user-select: none;
368}
369.self:hover {
370    text-decoration: none;
371}
372p:hover .self {
373    visibility: visible;
374}
375
376@media screen {
377  pre.text, pre.text2 {
378    width: 69em;
379  }
380}
381
382@media print {
383  .noprint {
384    display: none;
385  }
386
387  a {
388    color: black;
389    text-decoration: none;
390  }
391
392  table.header {
393    width: 90%;
394  }
395
396  td.header {
397    width: 50%;
398    color: black;
399    background-color: white;
400    vertical-align: top;
401    font-size: 110%;
402  }
403
404  ul.toc a:last-child::after {
405    content: leader('.') target-counter(attr(href), page);
406  }
407
408  ul.ind li li a {
409    content: target-counter(attr(href), page);
410  }
411
412  pre {
413    font-size: 10pt;
414  }
415
416  .print2col {
417    column-count: 2;
418    -moz-column-count: 2;
419    column-fill: auto;
420  }
421}
422
423@page {
424  @top-left {
425       content: "Documentation";
426  }
427  @top-right {
428       content: "March 2016";
429  }
430  @top-center {
431       content: "RFC2629 through XSLT";
432  }
433  @bottom-left {
434       content: "Reschke";
435  }
436  @bottom-center {
437       content: "";
438  }
439  @bottom-right {
440       content: "[Page " counter(page) "]";
441  }
442}
443
444@page:first {
445    @top-left {
446      content: normal;
447    }
448    @top-right {
449      content: normal;
450    }
451    @top-center {
452      content: normal;
453    }
454}
455</style><link rel="Contents" href="#rfc.toc"><link rel="Author" href="#rfc.authors"><link rel="Index" href="#rfc.index"><link rel="Chapter" title="1 Introduction" href="#rfc.section.1"><link rel="Chapter" title="2 Supported RFC2629 elements" href="#rfc.section.2"><link rel="Chapter" title="3 Processing Instructions" href="#rfc.section.3"><link rel="Chapter" title="4 Anchors" href="#rfc.section.4"><link rel="Chapter" title="5 Supported XSLT engines" href="#rfc.section.5"><link rel="Chapter" title="6 Transforming to HTML" href="#rfc.section.6"><link rel="Chapter" title="7 Transforming to XHTML" href="#rfc.section.7"><link rel="Chapter" title="8 Transforming to CHM (Microsoft Compiled Help)" href="#rfc.section.8"><link rel="Chapter" title="9 Transforming to PDF" href="#rfc.section.9"><link rel="Chapter" title="10 Transforming to ePub" href="#rfc.section.10"><link rel="Chapter" title="11 Generic Extensions" href="#rfc.section.11"><link rel="Chapter" title="12 Experimental Support for XML2RFCv3 Vocabulary" href="#rfc.section.12"><link rel="Chapter" title="13 Utilities" href="#rfc.section.13"><link rel="Chapter" href="#rfc.section.14" title="14 Informative References"><link rel="Appendix" title="A RELAX NG Compact Schema" href="#rfc.section.A"><link rel="Appendix" title="B Implementation Notes" href="#rfc.section.B"><link rel="Appendix" title="C Examples" href="#rfc.section.C"><link rel="Appendix" title="D Producing the IETF 'Boilerplate'" href="#rfc.section.D"><link rel="Appendix" title="E License" href="#rfc.section.E"><meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.799, 2016/03/15 12:48:29, XSLT vendor: SAXON 6.5.5 from Michael Kay http://saxon.sf.net/"><meta name="keywords" content="RFC2629, xml2rfc, XSLT, XSL-FO, PDF, GRDDL, epub, Dublin Core"><link rel="schema.dcterms" href="http://purl.org/dc/terms/"><meta name="dcterms.creator" content="Reschke, J. F."></head><body><header><table class="header" id="rfc.headerblock"><tbody><tr><td class="left">RFC2629 through XSLT</td><td class="right">J. Reschke</td></tr><tr><td class="left"></td><td class="right">greenbytes</td></tr><tr><td class="left"></td><td class="right">March 2016</td></tr></tbody></table><div id="rfc.title"><h1>Transforming RFC2629-formatted XML through XSLT</h1></div></header><hr class="noprint"><nav id="rfc.toc"><h2 class="np"><a href="#rfc.toc">Table of Contents</a></h2><ul class="toc"><li><a href="#rfc.section.1">1.</a>&nbsp;&nbsp;&nbsp;<a href="#introduction">Introduction</a></li><li><a href="#rfc.section.2">2.</a>&nbsp;&nbsp;&nbsp;<a href="#supported.elements">Supported RFC2629 elements</a><ul><li><a href="#rfc.section.2.1">2.1</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.1">Extension elements</a></li></ul></li><li><a href="#rfc.section.3">3.</a>&nbsp;&nbsp;&nbsp;<a href="#processing.instructions">Processing Instructions</a><ul><li><a href="#rfc.section.3.1">3.1</a>&nbsp;&nbsp;&nbsp;<a href="#supported.pis">Supported xml2rfc-compatible PIs</a></li><li><a href="#rfc.section.3.2">3.2</a>&nbsp;&nbsp;&nbsp;<a href="#unsupported.pis">Unsupported xml2rfc-compatible PIs</a></li><li><a href="#rfc.section.3.3">3.3</a>&nbsp;&nbsp;&nbsp;<a href="#extension.pis">Extension PIs</a></li></ul></li><li><a href="#rfc.section.4">4.</a>&nbsp;&nbsp;&nbsp;<a href="#anchors">Anchors</a></li><li><a href="#rfc.section.5">5.</a>&nbsp;&nbsp;&nbsp;<a href="#xslt.engines">Supported XSLT engines</a><ul><li><a href="#rfc.section.5.1">5.1</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.1">Standalone Engines</a></li><li><a href="#rfc.section.5.2">5.2</a>&nbsp;&nbsp;&nbsp;<a href="#xslt.engines.browser">In-Browser Engines</a></li></ul></li><li><a href="#rfc.section.6">6.</a>&nbsp;&nbsp;&nbsp;<a href="#output.html">Transforming to HTML</a><ul><li><a href="#rfc.section.6.1">6.1</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.6.1">HTML compliance</a></li><li><a href="#rfc.section.6.2">6.2</a>&nbsp;&nbsp;&nbsp;<a href="#html.link">Standard HTML LINK elements</a></li><li><a href="#rfc.section.6.3">6.3</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.6.3">Standard HTML metadata</a></li><li><a href="#rfc.section.6.4">6.4</a>&nbsp;&nbsp;&nbsp;<a href="#rfc2731.properties">Dublin Core (RFC2731) metadata</a></li></ul></li><li><a href="#rfc.section.7">7.</a>&nbsp;&nbsp;&nbsp;<a href="#output.xhtml">Transforming to XHTML</a></li><li><a href="#rfc.section.8">8.</a>&nbsp;&nbsp;&nbsp;<a href="#output.chm">Transforming to CHM (Microsoft Compiled Help)</a></li><li><a href="#rfc.section.9">9.</a>&nbsp;&nbsp;&nbsp;<a href="#output.pdf">Transforming to PDF</a><ul><li><a href="#rfc.section.9.1">9.1</a>&nbsp;&nbsp;&nbsp;<a href="#output.pdf.fop">Via XSL-FO</a><ul><li><a href="#rfc.section.9.1.1">9.1.1</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.9.1.1">Example: producing output for Apache FOP</a></li></ul></li><li><a href="#rfc.section.9.2">9.2</a>&nbsp;&nbsp;&nbsp;<a href="#output.pdf.html">Via HTML</a></li></ul></li><li><a href="#rfc.section.10">10.</a>&nbsp;&nbsp;&nbsp;<a href="#output.epub">Transforming to ePub</a></li><li><a href="#rfc.section.11">11.</a>&nbsp;&nbsp;&nbsp;<a href="#extensions">Generic Extensions</a><ul><li><a href="#rfc.section.11.1">11.1</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.abnf-char-sequence">&lt;abnf-char-sequence&gt; element</a></li><li><a href="#rfc.section.11.2">11.2</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.anchor-alias">&lt;anchor-alias&gt; element</a></li><li><a href="#rfc.section.11.3">11.3</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.bcp14">&lt;bcp14&gt; element</a></li><li><a href="#rfc.section.11.4">11.4</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.bb">&lt;bb&gt; element</a></li><li><a href="#rfc.section.11.5">11.5</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.bc">&lt;bc&gt; element</a></li><li><a href="#rfc.section.11.6">11.6</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.blockquote">&lt;blockquote&gt; element</a></li><li><a href="#rfc.section.11.7">11.7</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.bt">&lt;bt&gt; element</a></li><li><a href="#rfc.section.11.8">11.8</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.dfn">&lt;dfn&gt; element</a></li><li><a href="#rfc.section.11.9">11.9</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.feedback">&lt;feedback&gt; element</a></li><li><a href="#rfc.section.11.10">11.10</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.h">&lt;h&gt; element</a></li><li><a href="#rfc.section.11.11">11.11</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.highlight">&lt;highlight&gt; element</a></li><li><a href="#rfc.section.11.12">11.12</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.length-of">&lt;length-of&gt; element</a></li><li><a href="#rfc.section.11.13">11.13</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.link">&lt;link&gt; element</a></li><li><a href="#rfc.section.11.14">11.14</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.lt">&lt;lt&gt; element</a></li><li><a href="#rfc.section.11.15">11.15</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.note">&lt;note&gt; element</a></li><li><a href="#rfc.section.11.16">11.16</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.parse-xml">&lt;parse-xml&gt; element</a></li><li><a href="#rfc.section.11.17">11.17</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.prose">&lt;prose&gt; element</a></li><li><a href="#rfc.section.11.18">11.18</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.q">&lt;q&gt; element</a></li><li><a href="#rfc.section.11.19">11.19</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.ref">&lt;ref&gt; element</a></li><li><a href="#rfc.section.11.20">11.20</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.source">&lt;source&gt; element</a></li><li><a href="#rfc.section.11.21">11.21</a>&nbsp;&nbsp;&nbsp;<a href="#ext.element.sup">&lt;sup&gt; element</a></li><li><a href="#rfc.section.11.22">11.22</a>&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.artwork">Extensions to Xml2rfc &lt;artwork&gt; element</a></li><li><a href="#rfc.section.11.23">11.23</a>&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.iref">Extensions to Xml2rfc &lt;iref&gt; element</a></li><li><a href="#rfc.section.11.24">11.24</a>&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.list">Extensions to Xml2rfc &lt;list&gt; element</a></li><li><a href="#rfc.section.11.25">11.25</a>&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.rfc">Extensions to Xml2rfc &lt;rfc&gt; element</a></li><li><a href="#rfc.section.11.26">11.26</a>&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.section">Extensions to Xml2rfc &lt;section&gt; element</a></li><li><a href="#rfc.section.11.27">11.27</a>&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.xref">Extensions to Xml2rfc &lt;xref&gt; element</a></li></ul></li><li><a href="#rfc.section.12">12.</a>&nbsp;&nbsp;&nbsp;<a href="#v3">Experimental Support for XML2RFCv3 Vocabulary</a><ul><li><a href="#rfc.section.12.1">12.1</a>&nbsp;&nbsp;&nbsp;<a href="#v3.aside">aside Element</a></li><li><a href="#rfc.section.12.2">12.2</a>&nbsp;&nbsp;&nbsp;<a href="#v3.bcp14">bcp14 Element</a></li><li><a href="#rfc.section.12.3">12.3</a>&nbsp;&nbsp;&nbsp;<a href="#v3.blockquote">blockquote Element</a></li><li><a href="#rfc.section.12.4">12.4</a>&nbsp;&nbsp;&nbsp;<a href="#v3.boilerplate">boilerplate Element</a></li><li><a href="#rfc.section.12.5">12.5</a>&nbsp;&nbsp;&nbsp;<a href="#v3.displayreference">displayreference Element</a></li><li><a href="#rfc.section.12.6">12.6</a>&nbsp;&nbsp;&nbsp;<a href="#v3.dd">dd Element</a></li><li><a href="#rfc.section.12.7">12.7</a>&nbsp;&nbsp;&nbsp;<a href="#v3.dl">dl Element</a></li><li><a href="#rfc.section.12.8">12.8</a>&nbsp;&nbsp;&nbsp;<a href="#v3.dt">dt Element</a></li><li><a href="#rfc.section.12.9">12.9</a>&nbsp;&nbsp;&nbsp;<a href="#v3.em">em Element</a></li><li><a href="#rfc.section.12.10">12.10</a>&nbsp;&nbsp;&nbsp;<a href="#v3.li">li Element</a></li><li><a href="#rfc.section.12.11">12.11</a>&nbsp;&nbsp;&nbsp;<a href="#v3.name">name Element</a></li><li><a href="#rfc.section.12.12">12.12</a>&nbsp;&nbsp;&nbsp;<a href="#v3.ol">ol Element</a></li><li><a href="#rfc.section.12.13">12.13</a>&nbsp;&nbsp;&nbsp;<a href="#v3.postalLine">postalLine Element</a></li><li><a href="#rfc.section.12.14">12.14</a>&nbsp;&nbsp;&nbsp;<a href="#v3.refcontent">refcontent Element</a></li><li><a href="#rfc.section.12.15">12.15</a>&nbsp;&nbsp;&nbsp;<a href="#v3.sourcecode">sourcecode Element</a></li><li><a href="#rfc.section.12.16">12.16</a>&nbsp;&nbsp;&nbsp;<a href="#v3.reference">Extensions to reference Element</a><ul><li><a href="#rfc.section.12.16.1">12.16.1</a>&nbsp;&nbsp;&nbsp;<a href="#v3.reference.quoteTitle">quoteTitle attribute</a></li></ul></li><li><a href="#rfc.section.12.17">12.17</a>&nbsp;&nbsp;&nbsp;<a href="#v3.section">Extensions to section Element</a><ul><li><a href="#rfc.section.12.17.1">12.17.1</a>&nbsp;&nbsp;&nbsp;<a href="#v3.section.numbered">numbered attribute</a></li><li><a href="#rfc.section.12.17.2">12.17.2</a>&nbsp;&nbsp;&nbsp;<a href="#v3.section.removeInRFC">removeInRFC attribute</a></li></ul></li><li><a href="#rfc.section.12.18">12.18</a>&nbsp;&nbsp;&nbsp;<a href="#v3.strong">strong Element</a></li><li><a href="#rfc.section.12.19">12.19</a>&nbsp;&nbsp;&nbsp;<a href="#v3.sub">sub Element</a></li><li><a href="#rfc.section.12.20">12.20</a>&nbsp;&nbsp;&nbsp;<a href="#v3.sup">sup Element</a></li><li><a href="#rfc.section.12.21">12.21</a>&nbsp;&nbsp;&nbsp;<a href="#v3.svg">svg Element</a></li><li><a href="#rfc.section.12.22">12.22</a>&nbsp;&nbsp;&nbsp;<a href="#v3.tt">tt Element</a></li><li><a href="#rfc.section.12.23">12.23</a>&nbsp;&nbsp;&nbsp;<a href="#v3.ul">ul Element</a></li></ul></li><li><a href="#rfc.section.13">13.</a>&nbsp;&nbsp;&nbsp;<a href="#utilities">Utilities</a><ul><li><a href="#rfc.section.13.1">13.1</a>&nbsp;&nbsp;&nbsp;<a href="#checking-references">Checking References</a></li><li><a href="#rfc.section.13.2">13.2</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.13.2">Generating Graphs from References</a></li><li><a href="#rfc.section.13.3">13.3</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.13.3">Producing reference entries for books</a></li><li><a href="#rfc.section.13.4">13.4</a>&nbsp;&nbsp;&nbsp;<a href="#clean-for-dtd">Down-converting to RFC2629bis DTD</a></li><li><a href="#rfc.section.13.5">13.5</a>&nbsp;&nbsp;&nbsp;<a href="#extract-artwork">Extracting artwork</a></li><li><a href="#rfc.section.13.6">13.6</a>&nbsp;&nbsp;&nbsp;<a href="#grddl">GRRDL</a></li><li><a href="#rfc.section.13.7">13.7</a>&nbsp;&nbsp;&nbsp;<a href="#html.live.refresh">HTML Live Refresh</a></li><li><a href="#rfc.section.13.8">13.8</a>&nbsp;&nbsp;&nbsp;<a href="#refreshing.inclusions">Refreshing included material in the XML source</a></li></ul></li><li><a href="#rfc.section.14">14.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.references">Informative References</a></li><li><a href="#rfc.section.A">A.</a>&nbsp;&nbsp;&nbsp;<a href="#grammar">RELAX NG Compact Schema</a></li><li><a href="#rfc.section.B">B.</a>&nbsp;&nbsp;&nbsp;<a href="#rfc.section.B">Implementation Notes</a><ul><li><a href="#rfc.section.B.1">B.1</a>&nbsp;&nbsp;&nbsp;<a href="#artwork.types">Recognized type attributes for &lt;artwork&gt; element</a></li></ul></li><li><a href="#rfc.section.C">C.</a>&nbsp;&nbsp;&nbsp;<a href="#examples">Examples</a><ul><li><a href="#rfc.section.C.1">C.1</a>&nbsp;&nbsp;&nbsp;<a href="#examples.internalsubset">Using the 'Internal Subset'</a></li><li><a href="#rfc.section.C.2">C.2</a>&nbsp;&nbsp;&nbsp;<a href="#examples.customizing">Customization</a></li></ul></li><li><a href="#rfc.section.D">D.</a>&nbsp;&nbsp;&nbsp;<a href="#boilerplate">Producing the IETF 'Boilerplate'</a></li><li><a href="#rfc.section.E">E.</a>&nbsp;&nbsp;&nbsp;<a href="#license">License</a></li><li><a href="#rfc.index">Index</a></li><li><a href="#rfc.authors">Author's Address</a></li></ul></nav><hr class="noprint"><section id="introduction"><h2 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a>&nbsp;<a href="#introduction">Introduction</a></h2><div id="rfc.section.1.p.1"><p>This document describes a set of XSLT transformations that can be used to transform "XML2RFC" XML (<a href="#RFC7749" id="rfc.xref.RFC7749.1"><cite title="The &#34;xml2rfc&#34; Version 2 Vocabulary">[RFC7749]</cite></a>, updating <a href="#RFC2629" id="rfc.xref.RFC2629.1"><cite title="Writing I-Ds and RFCs using XML">[RFC2629]</cite></a>) to various output formats, such as HTML and PDF. The main topics are <a class="self" href="#rfc.section.1.p.1">&para;</a></p><ul><li>compliance to the xml2rfc XML element set (<a href="#supported.elements" title="Supported RFC2629 elements">Section&nbsp;2</a>),</li><li>support for xml2rfc processing instructions (<a href="#processing.instructions" title="Processing Instructions">Section&nbsp;3</a>),</li><li>the names of anchor elements generated in HTML and PDF output (<a href="#anchors" title="Anchors">Section&nbsp;4</a>),</li><li>various XSLT engines that can be used (<a href="#xslt.engines" title="Supported XSLT engines">Section&nbsp;5</a>),</li><li>outputting HTML (<a href="#output.html" title="Transforming to HTML">Section&nbsp;6</a>) and XHTML (<a href="#output.xhtml" title="Transforming to XHTML">Section&nbsp;7</a>),</li><li>outputting CHM (Compiled Microsoft Help, <a href="#output.chm" title="Transforming to CHM (Microsoft Compiled Help)">Section&nbsp;8</a>),</li><li>outputting PDF (<a href="#output.pdf" title="Transforming to PDF">Section&nbsp;9</a>),</li><li>outputting ePub (<a href="#output.epub" title="Transforming to ePub">Section&nbsp;10</a>),</li><li>extensions to the xml2rfc vocabulary (<a href="#extensions" title="Generic Extensions">Section&nbsp;11</a>),</li><li>selected extensions from the proposed xml2rfc V3 vocabulary (<a href="#v3" title="Experimental Support for XML2RFCv3 Vocabulary">Section&nbsp;12</a>),</li><li>various utilities (<a href="#utilities" title="Utilities">Section&nbsp;13</a>).</li></ul></div><div id="rfc.section.1.p.2"><p>The full distribution is available at &lt;<a href="http://greenbytes.de/tech/webdav/rfc2629xslt.zip">http://greenbytes.de/tech/webdav/rfc2629xslt.zip</a>&gt;.<a class="self" href="#rfc.section.1.p.2">&para;</a></p></div></section><hr class="noprint"><section id="supported.elements"><h2 id="rfc.section.2" class="np"><a href="#rfc.section.2">2.</a>&nbsp;<a href="#supported.elements">Supported RFC2629 elements</a></h2><div id="rfc.section.2.p.1"><p><span class="tt">rfc2629.xslt</span> supports both all RFC2629 grammar elements and the extensions implemented in xml2rfc 1.36.<a class="self" href="#rfc.section.2.p.1">&para;</a></p></div><section id="n-extension-elements"><h3 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a>&nbsp;<a href="#n-extension-elements">Extension elements</a></h3><div id="rfc.section.2.1.p.1"><p><span class="tt">rfc2629.xslt</span> supports two kind of extension elements, using different XML namespaces.<a class="self" href="#rfc.section.2.1.p.1">&para;</a></p></div><div id="rfc.section.2.1.p.2"><p>The first set contains (hopefully) generally useful extensions, see <a href="#extensions" title="Generic Extensions">Section&nbsp;11</a>.<a class="self" href="#rfc.section.2.1.p.2">&para;</a></p></div><div id="rfc.section.2.1.p.3"><p>The second set is used for change and issue tracking and currently is not documented here. Please email the author in case you're interested in using these extensions.<a class="self" href="#rfc.section.2.1.p.3">&para;</a></p></div></section></section><hr class="noprint"><section id="processing.instructions"><h2 id="rfc.section.3" class="np"><a href="#rfc.section.3">3.</a>&nbsp;<a href="#processing.instructions">Processing Instructions</a></h2><div id="rfc.section.3.p.1"><p>All PIs can be set as XSLT parameter as well, overriding any value that is found in the source file to be transformed.<a class="self" href="#rfc.section.3.p.1">&para;</a></p></div><div id="rfc.figure.u.1"><p>Using processing instructions:</p><pre class="text prettyprint">&lt;?rfc toc="yes"?&gt;
456&lt;?rfc-ext support-rfc2731="no"?&gt;
457</pre></div><div id="rfc.figure.u.2"><p>Using XSLT parameters (Saxon):</p><pre class="text">java -cp saxon.jar com.icl.saxon.StyleSheet source.xml rfc2629.xslt \
458  xml2rfc-toc=yes xml2rfc-ext-support-rfc2731=no &gt; result.html
459</pre></div><div id="rfc.figure.u.3"><p>Using XSLT parameters (xsltproc):</p><pre class="text">xsltproc --param xml2rfc-toc '"yes"' \
460   --param xml2rfc-ext-support-rfc2731 '"no"' \
461   rfc2629.xslt source.xml &gt; result.html
462</pre><p>(note the required quoting of string parameters)<span id="rfc.iref.x.1"></span></p></div><section id="supported.pis"><h3 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;<a href="#supported.pis">Supported xml2rfc-compatible PIs</a></h3><div id="rfc.table.u.1"><table class="tt full tcenter"><thead><tr><th>PI target</th><th>PI pseudo-attribute</th><th>XSLT parameter name</th><th>default</th><th>comment</th></tr></thead><tbody><tr><td class="left">rfc</td><td class="left">background<div id="rfc.iref.b.1"></div><div id="rfc.iref.p.1"></div></td><td class="left">xml2rfc-background<div id="rfc.iref.x.2"></div> <div id="rfc.iref.p.2"></div></td><td class="left">(not set)</td><td class="left"></td></tr><tr><td class="left">rfc</td><td class="left">compact<div id="rfc.iref.c.1"></div><div id="rfc.iref.p.3"></div></td><td class="left">xml2rfc-compact<div id="rfc.iref.x.3"></div> <div id="rfc.iref.p.4"></div></td><td class="left">"no"</td><td class="left">only applies to HTML output method when printing</td></tr><tr><td class="left">rfc</td><td class="left">comments<div id="rfc.iref.c.2"></div><div id="rfc.iref.p.5"></div></td><td class="left">xml2rfc-comments<div id="rfc.iref.x.4"></div> <div id="rfc.iref.p.6"></div></td><td class="left">(not set)</td><td class="left"></td></tr><tr><td class="left">rfc</td><td class="left">docmapping<div id="rfc.iref.d.1"></div><div id="rfc.iref.p.7"></div></td><td class="left"></td><td class="left">"yes"</td><td class="left">This is the default for rfc2629.xslt anyway, and it can not be changed</td></tr><tr><td class="left">rfc</td><td class="left">editing<div id="rfc.iref.e.1"></div><div id="rfc.iref.p.8"></div></td><td class="left">xml2rfc-editing<div id="rfc.iref.x.5"></div> <div id="rfc.iref.p.9"></div></td><td class="left">"no"</td><td class="left"></td></tr><tr><td class="left">rfc</td><td class="left">footer<div id="rfc.iref.f.1"></div><div id="rfc.iref.p.10"></div></td><td class="left">xml2rfc-footer<div id="rfc.iref.x.6"></div> <div id="rfc.iref.p.11"></div></td><td class="left">(not set)</td><td class="left"></td></tr><tr><td class="left">rfc</td><td class="left">header<div id="rfc.iref.h.1"></div><div id="rfc.iref.p.12"></div></td><td class="left">xml2rfc-header<div id="rfc.iref.x.7"></div> <div id="rfc.iref.p.13"></div></td><td class="left">(not set)</td><td class="left"></td></tr><tr><td class="left">rfc</td><td class="left">include<div id="rfc.iref.i.1"></div><div id="rfc.iref.p.14"></div></td><td class="left">only partly supported, use external entities instead (see <a href="#examples.internalsubset" title="Using the 'Internal Subset'">Appendix&nbsp;C.1</a>) or other tools (<a href="#refreshing.inclusions" title="Refreshing included material in the XML source">Section&nbsp;13.8</a>) instead</td><td class="left">rfc</td><td class="left">inline<div id="rfc.iref.i.2"></div><div id="rfc.iref.p.15"></div></td></tr><tr><td class="left">xml2rfc-inline<div id="rfc.iref.x.8"></div> <div id="rfc.iref.p.16"></div></td><td class="left">(not set)</td><td class="left"></td><td class="left">rfc</td><td class="left">iprnotified<div id="rfc.iref.i.3"></div><div id="rfc.iref.p.17"></div></td></tr><tr><td class="left">xml2rfc-iprnotified<div id="rfc.iref.x.9"></div> <div id="rfc.iref.p.18"></div></td><td class="left">"no"</td><td class="left"></td><td class="left">rfc</td><td class="left">linkmailto<div id="rfc.iref.l.1"></div><div id="rfc.iref.p.19"></div></td></tr><tr><td class="left">xml2rfc-linkmailto<div id="rfc.iref.x.10"></div> <div id="rfc.iref.p.20"></div></td><td class="left">"yes"</td><td class="left"></td><td class="left">rfc</td><td class="left">private<div id="rfc.iref.p.21"></div><div id="rfc.iref.p.22"></div></td></tr><tr><td class="left">xml2rfc-private<div id="rfc.iref.x.11"></div> <div id="rfc.iref.p.23"></div></td><td class="left">(not set)</td><td class="left"></td><td class="left">rfc</td><td class="left">refparent<div id="rfc.iref.r.1"></div><div id="rfc.iref.p.24"></div></td></tr><tr><td class="left">xml2rfc-private<div id="rfc.iref.x.12"></div> <div id="rfc.iref.p.25"></div></td><td class="left">"References"</td><td class="left">Title for References sections when automatically inserted</td><td class="left">rfc</td><td class="left">rfcedstyle<div id="rfc.iref.r.2"></div><div id="rfc.iref.p.26"></div></td></tr><tr><td class="left">xml2rfc-rfcedstyle<div id="rfc.iref.x.13"></div> <div id="rfc.iref.p.27"></div></td><td class="left">(not set)</td><td class="left">(limited support)</td><td class="left">rfc</td><td class="left">sortrefs<div id="rfc.iref.s.1"></div><div id="rfc.iref.p.28"></div></td></tr><tr><td class="left">xml2rfc-sortrefs<div id="rfc.iref.x.14"></div> <div id="rfc.iref.p.29"></div></td><td class="left">"no"</td><td class="left"></td><td class="left">rfc</td><td class="left">symrefs<div id="rfc.iref.s.2"></div><div id="rfc.iref.p.30"></div></td></tr><tr><td class="left">xml2rfc-symrefs<div id="rfc.iref.x.15"></div> <div id="rfc.iref.p.31"></div></td><td class="left">"yes"</td><td class="left">The default has changed from "no" to "yes" as of June 6, 2007 and xml2rfc 1.33pre4.</td><td class="left">rfc</td><td class="left">toc<div id="rfc.iref.t.1"></div><div id="rfc.iref.p.32"></div></td></tr><tr><td class="left">xml2rfc-toc<div id="rfc.iref.x.16"></div> <div id="rfc.iref.p.33"></div></td><td class="left">"no"</td><td class="left"></td><td class="left">rfc</td><td class="left">tocdepth<div id="rfc.iref.t.2"></div><div id="rfc.iref.p.34"></div></td></tr><tr><td class="left">xml2rfc-tocdepth<div id="rfc.iref.x.17"></div> <div id="rfc.iref.p.35"></div></td><td class="left">99</td><td class="left"></td><td class="left">rfc</td><td class="left">topblock<div id="rfc.iref.t.3"></div><div id="rfc.iref.p.36"></div></td></tr><tr><td class="left">xml2rfc-topblock<div id="rfc.iref.x.18"></div> <div id="rfc.iref.p.37"></div></td><td class="left">"yes"</td><td class="left"></td></tr></tbody></table></div></section><section id="unsupported.pis"><h3 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a>&nbsp;<a href="#unsupported.pis">Unsupported xml2rfc-compatible PIs</a></h3><div id="rfc.table.u.2"><table class="tt full tcenter"><thead><tr><th>PI target</th><th>PI pseudo-attribute</th><th>comment</th></tr></thead><tbody><tr><td class="left">rfc</td><td class="left">needLines<div id="rfc.iref.n.1"></div><div id="rfc.iref.p.38"></div></td><td class="left"></td></tr><tr><td class="left">rfc</td><td class="left">slides<div id="rfc.iref.s.3"></div><div id="rfc.iref.p.39"></div></td><td class="left"></td></tr><tr><td class="left">rfc</td><td class="left">strict<div id="rfc.iref.s.4"></div><div id="rfc.iref.p.40"></div></td><td class="left"></td></tr><tr><td class="left">rfc</td><td class="left">subcompact<div id="rfc.iref.s.5"></div><div id="rfc.iref.p.41"></div></td><td class="left"></td></tr><tr><td class="left">rfc</td><td class="left">tocindent<div id="rfc.iref.t.4"></div><div id="rfc.iref.p.42"></div></td><td class="left">(defaults to "yes")</td></tr><tr><td class="left">rfc</td><td class="left">tocompact<div id="rfc.iref.t.5"></div><div id="rfc.iref.p.43"></div></td><td class="left"></td></tr></tbody></table></div></section><section id="extension.pis"><h3 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3</a>&nbsp;<a href="#extension.pis">Extension PIs</a></h3><div id="rfc.table.u.3"><table class="tt full tcenter"><thead><tr><th>PI target</th><th>PI pseudo-attribute</th><th>XSLT parameter name</th><th>default</th><th>description</th></tr></thead><tbody><tr><td class="left">rfc-ext</td><td class="left">allow-markup-in-artwork<div id="rfc.iref.a.1"></div><div id="rfc.iref.p.44"></div></td><td class="left">xml2rfc-allow-markup-in-artwork<div id="rfc.iref.x.19"></div> <div id="rfc.iref.p.45"></div></td><td class="left">"no"</td><td class="left">Enables support for specific elements inside abstract elements (using this extension makes the document incompatible to the RFC2629bis DTD; see description of conversion XSLT in <a href="#clean-for-dtd" title="Down-converting to RFC2629bis DTD">Section&nbsp;13.4</a>).</td></tr><tr><td class="left">rfc-ext</td><td class="left">authors-section<div id="rfc.iref.a.2"></div><div id="rfc.iref.p.46"></div></td><td class="left">xml2rfc-ext-authors-section<div id="rfc.iref.x.20"></div> <div id="rfc.iref.p.47"></div></td><td class="left">"end"</td><td class="left">When "before-appendices", place the authors section between references and appendices (this ordering was used a long time ago).</td></tr><tr><td class="left">rfc-ext</td><td class="left">duplex<div id="rfc.iref.d.2"></div><div id="rfc.iref.p.48"></div></td><td class="left">xml2rfc-ext-duplex<div id="rfc.iref.x.21"></div> <div id="rfc.iref.p.49"></div></td><td class="left">"no"</td><td class="left">When set to "yes", format the PDF output for doublesided printing.</td></tr><tr><td class="left">rfc-ext</td><td class="left">html-pretty-print<div id="rfc.iref.h.2"></div><div id="rfc.iref.p.50"></div></td><td class="left">xml2rfc-ext-html-pretty-print<div id="rfc.iref.x.22"></div> <div id="rfc.iref.p.51"></div></td><td class="left"></td><td class="left">Used to specify a JS-based code pretty-printer; the value is the CSS class name to insert, followed by a blank space, followed by the URI of the JS library. For instance: "prettyprint https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"</td></tr><tr><td class="left">rfc-ext</td><td class="left">include-index<div id="rfc.iref.i.4"></div><div id="rfc.iref.p.52"></div></td><td class="left">xml2rfc-ext-include-index<div id="rfc.iref.x.23"></div> <div id="rfc.iref.p.53"></div></td><td class="left">"yes"</td><td class="left">When set to "no", no index will be generated.</td></tr><tr><td class="left">rfc-ext</td><td class="left">include-references-in-index<div id="rfc.iref.i.5"></div><div id="rfc.iref.p.54"></div></td><td class="left">xml2rfc-ext-include-references-in-index<div id="rfc.iref.x.24"></div> <div id="rfc.iref.p.55"></div></td><td class="left">"no"</td><td class="left">When set to "yes", index entries are generated for all references.</td></tr><tr><td class="left">rfc-ext</td><td class="left">insert-metadata<div id="rfc.iref.i.6"></div><div id="rfc.iref.p.56"></div></td><td class="left">xml2rfc-ext-insert-metadata<div id="rfc.iref.x.25"></div> <div id="rfc.iref.p.57"></div></td><td class="left">"yes"</td><td class="left">When set to "yes", include JS code that fetches current RFC metadata and inserts it into the front page (standards track, obsoletion, updates, errata).</td></tr><tr><td class="left">rfc-ext</td><td class="left">justification<div id="rfc.iref.j.1"></div><div id="rfc.iref.p.58"></div></td><td class="left">xml2rfc-ext-justification<div id="rfc.iref.x.26"></div> <div id="rfc.iref.p.59"></div></td><td class="left">"never"</td><td class="left">"never": never emit justified text, "always": always emit justified text, "print": only emit justified text for print media.</td></tr><tr><td class="left">rfc-ext</td><td class="left">parse-xml-in-artwork<div id="rfc.iref.p.60"></div><div id="rfc.iref.p.61"></div></td><td class="left">xml2rfc-parse-xml-in-artwork<div id="rfc.iref.x.27"></div> <div id="rfc.iref.p.62"></div></td><td class="left">"no"</td><td class="left">May be used to enable parsing of XML content in figures (MSXML only).</td></tr><tr><td class="left">rfc-ext</td><td class="left">sec-no-trailing-dots<div id="rfc.iref.s.6"></div><div id="rfc.iref.p.63"></div></td><td class="left">xml2rfc-ext-sec-no-trailing-dots<div id="rfc.iref.x.28"></div> <div id="rfc.iref.p.64"></div></td><td class="left"></td><td class="left">When set to "yes", add trailing dots to section numbers. This seems to be the preferred format in the newest RFCs.</td></tr><tr><td class="left">rfc-ext</td><td class="left">support-rfc2731<div id="rfc.iref.s.7"></div><div id="rfc.iref.p.65"></div></td><td class="left">xml2rfc-ext-support-rfc2731<div id="rfc.iref.x.29"></div> <div id="rfc.iref.p.66"></div></td><td class="left">"yes"</td><td class="left">Decides whether the HTML transformation should generate META tags according <a href="#rfc2731.properties" title="Dublin Core (RFC2731) metadata">Section&nbsp;6.4</a>.</td></tr></tbody></table></div></section></section><hr class="noprint"><section id="anchors"><h2 id="rfc.section.4" class="np"><a href="#rfc.section.4">4.</a>&nbsp;<a href="#anchors">Anchors</a></h2><div id="rfc.section.4.p.1"><p>The transformation automatically generates anchors that are supposed to be stable and predictable and that can be used to identify specific parts of the document. Anchors are generated both in HTML and XSL-FO content (but the latter will only be used for PDF output when the XSL-FO engine supports producing PDF anchors).<a class="self" href="#rfc.section.4.p.1">&para;</a></p></div><div id="rfc.table.u.4"><p>The following anchors get auto-generated:</p><table class="tt full tcenter"><thead><tr><th>Anchor name</th><th>Description</th></tr></thead><tbody><tr><td class="left">rfc.abstract <div id="rfc.iref.r.3"></div><div id="rfc.iref.a.3"></div></td><td class="left">Abstract</td></tr><tr><td class="left">rfc.authors <div id="rfc.iref.r.4"></div><div id="rfc.iref.a.4"></div></td><td class="left">Authors section</td></tr><tr><td class="left">rfc.copyright <div id="rfc.iref.r.5"></div><div id="rfc.iref.a.5"></div></td><td class="left">Copyright section</td></tr><tr><td class="left">rfc.copyrightnotice <div id="rfc.iref.r.6"></div><div id="rfc.iref.a.6"></div></td><td class="left">Copyright notice</td></tr><tr><td class="left">rfc.figure.<em>n</em> <div id="rfc.iref.r.7"></div><div id="rfc.iref.a.7"></div></td><td class="left">Figures (titled)</td></tr><tr><td class="left">rfc.figure.u.<em>n</em> <div id="rfc.iref.r.8"></div><div id="rfc.iref.a.8"></div></td><td class="left">Figures (untitled)</td></tr><tr><td class="left">rfc.index <div id="rfc.iref.r.9"></div><div id="rfc.iref.a.9"></div></td><td class="left">Index</td></tr><tr><td class="left">rfc.ipr <div id="rfc.iref.r.10"></div><div id="rfc.iref.a.10"></div></td><td class="left">Intellectual Property</td></tr><tr><td class="left">rfc.iref.<em>n</em> <div id="rfc.iref.r.11"></div><div id="rfc.iref.a.11"></div></td><td class="left">Internal references</td></tr><tr><td class="left">rfc.note.<em>n</em> <div id="rfc.iref.r.12"></div><div id="rfc.iref.a.12"></div></td><td class="left">Notes (from front section)</td></tr><tr><td class="left">rfc.references <div id="rfc.iref.r.13"></div><div id="rfc.iref.a.13"></div></td><td class="left">References</td></tr><tr><td class="left">rfc.references.<em>n</em> <div id="rfc.iref.r.14"></div><div id="rfc.iref.a.14"></div></td><td class="left">Additional references</td></tr><tr><td class="left">rfc.section.<em>n</em> <div id="rfc.iref.r.15"></div><div id="rfc.iref.a.15"></div></td><td class="left">Section <em>n</em></td></tr><tr><td class="left">rfc.section.<em>n</em>.p.<em>m</em> <div id="rfc.iref.r.16"></div><div id="rfc.iref.a.16"></div></td><td class="left">Section <em>n</em>, paragraph <em>m</em></td></tr><tr><td class="left">rfc.status <div id="rfc.iref.r.17"></div><div id="rfc.iref.a.17"></div></td><td class="left">Status of memo</td></tr><tr><td class="left">rfc.table.<em>n</em> <div id="rfc.iref.r.18"></div><div id="rfc.iref.a.18"></div></td><td class="left">Tables (titled)</td></tr><tr><td class="left">rfc.table.u.<em>n</em> <div id="rfc.iref.r.19"></div><div id="rfc.iref.a.19"></div></td><td class="left">Tables (untitled)</td></tr><tr><td class="left">rfc.toc <div id="rfc.iref.r.20"></div><div id="rfc.iref.a.20"></div></td><td class="left">Table of contents</td></tr><tr><td class="left">rfc.xref.<em>name</em>.<em>n</em> <div id="rfc.iref.r.21"></div><div id="rfc.iref.a.21"></div></td><td class="left">References to reference <em>n</em> to <em>name</em></td></tr></tbody></table></div></section><hr class="noprint"><section id="xslt.engines"><h2 id="rfc.section.5" class="np"><a href="#rfc.section.5">5.</a>&nbsp;<a href="#xslt.engines">Supported XSLT engines</a></h2><div id="rfc.section.5.p.1"><p>The transformation requires a non-standard extension function (see <a href="http://www.exslt.org/exsl/functions/node-set/index.html">exsl:node-set</a>) which is however widely available. XSLT processors that do not support this extension (or a functional equivalent, such as msxsl:node-set) currently are not supported.<a class="self" href="#rfc.section.5.p.1">&para;</a></p></div><div id="exsl-date-time"><div id="rfc.section.5.p.2"><p>Input documents do not always specify the date completely. In this case, the transformation attempts to let the XSLT engine to compute the system date, using either scripting in Microsoft's XSLT engine, or the <a href="http://www.exslt.org/date/functions/date-time/">exsl:date-time</a> extension function.<a class="self" href="#rfc.section.5.p.2">&para;</a></p></div></div><section id="n-standalone-engines"><h3 id="rfc.section.5.1"><a href="#rfc.section.5.1">5.1</a>&nbsp;<a href="#n-standalone-engines">Standalone Engines</a></h3><div id="rfc.section.5.1.p.1"><p>The following XSLT engines are believed to work well: <a class="self" href="#rfc.section.5.1.p.1">&para;</a></p><ul><li>Windows: <span id="rfc.iref.m.1"></span><span id="rfc.iref.m.2"></span>MSXML3 and MSXML4 (&lt;<a href="http://msdn.microsoft.com/xml">http://msdn.microsoft.com/xml</a>&gt;; command line processor "msxsl" is available from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2FB55371-C94E-4373-B0E9-DB4816552E41">Microsoft Download Center</a>)</li><li>Java: <span id="rfc.iref.s.8"></span>Saxon (&lt;<a href="http://saxon.sourceforge.net/">http://saxon.sourceforge.net/</a>&gt;)</li><li>Java: <span id="rfc.iref.x.30"></span>Xalan (&lt;<a href="http://xml.apache.org/xalan-j/">http://xml.apache.org/xalan-j/</a>&gt;)</li><li>C/C++: <span id="rfc.iref.x.31"></span>xsltproc (libxslt) (&lt;<a href="http://xmlsoft.org/XSLT/">http://xmlsoft.org/XSLT/</a>&gt;, make sure that you have a current version)</li></ul></div></section><section id="xslt.engines.browser"><h3 id="rfc.section.5.2"><a href="#rfc.section.5.2">5.2</a>&nbsp;<a href="#xslt.engines.browser">In-Browser Engines</a></h3><div id="rfc.section.5.2.p.1"><p>The following browsers seem to work fine: <a class="self" href="#rfc.section.5.2.p.1">&para;</a></p><ul><li><p><span id="rfc.iref.i.7"></span>Internet Explorer 5.5 (Windows version, if MSXML3 is installed)</p></li><li><p><span id="rfc.iref.i.8"></span><span id="rfc.iref.i.9"></span><span id="rfc.iref.i.10"></span><span id="rfc.iref.i.11"></span>Internet Explorer 6 and newer</p></li><li><div id="firefox3"><p><span id="rfc.iref.m.3"></span><span id="rfc.iref.f.2"></span>Firefox 3.0 and newer</p></div><ul><li>Be aware that XSLT execution can be suppressed using <span id="rfc.iref.n.2"></span><a href="https://addons.mozilla.org/de/firefox/addon/722">NoScript</a></li><li>Firefox does not load external DTDs nor external entities, see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=22942">Mozilla Bug 22942</a>, thus entities like &amp;nbsp; need to be declared in the internal subset (<a href="#examples.internalsubset" title="Using the 'Internal Subset'">Appendix&nbsp;C.1</a>)</li><li>There seems to be a new problem in Firefox 4 where it occasionally does the initial rendering with the wrong width (people who can reproduce this problem please comment on &lt;<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=640390">https://bugzilla.mozilla.org/show_bug.cgi?id=640390</a>&gt;.</li><li>Date computation is available in Firefox starting with Firefox 6 (see &lt;<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=603159">https://bugzilla.mozilla.org/show_bug.cgi?id=603159</a>&gt;)</li></ul></li><li><p><span id="rfc.iref.s.9"></span><span id="rfc.iref.s.10"></span>Safari 3 (starting with version 3.0.4)</p><ul><li>Date computation not available (see &lt;<a href="https://bugs.webkit.org/show_bug.cgi?id=4079">https://bugs.webkit.org/show_bug.cgi?id=4079</a>&gt;)</li></ul></li><li><p><span id="rfc.iref.g.1"></span>Google Chrome</p><ul><li>Date computation not available (see &lt;<a href="https://bugs.webkit.org/show_bug.cgi?id=4079">https://bugs.webkit.org/show_bug.cgi?id=4079</a>&gt;)</li></ul></li><li><p><span id="rfc.iref.o.1"></span>Opera (starting with version 10)</p><ul><li>Date computation not available</li></ul></li></ul></div><div id="rfc.section.5.2.p.2"><p>The following browsers are known not to work properly: <a class="self" href="#rfc.section.5.2.p.2">&para;</a></p><ul><li><div id="firefox12"><p><span id="rfc.iref.m.4"></span><span id="rfc.iref.f.3"></span>Firefox 1.*/2.*: (missing extension function - see change request at Mozilla BugZilla <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=193678">193678</a>)</p></div></li><li><div id="opera"><p><span id="rfc.iref.o.2"></span>Opera 9.21: execution fails, potentially to a somewhat complex XPath expression (reported to Opera as bug 245725).</p></div></li><li><p>Opera 9.5 and 9.6: transformation appears to work, but CSS isn't getting applied (reported to Opera as bug 337388 on 2008-06-12).</p></li><li><div id="safari"><p><span id="rfc.iref.s.11"></span>Safari 2.* supports client-side XSLT as of MacOS X 10.4, but misses required extension functions. A problem with stylesheets producing non-ASCII output (such as NBSP characters) has been fixed as of OSX 10.4.4. Both problems have been reported through Apple's bug tracking system, see &lt;<a href="http://drakken.dbc.mtview.ca.us/pipermail/xml2rfc/2005-May/002073.html">http://drakken.dbc.mtview.ca.us/pipermail/xml2rfc/2005-May/002073.html</a>&gt; and &lt;<a href="http://bugs.webkit.org/show_bug.cgi?id=4079">http://bugs.webkit.org/show_bug.cgi?id=4079</a>&gt;.</p></div></li></ul></div></section></section><hr class="noprint"><section id="output.html"><h2 id="rfc.section.6" class="np"><a href="#rfc.section.6">6.</a>&nbsp;<a href="#output.html">Transforming to HTML</a></h2><div id="rfc.section.6.p.1" class="avoidbreakafter"><p>Transformation to HTML can be done inside the browser if it supports XSLT. To enable this, add the following processing instruction to the start of the source file:<a class="self" href="#rfc.section.6.p.1">&para;</a></p></div><div id="rfc.iref.x.32"></div><div id="rfc.figure.u.4"><pre class="text prettyprint">  &lt;?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?&gt;
463</pre></div><div id="rfc.section.6.p.2"><p>(and ensure that <span class="tt">rfc2629.xslt</span> is present).<a class="self" href="#rfc.section.6.p.2">&para;</a></p></div><section id="n-html-compliance"><h3 id="rfc.section.6.1"><a href="#rfc.section.6.1">6.1</a>&nbsp;<a href="#n-html-compliance">HTML compliance</a></h3><div id="rfc.section.6.1.p.1"><p>The transformation result is supposed to conform to HTML5 <a href="#HTML5" id="rfc.xref.HTML5.1"><cite title="HTML5">[HTML5]</cite></a>. This can be checked using the W3C's online validator at &lt;<a href="http://validator.w3.org">http://validator.w3.org</a>&gt;<span id="rfc.iref.h.3"></span>.<a class="self" href="#rfc.section.6.1.p.1">&para;</a></p></div><div id="rfc.section.6.1.p.2"><p>XSLT 1.0 is not capable to directly emit the HTML doctype declaration, thus uses the SYSTEM ID "about:legacy-compat" instead (see <a href="http://www.w3.org/TR/2014/REC-html5-20141028/syntax.html#the-doctype">Section 8.1.1</a> of <a href="#HTML5" id="rfc.xref.HTML5.2"><cite title="HTML5">[HTML5]</cite></a>).<a class="self" href="#rfc.section.6.1.p.2">&para;</a></p></div><div id="rfc.section.6.1.p.3" class="avoidbreakafter"><p>When not run in a browser, the doctype declaration can be adjusted using a small script, such as with:<a class="self" href="#rfc.section.6.1.p.3">&para;</a></p></div><div id="rfc.figure.u.5"><pre class="text">saxon test.xml rfc2629.xslt | awk -f html5doctype.awk
464</pre></div><div id="rfc.section.6.1.p.4"><p>with<a class="self" href="#rfc.section.6.1.p.4">&para;</a></p></div><div id="rfc.figure.u.6"><pre class="text prettyprint">
465#!/usr/bin/awk -f
466
467# waitfordoctype:
468# 0: wait for line starting with DOCTYPE and eat empty lines
469# 1: wait for line starting with &lt;html
470# 2: afterwards
471
472BEGIN {
473  waitfordoctype = 0;
474}
475
476/&lt;!DOCTYPE .*/ {
477  if (waitfordoctype == 0) {
478    waitfordoctype = 1
479  }
480}
481
482/&lt;html.*/ {
483  if (waitfordoctype == 1) {
484    waitfordoctype = 2
485    printf("&lt;!DOCTYPE html&gt;\n")
486  }
487  else {
488    print
489  }
490}
491
492{
493  if (waitfordoctype == 0 &amp;&amp; $0 != "") {
494    print
495  }
496  else if (waitfordoctype == 2) {
497    print
498  }
499}
500
501</pre></div></section><section id="html.link"><h3 id="rfc.section.6.2"><a href="#rfc.section.6.2">6.2</a>&nbsp;<a href="#html.link">Standard HTML LINK elements</a></h3><div id="rfc.section.6.2.p.1"><p>LINK elements exist since HTML 2.0. They can be used to embed content-independant links inside the document. Unfortunately, only few user agents support this element. Firefox users may want to check the <a href="https://addons.mozilla.org/firefox/2933/">Link Widgets</a> extension.<a class="self" href="#rfc.section.6.2.p.1">&para;</a></p></div><div id="rfc.table.u.5"><p>The following LINK elements are produced:</p><table class="tt full tcenter"><thead><tr><th>LINK type</th><th>description</th></tr></thead><tbody><tr><td class="left">alternate<div id="rfc.iref.a.22"></div><div id="rfc.iref.h.4"></div></td><td class="left">for RFCs, a link to the authorative ASCII version on the IETF web site</td></tr><tr><td class="left">appendic<div id="rfc.iref.a.23"></div><div id="rfc.iref.h.5"></div></td><td class="left">pointer to all top-level appendics</td></tr><tr><td class="left">author<div id="rfc.iref.a.24"></div><div id="rfc.iref.h.6"></div></td><td class="left">pointer to "authors" section</td></tr><tr><td class="left">chapter<div id="rfc.iref.c.3"></div><div id="rfc.iref.h.7"></div></td><td class="left">pointer to all top-level sections</td></tr><tr><td class="left">contents<div id="rfc.iref.c.4"></div><div id="rfc.iref.h.8"></div></td><td class="left">pointer to table of contents</td></tr><tr><td class="left">copyright<div id="rfc.iref.c.5"></div><div id="rfc.iref.h.9"></div></td><td class="left">pointer to copyright statement</td></tr><tr><td class="left">index<div id="rfc.iref.i.12"></div><div id="rfc.iref.h.10"></div></td><td class="left">pointer to index</td></tr></tbody></table></div><div id="rfc.figure.u.7"><p>The figure below shows how Mozilla Firefox 1.0 displays the Site Navigation Bar for rfc2396.xml.</p><p><img src="rfc2629xslt-fig1.png" alt="&#xA;(LINK elements displayed in Mozilla Firefox for RFC2396.xml)&#xA;" width="509" height="235"></p></div></section><section id="n-standard-html-metadata"><h3 id="rfc.section.6.3"><a href="#rfc.section.6.3">6.3</a>&nbsp;<a href="#n-standard-html-metadata">Standard HTML metadata</a></h3><div id="rfc.table.u.6"><p>The following standard HTML META elements are produced:</p><table class="tt full tcenter"><thead><tr><th>META name</th><th>description</th></tr></thead><tbody><tr><td class="left">generator<div id="rfc.iref.g.2"></div><div id="rfc.iref.h.11"></div></td><td class="left">from XSLT engine version and stylesheet version</td></tr><tr><td class="left">keywords<div id="rfc.iref.k.1"></div><div id="rfc.iref.h.12"></div></td><td class="left">from keyword elements in front section</td></tr></tbody></table></div></section><section id="rfc2731.properties"><h3 id="rfc.section.6.4"><a href="#rfc.section.6.4">6.4</a>&nbsp;<a href="#rfc2731.properties">Dublin Core (RFC2731) metadata</a></h3><div id="rfc.section.6.4.p.1"><p>Unless turned off using the "rfc-ext support-rfc2731" processing instruction, the transformation will generate metadata according to <a href="#RFC2731" id="rfc.xref.RFC2731.1"><cite title="Encoding Dublin Core Metadata in HTML">[RFC2731]</cite></a> and <a href="#DC-HTML" id="rfc.xref.DC-HTML.1"><cite title="Expressing Dublin Core metadata using HTML/XHTML meta and link elements">[DC-HTML]</cite></a>.<a class="self" href="#rfc.section.6.4.p.1">&para;</a></p></div><div id="rfc.table.u.7"><p>The following DCMI properties are produced:</p><table class="tt full tcenter"><thead><tr><th>META name</th><th>description</th></tr></thead><tbody><tr><td class="left">DC.Creator<div id="rfc.iref.c.6"></div><div id="rfc.iref.d.3"></div></td><td class="left">from author information in front section</td></tr><tr><td class="left">DC.Date.Issued<div id="rfc.iref.d.4"></div><div id="rfc.iref.d.5"></div></td><td class="left">from date information in front section</td></tr><tr><td class="left">DC.Description.Abstract<div id="rfc.iref.d.6"></div><div id="rfc.iref.d.7"></div></td><td class="left">from abstract</td></tr><tr><td class="left">DC.Identifier<div id="rfc.iref.i.13"></div><div id="rfc.iref.d.8"></div></td><td class="left">document URN <a href="#RFC2648" id="rfc.xref.RFC2648.1"><cite title="A URN Namespace for IETF Documents">[RFC2648]</cite></a> from "docName" attribute</td></tr><tr><td class="left">DC.isPartOf<div id="rfc.iref.i.14"></div><div id="rfc.iref.d.9"></div></td><td class="left">RFC ISSN (for RFCs)</td></tr><tr><td class="left">DC.Relation.Replaces<div id="rfc.iref.r.22"></div><div id="rfc.iref.d.10"></div></td><td class="left">from "obsoletes" attribute</td></tr></tbody></table></div></section></section><hr class="noprint"><section id="output.xhtml"><h2 id="rfc.section.7" class="np"><a href="#rfc.section.7">7.</a>&nbsp;<a href="#output.xhtml">Transforming to XHTML</a></h2><div id="rfc.section.7.p.1"><p>Transforming to XHTML requires slightly different XSLT output options and is implemented by the derived transformation script <span class="tt">rfc2629toXHTML.xslt</span>.<a class="self" href="#rfc.section.7.p.1">&para;</a></p></div><div id="rfc.section.7.p.2"><ul class="empty"><li><b>Note:</b> Microsoft Internet Explorer does <em>not</em> support XHTML. Therefore it usually makes more sense to generate plain old HTML.</li></ul></div></section><hr class="noprint"><section id="output.chm"><h2 id="rfc.section.8" class="np"><a href="#rfc.section.8">8.</a>&nbsp;<a href="#output.chm">Transforming to CHM (Microsoft Compiled Help)</a></h2><div id="rfc.section.8.p.1"><p><span id="rfc.iref.c.7"></span> <span id="rfc.iref.m.5"></span> To generate a CHM file using Microsoft's HTML Help Compiler (hhc), three files are required in addition to the HTML file. <a class="self" href="#rfc.section.8.p.1">&para;</a></p><ol><li>hhc - table of contents file (HTML)</li><li>hhk - index file (HTML)</li><li>hhp - project file (plain text)</li></ol></div><div id="rfc.section.8.p.2"><p>The three files are generated with three specific transformations, each requiring the additional XSLT parameter "basename" to specify the filename prefix.<a class="self" href="#rfc.section.8.p.2">&para;</a></p></div><div id="rfc.figure.u.8"><p>Example:</p><pre class="text">saxon rfc2616.xml rfc2629toHhp.xslt basename=rfc2616  &gt; rfc2616.hhp
502saxon rfc2616.xml rfc2629toHhc.xslt basename=rfc2616  &gt; rfc2616.hhc
503saxon rfc2616.xml rfc2629toHhk.xslt basename=rfc2616  &gt; rfc2616.hhk
504hhc rfc2616.hhp
505</pre></div></section><hr class="noprint"><section id="output.pdf"><h2 id="rfc.section.9" class="np"><a href="#rfc.section.9">9.</a>&nbsp;<a href="#output.pdf">Transforming to PDF</a></h2><section id="output.pdf.fop"><h3 id="rfc.section.9.1"><a href="#rfc.section.9.1">9.1</a>&nbsp;<a href="#output.pdf.fop">Via XSL-FO</a></h3><div id="rfc.section.9.1.p.1"><p>Transformation to XSL-FO <a href="#XSL-FO" id="rfc.xref.XSL-FO.1"><cite title="Extensible Stylesheet Language (XSL) Version 1.1">[XSL-FO]</cite></a> format is available through <span class="tt">rfc2629toFO.xslt</span> (which includes <span class="tt">rfc2629.xslt</span>, so keep both in the same folder).<a class="self" href="#rfc.section.9.1.p.1">&para;</a></p></div><div id="rfc.section.9.1.p.2"><p>Compared to HTML user agents, XSL-FO engines unfortunately either come as open source (for instance, <span id="rfc.iref.a.25"></span>Apache FOP) or feature-complete (for instance, <span id="rfc.iref.a.26"></span> AntennaHouse XSL Formatter), but not both at the same time.<a class="self" href="#rfc.section.9.1.p.2">&para;</a></p></div><div id="rfc.section.9.1.p.3"><p>As Apache FOP needs special workarounds (index generation), and some popular extensions aren't standardized yet, the translation produces a generic output (hopefully) conforming to <a href="#XSL-FO" id="rfc.xref.XSL-FO.2"><cite title="Extensible Stylesheet Language (XSL) Version 1.1">[XSL-FO]</cite></a>. Specific backends (<span class="tt">xsl11toFop.xslt</span>, <span class="tt">xsl11toXep.xslt</span>, <span class="tt">xsl11toAn.xslt</span>) then provide post-processing for the individual processors.<a class="self" href="#rfc.section.9.1.p.3">&para;</a></p></div><aside><div id="rfc.section.9.1.p.4"><p><b>Note:</b> the output is currently targeted at Apache FOP 1.1.<a class="self" href="#rfc.section.9.1.p.4">&para;</a></p></div></aside><section id="n-example--producing-output-for-apache-fop"><h4 id="rfc.section.9.1.1"><a href="#rfc.section.9.1.1">9.1.1</a>&nbsp;<a href="#n-example--producing-output-for-apache-fop">Example: producing output for Apache FOP</a></h4><div id="rfc.figure.u.9"><p>Example:</p><pre class="text">saxon rfc2616.xml rfc2629toFo.xslt &gt; tmp.fo
506saxon tmp.fo xsl11toFop.xslt &gt; rfc2629.fo
507</pre></div></section></section><section id="output.pdf.html"><h3 id="rfc.section.9.2"><a href="#rfc.section.9.2">9.2</a>&nbsp;<a href="#output.pdf.html">Via HTML</a></h3><div id="rfc.section.9.2.p.1"><p>PDF output can also be produced directly from (X)HTML. One simple approach is to rely on the browser's printing function, and to use a printer driver that produces PDF. Depending on the brower's CSS capabilities, the output will behave properly with respect to table breaks etc.<a class="self" href="#rfc.section.9.2.p.1">&para;</a></p></div><div id="rfc.section.9.2.p.2"><p>An alternative is PrinceXML (see &lt;<a href="http://www.princexml.com/">http://www.princexml.com/</a>&gt;), which can produce PDF directly from (X)HTML input, based on the CSS printing information.<a class="self" href="#rfc.section.9.2.p.2">&para;</a></p></div><div id="rfc.figure.u.10"><p>For instance, PDF output with text justification turned on can be produced with:</p><pre class="text">saxon input.xml rfc2629.xslt &gt; output.html
508prince output.html output.pdf</pre></div></section></section><hr class="noprint"><section id="output.epub"><h2 id="rfc.section.10" class="np"><a href="#rfc.section.10">10.</a>&nbsp;<a href="#output.epub">Transforming to ePub</a></h2><div id="rfc.section.10.p.1"><p>Experimental transformation to ePub format is available through a set of stylesheets, and the Unix Shell script <span class="tt">mkepub.sh</span> (which requires that "zip" and either "saxon" or "xsltproc" are installed).<a class="self" href="#rfc.section.10.p.1">&para;</a></p></div><div id="rfc.figure.u.11"><p>For instance, an epub version of rfc2616.xml can be generated like this:</p><pre class="text">mkepub.sh rfc2616.xml
509</pre></div></section><hr class="noprint"><section id="extensions"><h2 id="rfc.section.11" class="np"><a href="#rfc.section.11">11.</a>&nbsp;<a href="#extensions">Generic Extensions</a></h2><div id="rfc.section.11.p.1"><p>This section documents extensions implemented in <span class="tt">rfc2629.xslt</span>, using the extension namespace "http://purl.org/net/xml2rfc/ext".<a class="self" href="#rfc.section.11.p.1">&para;</a></p></div><section id="ext.element.abnf-char-sequence"><h3 id="rfc.section.11.1"><a href="#rfc.section.11.1">11.1</a>&nbsp;<a href="#ext.element.abnf-char-sequence">&lt;abnf-char-sequence&gt; element</a></h3><div id="rfc.section.11.1.p.1"><p>Converts the contained quoted string into a hex-encoded character sequence, for use in case-sensitive ABNF productions.<a class="self" href="#rfc.section.11.1.p.1">&para;</a></p></div><div id="rfc.section.11.1.p.2"><p>For instance, "&lt;x:abnf-char-sequence&gt;"HTTP"&lt;/x:abnf-char-sequence&gt;" gets converted to "%x48.54.54.50".<a class="self" href="#rfc.section.11.1.p.2">&para;</a></p></div></section><section id="ext.element.anchor-alias"><h3 id="rfc.section.11.2"><a href="#rfc.section.11.2">11.2</a>&nbsp;<a href="#ext.element.anchor-alias">&lt;anchor-alias&gt; element</a></h3><div id="rfc.section.11.2.p.1"><p>Using its "value" attribute, this element allows the definition of an internal link target alias for the enclosing element. This alias can then be used with the &lt;<a href="#ext.element.ref" class="smpl">ref</a>&gt; element for intra-document references.<a class="self" href="#rfc.section.11.2.p.1">&para;</a></p></div><div id="rfc.section.11.2.p.2"><p>Note that the anchor alias is not subject to the naming constraints that apply to anchor elements (which are <a href="http://www.w3.org/TR/REC-xml/#NT-Name">XML names</a>).<a class="self" href="#rfc.section.11.2.p.2">&para;</a></p></div></section><section id="ext.element.bcp14"><h3 id="rfc.section.11.3"><a href="#rfc.section.11.3">11.3</a>&nbsp;<a href="#ext.element.bcp14">&lt;bcp14&gt; element</a></h3><div id="rfc.section.11.3.p.1"><p>This element marks the content as being one of the normative keywords defined in <a href="#RFC2119" id="rfc.xref.RFC2119.1"><cite title="Key words for use in RFCs to Indicate Requirement Levels">[RFC2119]</cite></a>.<a class="self" href="#rfc.section.11.3.p.1">&para;</a></p></div><div id="rfc.figure.u.12"><p>The DOCTYPE definition below allows using these keywords using XML entity expansion: such as in "...server &amp;MUST; accept...".</p><pre class="text prettyprint">&lt;!DOCTYPE rfc [
510 &lt;!ENTITY MAY "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
511   &gt;MAY&lt;/bcp14&gt;"&gt;
512 &lt;!ENTITY MUST "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
513   &gt;MUST&lt;/bcp14&gt;"&gt;
514 &lt;!ENTITY MUST-NOT "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
515   &gt;MUST NOT&lt;/bcp14&gt;"&gt;
516 &lt;!ENTITY OPTIONAL "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
517   &gt;OPTIONAL&lt;/bcp14&gt;"&gt;
518 &lt;!ENTITY RECOMMENDED "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
519   &gt;RECOMMENDED&lt;/bcp14&gt;"&gt;
520 &lt;!ENTITY REQUIRED "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
521   &gt;REQUIRED&lt;/bcp14&gt;"&gt;
522 &lt;!ENTITY SHALL "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
523   &gt;SHALL&lt;/bcp14&gt;"&gt;
524 &lt;!ENTITY SHALL-NOT "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
525   &gt;SHALL NOT&lt;/bcp14&gt;"&gt;
526 &lt;!ENTITY SHOULD "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
527   &gt;SHOULD&lt;/bcp14&gt;"&gt;
528 &lt;!ENTITY SHOULD-NOT "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
529   &gt;SHOULD NOT&lt;/bcp14&gt;"&gt;]&gt;</pre></div></section><section id="ext.element.bb"><h3 id="rfc.section.11.4"><a href="#rfc.section.11.4">11.4</a>&nbsp;<a href="#ext.element.bb">&lt;bb&gt; element</a></h3><div id="rfc.section.11.4.p.1"><p>Marking up a string as &lt;bb&gt; indicates that it represents the bottom line of a box drawing, replacing the "+" and "-" characters accordingly.<a class="self" href="#rfc.section.11.4.p.1">&para;</a></p></div></section><section id="ext.element.bc"><h3 id="rfc.section.11.5"><a href="#rfc.section.11.5">11.5</a>&nbsp;<a href="#ext.element.bc">&lt;bc&gt; element</a></h3><div id="rfc.section.11.5.p.1"><p>Marking up a string as &lt;bc&gt; indicates that it represents a center line of a box drawing, replacing the "|" character accordingly.<a class="self" href="#rfc.section.11.5.p.1">&para;</a></p></div></section><section id="ext.element.blockquote"><h3 id="rfc.section.11.6"><a href="#rfc.section.11.6">11.6</a>&nbsp;<a href="#ext.element.blockquote">&lt;blockquote&gt; element</a></h3><div id="rfc.section.11.6.p.1"><p>This element is like the &lt;blockquote&gt; element defined in <a href="http://www.w3.org/TR/2014/REC-html5-20141028/grouping-content.html#the-blockquote-element">Section 4.4.4</a> of <a href="#HTML5" id="rfc.xref.HTML5.3"><cite title="HTML5">[HTML5]</cite></a> (note this is a block-level element!). It should contain one or more &lt;t&gt; child elements.<a class="self" href="#rfc.section.11.6.p.1">&para;</a></p></div></section><section id="ext.element.bt"><h3 id="rfc.section.11.7"><a href="#rfc.section.11.7">11.7</a>&nbsp;<a href="#ext.element.bt">&lt;bt&gt; element</a></h3><div id="rfc.section.11.7.p.1"><p>Marking up a string as &lt;bt&gt; indicates that it represents the top line of a box drawing, replacing the "+" and "-" characters accordingly.<a class="self" href="#rfc.section.11.7.p.1">&para;</a></p></div></section><section id="ext.element.dfn"><h3 id="rfc.section.11.8"><a href="#rfc.section.11.8">11.8</a>&nbsp;<a href="#ext.element.dfn">&lt;dfn&gt; element</a></h3><div id="rfc.section.11.8.p.1"><p>This element is like the &lt;dfn&gt; element defined in <a href="http://www.w3.org/TR/2014/REC-html5-20141028/text-level-semantics.html#the-dfn-element">Section 4.5.8</a> of <a href="#HTML5" id="rfc.xref.HTML5.4"><cite title="HTML5">[HTML5]</cite></a>.<a class="self" href="#rfc.section.11.8.p.1">&para;</a></p></div></section><section id="ext.element.feedback"><h3 id="rfc.section.11.9"><a href="#rfc.section.11.9">11.9</a>&nbsp;<a href="#ext.element.feedback">&lt;feedback&gt; element</a></h3><div id="rfc.section.11.9.p.1" class="avoidbreakafter"><p>This elements allows declaring a feedback link for document reviewers. The template string takes the form of a URI template, such as:<a class="self" href="#rfc.section.11.9.p.1">&para;</a></p></div><div id="rfc.figure.u.13"><pre class="text prettyprint">&lt;x:feedback template="mailto:ietf-http-wg@w3.org?subject={docname},%20%22{section}%22&amp;amp;body=&amp;lt;{ref}&amp;gt;:"/&gt;
530</pre></div><div id="rfc.section.11.9.p.2"><p>where "docname" is substituted by the document name, "section" is substituted by section title (number and name), and "ref" is substituted by a URI pointing to the section being referenced.<a class="self" href="#rfc.section.11.9.p.2">&para;</a></p></div></section><section id="ext.element.h"><h3 id="rfc.section.11.10"><a href="#rfc.section.11.10">11.10</a>&nbsp;<a href="#ext.element.h">&lt;h&gt; element</a></h3><div id="rfc.section.11.10.p.1"><p>This element is like the "<a href="http://www.w3.org/TR/2006/WD-xhtml2-20060726/mod-structural.html#edef_structural_h">h</a>" element in <a href="#XHTML2" id="rfc.xref.XHTML2.1"><cite title="XHTML(tm) 2.0">[XHTML2]</cite></a>.<a class="self" href="#rfc.section.11.10.p.1">&para;</a></p></div></section><section id="ext.element.highlight"><h3 id="rfc.section.11.11"><a href="#rfc.section.11.11">11.11</a>&nbsp;<a href="#ext.element.highlight">&lt;highlight&gt; element</a></h3><div id="rfc.section.11.11.p.1"><p>Used to highlight text passages, currently only allowed in &lt;artwork&gt;.<a class="self" href="#rfc.section.11.11.p.1">&para;</a></p></div><div id="rfc.section.11.11.p.2"><p><b>Note:</b> this is stripped when generating input for xml2rfc, so please use with care.<a class="self" href="#rfc.section.11.11.p.2">&para;</a></p></div></section><section id="ext.element.length-of"><h3 id="rfc.section.11.12"><a href="#rfc.section.11.12">11.12</a>&nbsp;<a href="#ext.element.length-of">&lt;length-of&gt; element</a></h3><div id="rfc.section.11.12.p.1"><p>This element can be used to insert the length of another formatted section (in decimal).<a class="self" href="#rfc.section.11.12.p.1">&para;</a></p></div><div id="rfc.figure.u.14"><p>Example: computing the Content-Length header value</p><pre class="text prettyprint">&lt;artwork&gt;
531...
532Content-Length: &lt;x:length-of target="req"/&gt;
533 
534&lt;x:span anchor="req"&gt;123456789
535&lt;x:span&gt;&lt;artwork/&gt;
536</pre></div><div id="rfc.section.11.12.p.2"><p>The lenght computation counts line ends as two characters (CRLF).<a class="self" href="#rfc.section.11.12.p.2">&para;</a></p></div><div id="rfc.section.11.12.p.3"><p>Note that indentation characters in artwork <em>will</em> be counted. The "indented" attribute allows to specify the amount of indentation to be substracted from the computed length.<a class="self" href="#rfc.section.11.12.p.3">&para;</a></p></div></section><section id="ext.element.link"><h3 id="rfc.section.11.13"><a href="#rfc.section.11.13">11.13</a>&nbsp;<a href="#ext.element.link">&lt;link&gt; element</a></h3><div id="rfc.section.11.13.p.1"><p>This element can be added as a top-level child element below &lt;rfc&gt; to indicate additional link information. It's currently used only when generating HTML output, in which case an HTML <a href="http://www.w3.org/TR/html4/struct/links.html#edef-LINK">&lt;link&gt;</a> element with identical attributes gets generated.<a class="self" href="#rfc.section.11.13.p.1">&para;</a></p></div><div id="rfc.figure.u.15"><p>Example: generating HTML link element</p><pre class="text prettyprint">&lt;x:link xmlns:x="http://purl.org/net/xml2rfc/ext"
537    rel="Bookmark"
538    title="IETF WEBDAV Working Group"
539    href="http://ftp.ics.uci.edu/pub/ietf/webdav/"/&gt;</pre></div><div id="rfc.section.11.13.p.2"><p>If the attribute "basename" is present, it is used to compute the target href based on the output format being generated (this is handy for "next"/"prev" links in a series of documents. In this case, the href attribute is not required.<a class="self" href="#rfc.section.11.13.p.2">&para;</a></p></div><div id="rfc.figure.u.16"><p>For instance:</p><pre class="text prettyprint">&lt;x:link xmlns:x="http://purl.org/net/xml2rfc/ext"
540    rel="next"
541    title="Part2"
542    basename="draft-foobar-protocol-p2-latest"/&gt;</pre></div></section><section id="ext.element.lt"><h3 id="rfc.section.11.14"><a href="#rfc.section.11.14">11.14</a>&nbsp;<a href="#ext.element.lt">&lt;lt&gt; element</a></h3><div id="rfc.section.11.14.p.1"><p>Used for grouping multiple &lt;t&gt; elements into a single list item.<a class="self" href="#rfc.section.11.14.p.1">&para;</a></p></div></section><section id="ext.element.note"><h3 id="rfc.section.11.15"><a href="#rfc.section.11.15">11.15</a>&nbsp;<a href="#ext.element.note">&lt;note&gt; element</a></h3><div id="rfc.section.11.15.p.1"><p>Can be used to add a note, usually indented by a few characters. It should contain one or more &lt;t&gt; child elements.<a class="self" href="#rfc.section.11.15.p.1">&para;</a></p></div></section><section id="ext.element.parse-xml"><h3 id="rfc.section.11.16"><a href="#rfc.section.11.16">11.16</a>&nbsp;<a href="#ext.element.parse-xml">&lt;parse-xml&gt; element</a></h3><div id="rfc.section.11.16.p.1"><p>This element instructs the processor to parse the contents as XML and to warn when there's a problem (requires either MSXML or Saxon8 or newer).<a class="self" href="#rfc.section.11.16.p.1">&para;</a></p></div></section><section id="ext.element.prose"><h3 id="rfc.section.11.17"><a href="#rfc.section.11.17">11.17</a>&nbsp;<a href="#ext.element.prose">&lt;prose&gt; element</a></h3><div id="rfc.section.11.17.p.1"><p>This element can be used inside &lt;reference&gt; to add plain text (before the date, when present).<a class="self" href="#rfc.section.11.17.p.1">&para;</a></p></div><div id="rfc.section.11.17.p.2"><p><em>See also &lt;refcontent&gt; (<a href="#v3.refcontent" title="refcontent Element">Section&nbsp;12.14</a>).</em> <a class="self" href="#rfc.section.11.17.p.2">&para;</a></p></div></section><section id="ext.element.q"><h3 id="rfc.section.11.18"><a href="#rfc.section.11.18">11.18</a>&nbsp;<a href="#ext.element.q">&lt;q&gt; element</a></h3><div id="rfc.section.11.18.p.1"><p>This element is like the &lt;q&gt; element defined in <a href="http://www.w3.org/TR/2014/REC-html5-20141028/text-level-semantics.html#the-q-element">Section 4.5.7</a> of <a href="#HTML5" id="rfc.xref.HTML5.5"><cite title="HTML5">[HTML5]</cite></a>.<a class="self" href="#rfc.section.11.18.p.1">&para;</a></p></div></section><section id="ext.element.ref"><h3 id="rfc.section.11.19"><a href="#rfc.section.11.19">11.19</a>&nbsp;<a href="#ext.element.ref">&lt;ref&gt; element</a></h3><div id="rfc.section.11.19.p.1"><p>This element is a simplified variant of the &lt;xref&gt; element, in that no "target" attribute needs to be specified, instead the text contents acts as identifier. That in itself wouldn't be terribly useful, but together with the &lt;<a href="#ext.element.anchor-alias" class="smpl">anchor-alias</a>&gt;, it allows referring to other parts of the document with minimal additional markup.<a class="self" href="#rfc.section.11.19.p.1">&para;</a></p></div><div id="rfc.section.11.19.p.2"><p>For instance, given an alias definition such as<a class="self" href="#rfc.section.11.19.p.2">&para;</a></p></div><div id="rfc.figure.u.17"><pre class="text prettyprint">&lt;section title="Test" anchor="test"&gt;
543  &lt;x:anchor-alias value="alias1"/&gt;
544  &lt;x:anchor-alias value="alias 2"/&gt;
545  ...
546&lt;/section&gt;</pre></div><div id="rfc.section.11.19.p.3"><p>the following simple references<a class="self" href="#rfc.section.11.19.p.3">&para;</a></p></div><div id="rfc.figure.u.18"><pre class="text prettyprint">&lt;x:ref&gt;test&lt;/x:ref&gt;
547&lt;x:ref&gt;alias1&lt;/x:ref&gt;
548&lt;x:ref&gt;alias 2&lt;/x:ref&gt;</pre></div><div id="rfc.section.11.19.p.4" class="avoidbreakafter"><p>are equivalent to...:<a class="self" href="#rfc.section.11.19.p.4">&para;</a></p></div><div id="rfc.figure.u.19"><pre class="text prettyprint">&lt;xref target="test"&gt;test&lt;/xref&gt;
549&lt;xref target="test"&gt;alias1&lt;/xref&gt;
550&lt;xref target="test"&gt;alias 2&lt;/xref&gt;</pre></div></section><section id="ext.element.source"><h3 id="rfc.section.11.20"><a href="#rfc.section.11.20">11.20</a>&nbsp;<a href="#ext.element.source">&lt;source&gt; element</a></h3><div id="rfc.section.11.20.p.1"><p>Can be used to enhance a &lt;reference&gt; with information about the location for the XML source. This can be used by the &lt;xref&gt; processing code to automatically extract the target section number.<a class="self" href="#rfc.section.11.20.p.1">&para;</a></p></div><div id="rfc.figure.u.20"><p>For example:</p><pre class="text">...
551&lt;xref target="RFC2616" x:fmt="of" x:rel="#PUT" /&gt;
552...
553
554&lt;reference target="RFC2616"/&gt;
555  ...
556  &lt;x:source href="rfc2616.xml"/&gt;
557  ...
558    </pre></div></section><section id="ext.element.sup"><h3 id="rfc.section.11.21"><a href="#rfc.section.11.21">11.21</a>&nbsp;<a href="#ext.element.sup">&lt;sup&gt; element</a></h3><div id="rfc.section.11.21.p.1"><p>This element is like the &lt;sup&gt; element in <a href="http://www.w3.org/TR/2014/REC-html5-20141028/text-level-semantics.html#the-sub-and-sup-elements">Section 4.5.16</a> of <a href="#HTML5" id="rfc.xref.HTML5.6"><cite title="HTML5">[HTML5]</cite></a>.<a class="self" href="#rfc.section.11.21.p.1">&para;</a></p></div><div id="rfc.section.11.21.p.2"><p>Note: the down conversion to RFC2629 format replaces "x<sup>y</sup>" by "x^y".<a class="self" href="#rfc.section.11.21.p.2">&para;</a></p></div><div id="rfc.section.11.21.p.3"><p><em>See also &lt;sup&gt; (<a href="#v3.sup" title="sup Element">Section&nbsp;12.20</a>).</em> <a class="self" href="#rfc.section.11.21.p.3">&para;</a></p></div></section><section id="ext-rfc2629.artwork"><h3 id="rfc.section.11.22"><a href="#rfc.section.11.22">11.22</a>&nbsp;<a href="#ext-rfc2629.artwork">Extensions to Xml2rfc &lt;artwork&gt; element</a></h3><div id="rfc.section.11.22.p.1"><p>Sometimes, artwork occurs inside lists. To get it indent properly in xml2rfc's text output, it needs to be indented in the source. This is sub-optimal, as this whitespace will also appear in the HTML output, where it's already indented due to HTML's semantics. As a workaround, a "x:indent-with" attribute can be specified, containing a string that will be prepended to each line when <span class="tt">clean-for-DTD.xslt</span> is run (see <a href="#clean-for-dtd" title="Down-converting to RFC2629bis DTD">Section&nbsp;13.4</a>).<a class="self" href="#rfc.section.11.22.p.1">&para;</a></p></div><div id="rfc.section.11.22.p.2"><p>Furthermore, documents can contain code that might need to be marked as "code component" (&lt;<a href="http://www.ietf.org/iesg/statement/copyright.html">http://www.ietf.org/iesg/statement/copyright.html</a>&gt;). This can be done using "x:is-code-component".<a class="self" href="#rfc.section.11.22.p.2">&para;</a></p></div><div id="rfc.section.11.22.p.3"><p>Finally, when allowing pretty-printing of code (see "html-pretty-print" in <a href="#extension.pis" title="Extension PIs">Section&nbsp;3.3</a>, the "x:lang" attribute can used to explicitly opt into pretty-printing (the value is currently unused and ought to be set to an empty string).<a class="self" href="#rfc.section.11.22.p.3">&para;</a></p></div></section><section id="ext-rfc2629.iref"><h3 id="rfc.section.11.23"><a href="#rfc.section.11.23">11.23</a>&nbsp;<a href="#ext-rfc2629.iref">Extensions to Xml2rfc &lt;iref&gt; element</a></h3><div id="rfc.section.11.23.p.1"><p>The extension attribute below is allowed on the standard &lt;iref&gt; element: <a class="self" href="#rfc.section.11.23.p.1">&para;</a></p><ul><li>x:for-anchor specifies that the &lt;iref&gt; will also be automatically inserted whenever the specified anchor is cross-referenced -- this may save entering lots of &lt;iref&gt; instances. As a special case, a value of "" (empty string) refers to the anchor attribute of the closest ancestor.</li></ul></div></section><section id="ext-rfc2629.list"><h3 id="rfc.section.11.24"><a href="#rfc.section.11.24">11.24</a>&nbsp;<a href="#ext-rfc2629.list">Extensions to Xml2rfc &lt;list&gt; element</a></h3><div id="rfc.section.11.24.p.1"><p>The extension attribute below is allowed on the standard &lt;list&gt; element: <a class="self" href="#rfc.section.11.24.p.1">&para;</a></p><ul><li>x:indent specifies the amount of indentation for list items in hanging lists. This can be useful when the output format, such as XSL-FO, does not support automatical formatting. The value takes an XSL-FO width, such as "5em". The default is <em>length of longest label in characters</em> times <em>0.8em</em>.</li></ul></div><div id="rfc.section.11.24.p.2"><p>Also, the &lt;list&gt; element can take &lt;x:<a href="#ext.element.lt" class="smpl">lt</a>&gt; child elements instead of &lt;t&gt;, allowing to insert multiple paragraphs into a single list item.<a class="self" href="#rfc.section.11.24.p.2">&para;</a></p></div></section><section id="ext-rfc2629.rfc"><h3 id="rfc.section.11.25"><a href="#rfc.section.11.25">11.25</a>&nbsp;<a href="#ext-rfc2629.rfc">Extensions to Xml2rfc &lt;rfc&gt; element</a></h3><div id="rfc.section.11.25.p.1"><p>The extension attributes below are allowed on the standard &lt;rfc&gt; element: <a class="self" href="#rfc.section.11.25.p.1">&para;</a></p><ul><li>grddl:transformation can be used to reference a GRDDL transform.</li><li>x:maturity-level can be used to specify the IETF Standards Track Maturity Level of "proposed", "draft" or "internet" (see <a href="https://tools.ietf.org/html/rfc2026#section-4.1">Section 4.1</a> of <a href="#RFC2026" id="rfc.xref.RFC2026.1"><cite title="The Internet Standards Process -- Revision 3">[RFC2026]</cite></a>).</li></ul></div></section><section id="ext-rfc2629.section"><h3 id="rfc.section.11.26"><a href="#rfc.section.11.26">11.26</a>&nbsp;<a href="#ext-rfc2629.section">Extensions to Xml2rfc &lt;section&gt; element</a></h3><div id="rfc.section.11.26.p.1"><p>The extension attribute below is allowed on the standard &lt;list&gt; element: <a class="self" href="#rfc.section.11.26.p.1">&para;</a></p><ul><li>x:fixed-section-number can be used to specify a fixed section number. This can be useful when formatting historic documents that used a different numbering style.</li></ul></div></section><section id="ext-rfc2629.xref"><h3 id="rfc.section.11.27"><a href="#rfc.section.11.27">11.27</a>&nbsp;<a href="#ext-rfc2629.xref">Extensions to Xml2rfc &lt;xref&gt; element</a></h3><div id="rfc.section.11.27.p.1"><p>Three extension attributes are allowed on the standard &lt;xref&gt; element: <a class="self" href="#rfc.section.11.27.p.1">&para;</a></p><ol><li>x:sec can be specified to point to a specific section of the referenced document,</li><li>x:rel may specify a relative reference to use when linking into the referenced document (if linking by section number is not available),</li><li>x:fmt defines the text format to be used.</li></ol></div><div id="rfc.section.11.27.p.2"><p>The following formats are defined for the x:fmt attribute: <a class="self" href="#rfc.section.11.27.p.2">&para;</a></p><dl><dt>, (Comma)</dt><dd>[<em>reference</em>], Section <em>sec</em> </dd><dt>()</dt><dd>[<em>reference</em>] (Section <em>sec</em>)</dd><dt>of</dt><dd>Section <em>sec</em> of [<em>reference</em>]</dd><dt>number</dt><dd><em>sec</em> </dd><dt>none</dt><dd>No output (can be used to have xrefs to references without having them rendered as such)</dd><dt>sec</dt><dd>Section <em>sec</em> </dd></dl></div><div id="rfc.section.11.27.p.3"><p>These extensions are currently only supported for &lt;xref&gt; elements without child nodes.<a class="self" href="#rfc.section.11.27.p.3">&para;</a></p></div><div id="rfc.section.11.27.p.4"><p>If the processor knows how to reference the target section, it will generate a link directly to the target section, such as in <a href="#RFC2119" id="rfc.xref.RFC2119.2"><cite title="Key words for use in RFCs to Indicate Requirement Levels">[RFC2119]</cite></a>, <a href="https://tools.ietf.org/html/rfc2119#section-5">Section 5</a>.<a class="self" href="#rfc.section.11.27.p.4">&para;</a></p></div></section></section><hr class="noprint"><section id="v3"><h2 id="rfc.section.12" class="np"><a href="#rfc.section.12">12.</a>&nbsp;<a href="#v3">Experimental Support for XML2RFCv3 Vocabulary</a></h2><div id="rfc.section.12.p.1"><p><span class="tt">rfc2629.xslt</span> experimentally supports some elements from the "V3" vocabulary, defined in <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.1"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>. <em>This support is experimental, as the "v3" vocabulary is still being developed.</em> <a class="self" href="#rfc.section.12.p.1">&para;</a></p></div><section id="v3.aside"><h3 id="rfc.section.12.1"><a href="#rfc.section.12.1">12.1</a>&nbsp;<a href="#v3.aside">aside Element</a></h3><div id="rfc.section.12.1.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.6">Section 2.6</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.2"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.1.p.1">&para;</a></p></div></section><section id="v3.bcp14"><h3 id="rfc.section.12.2"><a href="#rfc.section.12.2">12.2</a>&nbsp;<a href="#v3.bcp14">bcp14 Element</a></h3><div id="rfc.section.12.2.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.9">Section 2.9</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.3"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.2.p.1">&para;</a></p></div></section><section id="v3.blockquote"><h3 id="rfc.section.12.3"><a href="#rfc.section.12.3">12.3</a>&nbsp;<a href="#v3.blockquote">blockquote Element</a></h3><div id="rfc.section.12.3.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.10">Section 2.10</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.4"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.3.p.1">&para;</a></p></div></section><section id="v3.boilerplate"><h3 id="rfc.section.12.4"><a href="#rfc.section.12.4">12.4</a>&nbsp;<a href="#v3.boilerplate">boilerplate Element</a></h3><div id="rfc.section.12.4.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.10">Section 2.10</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.5"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.4.p.1">&para;</a></p></div></section><section id="v3.displayreference"><h3 id="rfc.section.12.5"><a href="#rfc.section.12.5">12.5</a>&nbsp;<a href="#v3.displayreference">displayreference Element</a></h3><div id="rfc.section.12.5.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.19">Section 2.19</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.6"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.5.p.1">&para;</a></p></div></section><section id="v3.dd"><h3 id="rfc.section.12.6"><a href="#rfc.section.12.6">12.6</a>&nbsp;<a href="#v3.dd">dd Element</a></h3><div id="rfc.section.12.6.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.18">Section 2.18</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.7"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.6.p.1">&para;</a></p></div></section><section id="v3.dl"><h3 id="rfc.section.12.7"><a href="#rfc.section.12.7">12.7</a>&nbsp;<a href="#v3.dl">dl Element</a></h3><div id="rfc.section.12.7.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.20">Section 2.20</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.8"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.7.p.1">&para;</a></p></div></section><section id="v3.dt"><h3 id="rfc.section.12.8"><a href="#rfc.section.12.8">12.8</a>&nbsp;<a href="#v3.dt">dt Element</a></h3><div id="rfc.section.12.8.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.21">Section 2.21</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.9"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.8.p.1">&para;</a></p></div></section><section id="v3.em"><h3 id="rfc.section.12.9"><a href="#rfc.section.12.9">12.9</a>&nbsp;<a href="#v3.em">em Element</a></h3><div id="rfc.section.12.9.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.22">Section 2.22</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.10"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.9.p.1">&para;</a></p></div></section><section id="v3.li"><h3 id="rfc.section.12.10"><a href="#rfc.section.12.10">12.10</a>&nbsp;<a href="#v3.li">li Element</a></h3><div id="rfc.section.12.10.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.29">Section 2.29</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.11"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.10.p.1">&para;</a></p></div></section><section id="v3.name"><h3 id="rfc.section.12.11"><a href="#rfc.section.12.11">12.11</a>&nbsp;<a href="#v3.name">name Element</a></h3><div id="rfc.section.12.11.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.32">Section 2.32</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.12"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>. <em>Currently only supported inside &lt;references&gt; and &lt;section&gt;</em>.<a class="self" href="#rfc.section.12.11.p.1">&para;</a></p></div></section><section id="v3.ol"><h3 id="rfc.section.12.12"><a href="#rfc.section.12.12">12.12</a>&nbsp;<a href="#v3.ol">ol Element</a></h3><div id="rfc.section.12.12.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.34">Section 2.34</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.13"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.12.p.1">&para;</a></p></div></section><section id="v3.postalLine"><h3 id="rfc.section.12.13"><a href="#rfc.section.12.13">12.13</a>&nbsp;<a href="#v3.postalLine">postalLine Element</a></h3><div id="rfc.section.12.13.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.38">Section 2.38</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.14"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.13.p.1">&para;</a></p></div></section><section id="v3.refcontent"><h3 id="rfc.section.12.14"><a href="#rfc.section.12.14">12.14</a>&nbsp;<a href="#v3.refcontent">refcontent Element</a></h3><div id="rfc.section.12.14.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.39">Section 2.39</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.15"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.14.p.1">&para;</a></p></div></section><section id="v3.sourcecode"><h3 id="rfc.section.12.15"><a href="#rfc.section.12.15">12.15</a>&nbsp;<a href="#v3.sourcecode">sourcecode Element</a></h3><div id="rfc.section.12.15.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.48">Section 2.48</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.16"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.15.p.1">&para;</a></p></div></section><section id="v3.reference"><h3 id="rfc.section.12.16"><a href="#rfc.section.12.16">12.16</a>&nbsp;<a href="#v3.reference">Extensions to reference Element</a></h3><div id="rfc.section.12.16.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.40">Section 2.40</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.17"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.16.p.1">&para;</a></p></div><section id="v3.reference.quoteTitle"><h4 id="rfc.section.12.16.1"><a href="#rfc.section.12.16.1">12.16.1</a>&nbsp;<a href="#v3.reference.quoteTitle">quoteTitle attribute</a></h4><div id="rfc.section.12.16.1.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.40.2">Section 2.40.2</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.18"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.16.1.p.1">&para;</a></p></div></section></section><section id="v3.section"><h3 id="rfc.section.12.17"><a href="#rfc.section.12.17">12.17</a>&nbsp;<a href="#v3.section">Extensions to section Element</a></h3><div id="rfc.section.12.17.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.46">Section 2.46</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.19"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.17.p.1">&para;</a></p></div><section id="v3.section.numbered"><h4 id="rfc.section.12.17.1"><a href="#rfc.section.12.17.1">12.17.1</a>&nbsp;<a href="#v3.section.numbered">numbered attribute</a></h4><div id="rfc.section.12.17.1.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.46.2">Section 2.46.2</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.20"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.17.1.p.1">&para;</a></p></div></section><section id="v3.section.removeInRFC"><h4 id="rfc.section.12.17.2"><a href="#rfc.section.12.17.2">12.17.2</a>&nbsp;<a href="#v3.section.removeInRFC">removeInRFC attribute</a></h4><div id="rfc.section.12.17.2.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.46.3">Section 2.46.3</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.21"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.17.2.p.1">&para;</a></p></div></section></section><section id="v3.strong"><h3 id="rfc.section.12.18"><a href="#rfc.section.12.18">12.18</a>&nbsp;<a href="#v3.strong">strong Element</a></h3><div id="rfc.section.12.18.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.50">Section 2.50</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.22"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.18.p.1">&para;</a></p></div></section><section id="v3.sub"><h3 id="rfc.section.12.19"><a href="#rfc.section.12.19">12.19</a>&nbsp;<a href="#v3.sub">sub Element</a></h3><div id="rfc.section.12.19.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.51">Section 2.51</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.23"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.19.p.1">&para;</a></p></div></section><section id="v3.sup"><h3 id="rfc.section.12.20"><a href="#rfc.section.12.20">12.20</a>&nbsp;<a href="#v3.sup">sup Element</a></h3><div id="rfc.section.12.20.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.52">Section 2.52</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.24"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.20.p.1">&para;</a></p></div></section><section id="v3.svg"><h3 id="rfc.section.12.21"><a href="#rfc.section.12.21">12.21</a>&nbsp;<a href="#v3.svg">svg Element</a></h3><div id="rfc.section.12.21.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-4" title="SVG">Section 4</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.25"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.21.p.1">&para;</a></p></div></section><section id="v3.tt"><h3 id="rfc.section.12.22"><a href="#rfc.section.12.22">12.22</a>&nbsp;<a href="#v3.tt">tt Element</a></h3><div id="rfc.section.12.22.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.62">Section 2.62</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.26"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.22.p.1">&para;</a></p></div></section><section id="v3.ul"><h3 id="rfc.section.12.23"><a href="#rfc.section.12.23">12.23</a>&nbsp;<a href="#v3.ul">ul Element</a></h3><div id="rfc.section.12.23.p.1"><p>See <a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03#section-2.63">Section 2.63</a> of <a href="#XML2RFCV3" id="rfc.xref.XML2RFCV3.27"><cite title="The &#34;xml2rfc&#34; version 3 Vocabulary">[XML2RFCV3]</cite></a>.<a class="self" href="#rfc.section.12.23.p.1">&para;</a></p></div></section></section><hr class="noprint"><section id="utilities"><h2 id="rfc.section.13" class="np"><a href="#rfc.section.13">13.</a>&nbsp;<a href="#utilities">Utilities</a></h2><section id="checking-references"><h3 id="rfc.section.13.1"><a href="#rfc.section.13.1">13.1</a>&nbsp;<a href="#checking-references">Checking References</a></h3><div id="rfc.section.13.1.p.1"><p><span class="tt">check-references.xslt</span> can be used to check all references to RFC- and ID-series IETF publications and to W3C publications (note this script requires local copies of &lt;<a href="ftp://ftp.isi.edu/in-notes/rfc-index.xml">ftp://ftp.isi.edu/in-notes/rfc-index.xml</a>&gt; and &lt;<a href="http://www.w3.org/2002/01/tr-automation/tr.rdf">http://www.w3.org/2002/01/tr-automation/tr.rdf</a>&gt; and will use the XML status information provided at &lt;<a href="http://tools.ietf.org/">http://tools.ietf.org/</a>&gt;).<a class="self" href="#rfc.section.13.1.p.1">&para;</a></p></div><div id="rfc.section.13.1.p.2"><p>If the document is supposed to be published on the IETF standards track, the desired level can be specified using the parameter <span class="tt">intended-level</span> as 'proposed', 'draft' or 'internet'. Alternatively, it can be specified inside the document using the attribute x:maturity-level on the &lt;rfc&gt; element (see <a href="#ext-rfc2629.rfc" title="Extensions to Xml2rfc <rfc&gt; element">Section&nbsp;11.25</a>).<a class="self" href="#rfc.section.13.1.p.2">&para;</a></p></div><div id="rfc.section.13.1.p.3"><p><b>Note:</b> Downward references should be annotated using the &lt;annotate&gt; element, containing an &lt;xref&gt; to <a href="#BCP97" id="rfc.xref.BCP97.1"><cite title="Handling Normative References to Standards-Track Documents">[BCP97]</cite></a>.<a class="self" href="#rfc.section.13.1.p.3">&para;</a></p></div><div id="rfc.section.13.1.p.4"><p>When an XSLT 2.0 processor is used, links in the document can be checked as well using the <span class="tt">link-check</span> parameter ('yes' or 'no'). Note that this only works for http links to documents of type text/*.<a class="self" href="#rfc.section.13.1.p.4">&para;</a></p></div><div id="rfc.figure.u.21"><p>For instance, as of 2008-07-12, the script produces for &lt;<a href="http://greenbytes.de/tech/webdav/rfc2518.xml">http://greenbytes.de/tech/webdav/rfc2518.xml</a>&gt;:</p><pre class="text">&gt; saxon rfc2518.xml check-references.xslt intended-status=PROPOSED \
559  link-check=yes
560
561Normative References:
562ISO-11578: not checked
563ISO-639: not checked
564ISO-8601: not checked
565REC-xml-19980210: [FirstEdition] obsoleted by REC-xml-20001006
566REC-xml-names-19990114: [FirstEdition] obsoleted by
567 REC-xml-names-20060816
568RFC1766: [PROPOSED STANDARD] obsoleted by RFC3066 RFC3282
569RFC2068: [PROPOSED STANDARD] obsoleted by RFC2616
570RFC2069: [PROPOSED STANDARD] obsoleted by RFC2617
571RFC2119: [BEST CURRENT PRACTICE] (-&gt; BCP0014) ok
572RFC2141: [PROPOSED STANDARD] ok
573RFC2277: [BEST CURRENT PRACTICE] (-&gt; BCP0018) ok
574RFC2396: [DRAFT STANDARD] obsoleted by RFC3986
575RFC2279: [DRAFT STANDARD] obsoleted by RFC3629
576
577Informational References:
578REC-PICS-labels-961031: [REC] ok
579RFC1807: [INFORMATIONAL] ok
580RFC2026: [BEST CURRENT PRACTICE] (-&gt; BCP0009) ok
581RFC2291: [INFORMATIONAL] ok
582RFC2376: [INFORMATIONAL] obsoleted by RFC3023
583RFC2413: [INFORMATIONAL] obsoleted by RFC5013
584USMARC: not checked
585WF: not checked
586
587Link Targets
588&lt;http://www.w3.org/TR/1998/REC-xml-19980210&gt;: ok
589&lt;http://www.w3.org/TR/1999/REC-xml-names-19990114&gt;: ok
590&lt;http://www.dlib.org/dlib/july96/lagoze/07lagoze.html&gt;: ok
591&lt;http://www.w3.org/pub/WWW/TR/REC-PICS-labels-961031.html&gt;: ok
592</pre></div><div id="rfc.section.13.1.p.5"><p>Recognized formats in the &lt;seriesInfo&gt; element are: <a class="self" href="#rfc.section.13.1.p.5">&para;</a></p><ul><li>for RFCs, the name attribute must be "RFC", and the value attribute must be the number of the RFC,</li><li>for Internet Drafs, the name attribute must be "ID" or "Internet-Draft", and the value attribute must be the file name of the draft (including the two-digit running number, but excluding a file extension),</li><li>for W3C documents, the name attribute must be "W3C", must start with "W3C&nbsp;", or must start with "World Wide Web Consortium&nbsp;", and the value attribute must be the "shorthand" name of the specification, such as "REC-xml-19980210".</li></ul></div><aside><div id="rfc.section.13.1.p.6"><p><b>Note:</b> this stylesheet will need network access to check links and status of Internet Drafts. When running a Java-based XSLT engine, you may have to supply Java system properties specifying the HTTP proxy to be used, such as "-Dhttp.proxyHost=hostname -Dhttp.proxyPort=80".<a class="self" href="#rfc.section.13.1.p.6">&para;</a></p></div></aside></section><section id="n-generating-graphs-from-references"><h3 id="rfc.section.13.2"><a href="#rfc.section.13.2">13.2</a>&nbsp;<a href="#n-generating-graphs-from-references">Generating Graphs from References</a></h3><div id="rfc.section.13.2.p.1"><p><span class="tt">gen-reference-graph.xslt</span> generates a graph of RFC dependencies, using the same base data as in <span class="tt">check-references.xslt</span> (see <a href="#checking-references" title="Checking References">Section&nbsp;13.1</a>). Its output is a "dot" file, to be processed by GraphViz (see &lt;<a href="http://www.graphviz.org/">http://www.graphviz.org/</a>&gt;).<a class="self" href="#rfc.section.13.2.p.1">&para;</a></p></div><div id="rfc.figure.u.22"><p>The picture below shows the RFC dependencies in RFC2629.</p><p><img src="rfc2629xslt-fig2.png" alt="&#xA;(PNG output obtained from GraphViz)&#xA;"></p></div></section><section id="n-producing-reference-entries-for-books"><h3 id="rfc.section.13.3"><a href="#rfc.section.13.3">13.3</a>&nbsp;<a href="#n-producing-reference-entries-for-books">Producing reference entries for books</a></h3><div id="rfc.section.13.3.p.1"><p><span class="tt">amazon-asin.xslt</span> uses the Amazon web services to generate a &lt;reference&gt; element for a given ASIN (ISBN).<a class="self" href="#rfc.section.13.3.p.1">&para;</a></p></div><div id="rfc.figure.u.23"><p>For instance:</p><pre class="text prettyprint">&lt;?xml version="1.0" encoding="utf-8"?&gt;
593&lt;references&gt;
594 &lt;reference target="urn:isbn:0134516591"&gt;
595   &lt;front&gt;
596     &lt;title&gt;Simple Book, The: An Introduction to Internet Management,
597               Revised Second Edition&lt;/title&gt;
598     &lt;author surname="Rose"
599                fullname="Marshall T. Rose" initials="M. T. "&gt;
600       &lt;organization/&gt;
601     &lt;/author&gt;
602     &lt;author surname="Marshall"
603                fullname="Rose T. Marshall" initials="R. T."&gt;
604       &lt;organization/&gt;
605     &lt;/author&gt;
606     &lt;date year="1996" month="March"/&gt;
607   &lt;/front&gt;
608   &lt;seriesInfo name="Prentice Hall" value=""/&gt;
609 &lt;/reference&gt;
610&lt;/references&gt;
611</pre></div><div id="rfc.section.13.3.p.2"><p>Note that the resulting XML usually requires checking, in this case Amazon's database is playing tricks with Marshall's name...<a class="self" href="#rfc.section.13.3.p.2">&para;</a></p></div></section><section id="clean-for-dtd"><h3 id="rfc.section.13.4"><a href="#rfc.section.13.4">13.4</a>&nbsp;<a href="#clean-for-dtd">Down-converting to RFC2629bis DTD</a></h3><div id="rfc.section.13.4.p.1"><p><span class="tt">clean-for-DTD.xslt</span> can be used to down-convert some extensions to a format that is supported by the base xml2rfc distribution. Note that these extensions are experimental (feedback appreciated).<a class="self" href="#rfc.section.13.4.p.1">&para;</a></p></div><div id="rfc.section.13.4.p.2"><p>The following mappings are done: <a class="self" href="#rfc.section.13.4.p.2">&para;</a></p><ul><li>&lt;iref&gt; elements inside &lt;artwork&gt; elements are moved in front of the enclosing &lt;figure&gt; element.</li><li>&lt;xref&gt; elements inside &lt;artwork&gt; are expanded just like in regular text (that is, the markup is stripped, but the element is replaced by the applicable replacement text).</li><li>&lt;x:<a href="#ext.element.anchor-alias" class="smpl">anchor-alias</a>&gt; elements get stripped.</li><li>&lt;x:<a href="#ext.element.bcp14" class="smpl">bcp14</a>&gt; elements get stripped.</li><li>&lt;x:<a href="#ext.element.bb" class="smpl">bb</a>&gt;, &lt;x:<a href="#ext.element.bc" class="smpl">bc</a>&gt; and &lt;x:<a href="#ext.element.bt" class="smpl">bt</a>&gt; elements get stripped.</li><li>&lt;x:<a href="#ext.element.blockquote" class="smpl">blockquote</a>&gt; elements get converted to indented text (through a &lt;list&gt; element).</li><li>&lt;x:<a href="#ext.element.dfn" class="smpl">dfn</a>&gt; elements get stripped.</li><li>&lt;x:<a href="#ext.element.h" class="smpl">h</a>&gt; elements get stripped.</li><li>&lt;x:<a href="#ext.element.link" class="smpl">link</a>&gt; elements get stripped.</li><li>&lt;x:<a href="#ext.element.lt" class="smpl">lt</a>&gt; elements get collapsed into a single &lt;lt&gt; element with added &lt;vspace&gt; added to simulate paragraph breaks.</li><li>&lt;x:<a href="#ext.element.note" class="smpl">note</a>&gt; elements get converted to indented text (through a &lt;list&gt; element).</li><li>&lt;x:<a href="#ext.element.q" class="smpl">q</a>&gt; elements get stripped, with apostrophes added around the text.</li><li>&lt;x:<a href="#ext.element.prose" class="smpl">prose</a>&gt; elements are transformed into &lt;seriesInfo&gt; elements (which is an abuse of the element and only a workaround until xml2rfc gets a matching extension).</li><li>&lt;x:<a href="#ext.element.ref" class="smpl">ref</a>&gt; elements get replaced by &lt;xref&gt; elements, targetting either the anchor or another anchor with matching &lt;x:<a href="#ext.element.anchor-alias" class="smpl">anchor-alias</a>&gt; child element.</li></ul></div></section><section id="extract-artwork"><h3 id="rfc.section.13.5"><a href="#rfc.section.13.5">13.5</a>&nbsp;<a href="#extract-artwork">Extracting artwork</a></h3><div id="rfc.section.13.5.p.1"><p>With <span class="tt">extract-artwork.xslt</span>, artwork elements named through the "name" attribute can be extracted. This can be used to automatically check their syntax (for instance, when ABNFs appear within a figure element).<a class="self" href="#rfc.section.13.5.p.1">&para;</a></p></div><div id="rfc.figure.u.24"><p>For instance:</p><pre class="text">saxon rfc3986.xml extract-artwork.xslt name=uri.abnf
612</pre></div><div id="rfc.section.13.5.p.2" class="avoidbreakafter"><p>In addition, artwork of a specific type can be extracted, such as with:<a class="self" href="#rfc.section.13.5.p.2">&para;</a></p></div><div id="rfc.figure.u.25"><pre class="text">saxon rfc3986.xml extract-artwork.xslt type=abnf
613</pre></div><div id="rfc.section.13.5.p.3" class="avoidbreakafter"><p>When extracting by type, artwork elements with a specified name can be excluded; this can be handy when the document uses some kind of schema language, and an appendix contains the collected schema, repeating definitions from earlier on. Example:<a class="self" href="#rfc.section.13.5.p.3">&para;</a></p></div><div id="rfc.figure.u.26"><pre class="text">saxon rfc3986.xml extract-artwork.xslt type=abnf except-name=clschm
614</pre></div></section><section id="grddl"><h3 id="rfc.section.13.6"><a href="#rfc.section.13.6">13.6</a>&nbsp;<a href="#grddl">GRRDL</a></h3><div id="rfc.section.13.6.p.1"><p><span class="tt">rfc2629grddl.xslt</span> extracts RDF information. This is experimental work-in-progress. See &lt;<a href="http://www.w3.org/TR/grddl/">http://www.w3.org/TR/grddl/</a>&gt; for more information.<a class="self" href="#rfc.section.13.6.p.1">&para;</a></p></div></section><section id="html.live.refresh"><h3 id="rfc.section.13.7"><a href="#rfc.section.13.7">13.7</a>&nbsp;<a href="#html.live.refresh">HTML Live Refresh</a></h3><div id="rfc.section.13.7.p.1"><p><em>Experimental</em> <a class="self" href="#rfc.section.13.7.p.1">&para;</a></p></div><div id="rfc.section.13.7.p.2"><p>The "HTML Live Refresh" mode allows to run a text editor and a browser side-by-side, with the browser auto-updating every few seconds, displaying the updated HTML, and automatically navigating to the part of the page that changed last.<a class="self" href="#rfc.section.13.7.p.2">&para;</a></p></div><div id="html.live.refresh.requirements"><div id="rfc.section.13.7.p.3"><p>The requirements for this mode are: <a class="self" href="#rfc.section.13.7.p.3">&para;</a></p><ol><li>A browser that supports the <span class="tt">DOMParser</span> and <span class="tt">XSLTProcessor</span> APIs.</li><li>The ability to reload the source code and the XSLT code from within Javascript; in some browsers this is forbidden for "file:" URIs due to perceived security problems.</li></ol></div></div><div id="rfc.section.13.7.p.4"><p>This feature is currently tested with: <a class="self" href="#rfc.section.13.7.p.4">&para;</a></p><ol><li>Mozilla Firefox, and</li><li>Google Chome (where, to be able to reload from the local filesystem, Chrome needs to be started with the command line option <span class="tt">--allow-file-access-from-files</span>).</li></ol></div><div id="rfc.section.13.7.p.5" class="avoidbreakafter"><p>Use of this feature requires the inclusion of a processing instruction that holds the name of the XML source, such as:<a class="self" href="#rfc.section.13.7.p.5">&para;</a></p></div><div id="rfc.figure.u.27"><pre class="text prettyprint">&lt;?rfc-ext refresh-from="draft-foo-bar-00.xml"?&gt;
615</pre></div><div id="rfc.section.13.7.p.6"><p>The optional parameters <span class="tt">refresh-interval</span> and <span class="tt">refresh-xslt</span> support changing the refresh interval (in seconds, defaulting to 10), and the name of the XSLT file to use (defaulting to "rfc2629.xslt").<a class="self" href="#rfc.section.13.7.p.6">&para;</a></p></div><div id="rfc.figure.u.28"><p>To test this feature, start with a minimal source file like this:</p><pre class="text prettyprint">&lt;?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?&gt;
616&lt;?rfc-ext refresh-from="draft-foo-bar-00.xml"?&gt; 
617&lt;rfc docName="draft-foo-bar-00" ipr="trust200902"&gt;
618  &lt;front&gt;
619    &lt;title&gt;Title Goes Here&lt;/title&gt;
620    &lt;abstract&gt;
621      &lt;t&gt;Abstract&lt;/t&gt;
622    &lt;/abstract&gt;
623  &lt;/front&gt;
624&lt;/rfc&gt;</pre><p>...open it in both text editor and browser, start editing and of course ocasionally save.</p></div></section><section id="refreshing.inclusions"><h3 id="rfc.section.13.8"><a href="#rfc.section.13.8">13.8</a>&nbsp;<a href="#refreshing.inclusions">Refreshing included material in the XML source</a></h3><div id="rfc.section.13.8.p.1"><p>There are many methods for automatic inclusion of material in the XML source, such as the "include" processing instruction<span id="rfc.iref.i.15"></span><span id="rfc.iref.p.67"></span> (see <a href="#supported.pis" title="Supported xml2rfc-compatible PIs">Section&nbsp;3.1</a>), external entities (<a href="#examples.internalsubset" title="Using the 'Internal Subset'">Appendix&nbsp;C.1</a>), or XInclude. In general, those share a common problem: the XML source file isn't self-contained, which makes it harder to submit it as Internet Draft.<a class="self" href="#rfc.section.13.8.p.1">&para;</a></p></div><div id="rfc.section.13.8.p.2"><p>The tool <span class="tt">refresh-inclusions.sh</span> does in-place replacement: it scans the source file for inclusion directives (expressed as XML processing instructions), and refreshes the included text with data from an external file. It will not modify the source file unless included material did actually change. When it does modify the source file, it will copy the original source to a backup file.<a class="self" href="#rfc.section.13.8.p.2">&para;</a></p></div><div id="rfc.section.13.8.p.3" class="avoidbreakafter"><p><span class="tt">refresh-inclusions.sh</span> can include both plain text (<span class="tt">BEGINESCAPEDINC</span>/<span class="tt">ENDESCAPEDINC</span>) and XML (<span class="tt">BEGININC</span>/<span class="tt">ENDINC</span>). The figure below was inserted using:<a class="self" href="#rfc.section.13.8.p.3">&para;</a></p></div><div id="rfc.figure.u.29"><pre class="text prettyprint">&lt;?BEGINESCAPEDINC refresh-inclusions.sh ?&gt;
625...
626&lt;?ENDSCAPEDINC refresh-inclusions.sh ?&gt;
627</pre><p>(note that the SP character at the end of the directive is significant)</p></div><div id="rfc.figure.u.30"><p><span class="tt">refresh-inclusions.sh</span>:</p><pre class="prettyprint">
628#!/bin/sh
629# Refresh file inclusions based on XML processing instructions
630#
631# Copyright (c) 2006-2016, Julian Reschke (julian.reschke@greenbytes.de)
632# All rights reserved.
633#
634# Redistribution and use in source and binary forms, with or without
635# modification, are permitted provided that the following conditions are met:
636#
637# * Redistributions of source code must retain the above copyright notice,
638#   this list of conditions and the following disclaimer.
639# * Redistributions in binary form must reproduce the above copyright notice,
640#   this list of conditions and the following disclaimer in the documentation
641#   and/or other materials provided with the distribution.
642# * Neither the name of Julian Reschke nor the names of its contributors
643#   may be used to endorse or promote products derived from this software
644#   without specific prior written permission.
645#
646# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
647# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
648# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
649# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
650# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
651# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
652# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
653# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
654# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
655# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
656# POSSIBILITY OF SUCH DAMAGE.
657
658expand() {
659
660  # remember whether we started with CRLF (assumes that we have dos2unix)
661  CRLF=$(dos2unix -ic "$1" 2&gt;/dev/null | tr -d ' ')
662 
663  cat "$1" | awk '
664
665  function filecontents(filename) {
666    while (getline &lt; filename &gt; 0) {
667      fc[filename] = fc[filename] $0 "\n"
668    }
669    return fc[filename]
670  }
671
672  BEGIN {
673    includefile = "";
674    includeescapedfile = "";
675  }
676 
677  # start include (verbatim mode)
678  /&lt;\?BEGININC .* \?&gt;$/ {
679    print
680    keyword = "&lt;?BEGININC "
681    extract = match($0, /&lt;\?BEGININC .* \?&gt;$/)
682    includefile = substr($0, RSTART + length(keyword),
683                    RLENGTH - 3 - length(keyword))
684    output = filecontents(includefile)
685    printf("%s", output)
686  }
687 
688  # start include (escape-for-XML mode)
689  /&lt;\?BEGINESCAPEDINC .* \?&gt;$/ {
690    print
691    keyword = "&lt;?BEGINESCAPEDINC "
692    extract = match($0, /&lt;\?BEGINESCAPEDINC .* \?&gt;$/)
693    includeescapedfile = substr($0, RSTART + length(keyword),
694                           RLENGTH - 3 - length(keyword))
695    output = filecontents(includeescapedfile)
696    # escape ampersand, less-than, and greater-than
697    # when part of a CDATA end marker
698    gsub(/&amp;/, "\\&amp;amp;", output)
699    gsub(/&lt;/, "\\&amp;lt;", output)
700    gsub(/]]&gt;/, "]]\\&amp;gt;", output)
701    printf("%s", output)
702  }
703
704  # end include (verbatim mode)
705  /^&lt;\?ENDINC .* \?&gt;/ {
706    if ($2 != includefile) {
707      printf ("unexpected ENDINC, got %s but expected %s\n", $2,
708        includefile) &gt;&gt; "/dev/stderr"
709    }
710    includefile = "";
711  }
712 
713  # end include (escape-for-XML mode)
714  /^&lt;\?ENDESCAPEDINC .* \?&gt;/ {
715    if ($2 != includeescapedfile) {
716      printf ("unexpected ENDESCAPEDINC, got %s but expected %s\n", $2,
717        includeescapedfile) &gt;&gt; "/dev/stderr"
718    }
719    includeescapedfile = "";
720  }
721
722  #default
723  {
724    if (includefile == "" &amp;&amp; includeescapedfile == "") {
725      print
726    }
727  }
728 
729  END {
730    if (includefile != "") {
731      printf ("missing ENDINC for %s\n",
732        includefile) &gt;&gt; "/dev/stderr"
733    }
734    if (includeescapedfile != "") {
735      printf ("missing ENDESCAPEDINC for %s\n",
736        includeescapedfile) &gt;&gt; "/dev/stderr"
737    }
738  }
739 
740  ' &gt; $$
741 
742  # restore CRLF if needed
743  if [ -n "$CRLF" ]; then
744    FNN=$(echo "$1" | tr -d ' ')
745    [ "$FNN" = "$CRLF" ] &amp;&amp; unix2dos -q $$
746  fi
747 
748  # check for changes
749  cmp -s "$1" $$ || (
750    cp -v "$1" "$1".ri.bak
751    cp $$ "$1"
752    echo "$1" updated )
753 
754  rm -f $$
755}
756
757[ $# -ne 0 ] || ( echo "refresh-inclusions.sh file..." &gt;&amp;2 ; exit 2 )
758
759for i in $*
760do
761  expand $i
762done
763
764</pre></div></section></section><section id="rfc.references" class="np"><h2 id="rfc.section.14"><a href="#rfc.section.14">14.</a> Informative References</h2><dl class="reference"><dt id="BCP97">[BCP97]</dt><dd><a href="mailto:klensin+ietf@jck.com">Klensin, J.</a> and <a href="mailto:hartmans-ietf@mit.edu">S. Hartman</a>, &#8220;<a href="https://tools.ietf.org/html/rfc4897">Handling Normative References to Standards-Track Documents</a>&#8221;, BCP&nbsp;97, RFC&nbsp;4897, June&nbsp;2007, &lt;<a href="http://www.rfc-editor.org/info/bcp97">http://www.rfc-editor.org/info/bcp97</a>&gt;.</dd><dt id="DC-HTML">[DC-HTML]</dt><dd><a href="mailto:pete.johnston@eduserv.org.uk">Johnston, P.</a> and <a href="mailto:andy.powell@eduserv.org.uk">A. Powell</a>, &#8220;<a href="http://dublincore.org/documents/2008/08/04/dc-html/">Expressing Dublin Core metadata using HTML/XHTML meta and link elements</a>&#8221;, Dublin Core Metadata Initiative, August&nbsp;2008, &lt;<a href="http://dublincore.org/documents/2008/08/04/dc-html/">http://dublincore.org/documents/2008/08/04/dc-html/</a>&gt;.</dd><dt id="HTML5">[HTML5]</dt><dd>Hickson, I., Berjon, R., Faulkner, S., Leithead, T., Doyle Navara, E., O'Connor, E., and S. Pfeiffer, &#8220;<a href="http://www.w3.org/TR/2014/REC-html5-20141028/">HTML5</a>&#8221;, W3C Recommendation&nbsp;REC-html5-20141028, October&nbsp;2014, &lt;<a href="http://www.w3.org/TR/2014/REC-html5-20141028/">http://www.w3.org/TR/2014/REC-html5-20141028/</a>&gt;.<br>Latest version available at &lt;<a href="http://www.w3.org/TR/html5/">http://www.w3.org/TR/html5/</a>&gt;.</dd><dt id="RFC2026">[RFC2026]</dt><dd><a href="mailto:sob@harvard.edu">Bradner, S.</a>, &#8220;<a href="https://tools.ietf.org/html/rfc2026">The Internet Standards Process -- Revision 3</a>&#8221;, BCP&nbsp;9, RFC&nbsp;2026, <a href="http://dx.doi.org/10.17487/RFC2026">DOI&nbsp;10.17487/RFC2026</a>, October&nbsp;1996, &lt;<a href="http://www.rfc-editor.org/info/rfc2026">http://www.rfc-editor.org/info/rfc2026</a>&gt;.</dd><dt id="RFC2045">[RFC2045]</dt><dd>Freed, N. and N. Borenstein, &#8220;<a href="https://tools.ietf.org/html/rfc2045">Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</a>&#8221;, RFC&nbsp;2045, <a href="http://dx.doi.org/10.17487/RFC2045">DOI&nbsp;10.17487/RFC2045</a>, November&nbsp;1996, &lt;<a href="http://www.rfc-editor.org/info/rfc2045">http://www.rfc-editor.org/info/rfc2045</a>&gt;.</dd><dt id="RFC2119">[RFC2119]</dt><dd><a href="mailto:sob@harvard.edu">Bradner, S.</a>, &#8220;<a href="https://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>&#8221;, BCP&nbsp;14, RFC&nbsp;2119, <a href="http://dx.doi.org/10.17487/RFC2119">DOI&nbsp;10.17487/RFC2119</a>, March&nbsp;1997, &lt;<a href="http://www.rfc-editor.org/info/rfc2119">http://www.rfc-editor.org/info/rfc2119</a>&gt;.</dd><dt id="RFC2616">[RFC2616]</dt><dd><a href="mailto:fielding@ics.uci.edu">Fielding, R.</a>, <a href="mailto:jg@w3.org">Gettys, J.</a>, <a href="mailto:mogul@wrl.dec.com">Mogul, J.</a>, <a href="mailto:frystyk@w3.org">Nielsen, H.</a>, <a href="mailto:masinter@parc.xerox.com">Masinter, L.</a>, <a href="mailto:paulle@microsoft.com">Leach, P.</a>, and <a href="mailto:timbl@w3.org">T. Berners-Lee</a>, &#8220;<a href="https://tools.ietf.org/html/rfc2616">Hypertext Transfer Protocol -- HTTP/1.1</a>&#8221;, RFC&nbsp;2616, <a href="http://dx.doi.org/10.17487/RFC2616">DOI&nbsp;10.17487/RFC2616</a>, June&nbsp;1999, &lt;<a href="http://www.rfc-editor.org/info/rfc2616">http://www.rfc-editor.org/info/rfc2616</a>&gt;.</dd><dt id="RFC2629">[RFC2629]</dt><dd><a href="mailto:mrose@not.invisible.net">Rose, M.</a>, &#8220;<a href="https://tools.ietf.org/html/rfc2629">Writing I-Ds and RFCs using XML</a>&#8221;, RFC&nbsp;2629, <a href="http://dx.doi.org/10.17487/RFC2629">DOI&nbsp;10.17487/RFC2629</a>, June&nbsp;1999, &lt;<a href="http://www.rfc-editor.org/info/rfc2629">http://www.rfc-editor.org/info/rfc2629</a>&gt;.</dd><dt id="RFC2648">[RFC2648]</dt><dd><a href="mailto:jayhawk@att.com">Moats, R.</a>, &#8220;<a href="https://tools.ietf.org/html/rfc2648">A URN Namespace for IETF Documents</a>&#8221;, RFC&nbsp;2648, <a href="http://dx.doi.org/10.17487/RFC2648">DOI&nbsp;10.17487/RFC2648</a>, August&nbsp;1999, &lt;<a href="http://www.rfc-editor.org/info/rfc2648">http://www.rfc-editor.org/info/rfc2648</a>&gt;.</dd><dt id="RFC2731">[RFC2731]</dt><dd><a href="mailto:jak@ckm.ucsf.edu">Kunze, J.</a>, &#8220;<a href="https://tools.ietf.org/html/rfc2731">Encoding Dublin Core Metadata in HTML</a>&#8221;, RFC&nbsp;2731, <a href="http://dx.doi.org/10.17487/RFC2731">DOI&nbsp;10.17487/RFC2731</a>, December&nbsp;1999, &lt;<a href="http://www.rfc-editor.org/info/rfc2731">http://www.rfc-editor.org/info/rfc2731</a>&gt;.</dd><dt id="RFC5234">[RFC5234]</dt><dd><a href="mailto:dcrocker@bbiw.net">Crocker, D., Ed.</a> and <a href="mailto:paul.overell@thus.net">P. Overell</a>, &#8220;<a href="https://tools.ietf.org/html/rfc5234">Augmented BNF for Syntax Specifications: ABNF</a>&#8221;, STD&nbsp;68, RFC&nbsp;5234, <a href="http://dx.doi.org/10.17487/RFC5234">DOI&nbsp;10.17487/RFC5234</a>, January&nbsp;2008, &lt;<a href="http://www.rfc-editor.org/info/rfc5234">http://www.rfc-editor.org/info/rfc5234</a>&gt;.</dd><dt id="RFC7230">[RFC7230]</dt><dd><a href="mailto:fielding@gbiv.com">Fielding, R., Ed.</a> and <a href="mailto:julian.reschke@greenbytes.de">J. Reschke, Ed.</a>, &#8220;<a href="https://tools.ietf.org/html/rfc7230">Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</a>&#8221;, RFC&nbsp;7230, <a href="http://dx.doi.org/10.17487/RFC7230">DOI&nbsp;10.17487/RFC7230</a>, June&nbsp;2014, &lt;<a href="http://www.rfc-editor.org/info/rfc7230">http://www.rfc-editor.org/info/rfc7230</a>&gt;.</dd><dt id="RFC7749">[RFC7749]</dt><dd>Reschke, J., &#8220;<a href="https://tools.ietf.org/html/rfc7749">The "xml2rfc" Version 2 Vocabulary</a>&#8221;, RFC&nbsp;7749, <a href="http://dx.doi.org/10.17487/RFC7749">DOI&nbsp;10.17487/RFC7749</a>, February&nbsp;2016, &lt;<a href="http://www.rfc-editor.org/info/rfc7749">http://www.rfc-editor.org/info/rfc7749</a>&gt;.</dd><dt id="RNC">[RNC]</dt><dd><a href="mailto:jjc@jclark.com">Clark, J.</a>, &#8220;<a href="http://www.oasis-open.org/committees/relax-ng/compact-20021121.html">RELAX NG Compact Syntax</a>&#8221;, OASIS, Nov&nbsp;2002, &lt;<a href="http://www.oasis-open.org/committees/relax-ng/compact-20021121.html">http://www.oasis-open.org/committees/relax-ng/compact-20021121.html</a>&gt;.</dd><dt id="XHTML2">[XHTML2]</dt><dd>Birbeck, M., Gylling, M., McCarron, S., Pemberton, S., Axelsson, J., Dubinko, M., Epperson, B., Ishikawa, M., and A. Navarro, &#8220;<a href="http://www.w3.org/TR/2010/NOTE-xhtml2-20101216">XHTML(tm) 2.0</a>&#8221;, W3C Group Note&nbsp;NOTE-xhtml2-20101216, December&nbsp;2010, &lt;<a href="http://www.w3.org/TR/2010/NOTE-xhtml2-20101216">http://www.w3.org/TR/2010/NOTE-xhtml2-20101216</a>&gt;.<br>Latest version available at &lt;<a href="http://www.w3.org/TR/xhtml2">http://www.w3.org/TR/xhtml2</a>&gt;.</dd><dt id="XML">[XML]</dt><dd>Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and F. Yergeau, &#8220;<a href="http://www.w3.org/TR/2008/REC-xml-20081126/">Extensible Markup Language (XML) 1.0 (Fifth Edition)</a>&#8221;, W3C Recommendation&nbsp;REC-xml-20081126, November&nbsp;2008, &lt;<a href="http://www.w3.org/TR/2008/REC-xml-20081126/">http://www.w3.org/TR/2008/REC-xml-20081126/</a>&gt;.<br>Latest version available at &lt;<a href="http://www.w3.org/TR/xml">http://www.w3.org/TR/xml</a>&gt;.</dd><dt id="XML2RFCV3">[XML2RFCV3]</dt><dd>Hoffman, P., &#8220;<a href="https://tools.ietf.org/html/draft-iab-xml2rfc-03">The "xml2rfc" version 3 Vocabulary</a>&#8221;, Internet-Draft&nbsp;draft-iab-xml2rfc-03 (work in progress), February&nbsp;2016.</dd><dt id="XSL-FO">[XSL-FO]</dt><dd>Berglund, A., &#8220;<a href="http://www.w3.org/TR/2006/REC-xsl11-20061205/">Extensible Stylesheet Language (XSL) Version 1.1</a>&#8221;, W3C Recommendation&nbsp;REC-xsl11-20061205, December&nbsp;2006, &lt;<a href="http://www.w3.org/TR/2006/REC-xsl11-20061205/">http://www.w3.org/TR/2006/REC-xsl11-20061205/</a>&gt;.<br>Latest version available at &lt;<a href="http://www.w3.org/TR/xsl11/">http://www.w3.org/TR/xsl11/</a>&gt;.</dd></dl></section><hr class="noprint"><section id="grammar"><h2 id="rfc.section.A" class="np"><a href="#rfc.section.A">A.</a>&nbsp;<a href="#grammar">RELAX NG Compact Schema</a></h2><div id="rfc.section.A.p.1"><p>The RelaxNG schema (<a href="#RNC" id="rfc.xref.RNC.1"><cite title="RELAX NG Compact Syntax">[RNC]</cite></a>) below can be used to validate input documents (for instance, with <a href="http://www.thaiopensource.com/relaxng/jing.html">Jing</a>).<a class="self" href="#rfc.section.A.p.1">&para;</a></p></div><div id="rfc.section.A.p.2"><p><em>Note that this is work in progress, and doesn't yet cover all extensions completely.</em> <a class="self" href="#rfc.section.A.p.2">&para;</a></p></div><div id="rfc.figure.u.31"><pre class="inline"><em># WORK IN PROGRESS! PLEASE REPORT PROBLEMS TO THE AUTHOR.</em>
765
766<em># Define our extension namespace</em>
767namespace x = "http://purl.org/net/xml2rfc/ext"
768
769<em># Define GRDDL namespace</em>
770namespace grddl = "http://www.w3.org/2003/g/data-view#"
771
772<em># Define RDF namespace</em>
773namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
774
775<em># Define SVG namespace</em>
776namespace svg = "http://www.w3.org/2000/svg"
777
778<em># Define XInclude namespace</em>
779namespace xi = "http://www.w3.org/2001/XInclude"
780
781<em># Include rfc2629bis RNC grammar</em>
782include "rfc2629.rnc" {
783 
784  <em># Redefine &lt;annotation&gt; to allow more markup</em>
785  annotation =
786    element annotation {
787      attlist.annotation,
788      (TEXT
789        | xref
790        | eref
791        | iref
792        | cref
793        | spanx
794        <strong>| <a href="#v3_tt" class="smpl">v3_tt</a></strong>
795        )*
796    }
797
798  <em># Redefine &lt;artwork&gt; to allow markup</em>
799  artwork =
800    element artwork {
801      attlist.artwork,
802      ( <strong><a href="#v3_svg" class="smpl">v3_svg</a> |
803        </strong>(TEXT
804          <strong>| eref</strong> 
805          <strong>| iref</strong> 
806          <strong>| spanx</strong> 
807          <strong>| xref</strong>
808          <strong>| <a href="#v3_em" class="smpl">v3_em</a></strong>
809          <strong>| <a href="#v3_strong" class="smpl">v3_strong</a></strong>
810          <strong>| <a href="#x_abnf-char-sequence" class="smpl">x_abnf-char-sequence</a></strong>
811          <strong>| <a href="#x_bb" class="smpl">x_bb</a></strong>
812          <strong>| <a href="#x_bc" class="smpl">x_bc</a></strong>
813          <strong>| <a href="#x_bcp14" class="smpl">x_bcp14</a></strong>
814          <strong>| <a href="#x_bt" class="smpl">x_bt</a></strong>
815          <strong>| <a href="#x_highlight" class="smpl">x_highlight</a></strong>
816          <strong>| <a href="#x_length-of" class="smpl">x_length-of</a></strong>
817          <strong>| <a href="#x_parse-xml" class="smpl">x_parse-xml</a></strong>
818          <strong>| <a href="#x_ref" class="smpl">x_ref</a></strong>
819          <strong>| <a href="#x_span" class="smpl">x_span</a></strong>
820          <strong>| <a href="#x_x" class="smpl">x_x</a></strong>)*
821        )
822    }
823
824  <em># Redefine &lt;back&gt; to allow displayreference</em>
825  back =
826    element back {
827      attlist.back,
828      <strong><a href="#v3_displayreference" class="smpl">v3_displayreference</a>*</strong>,
829      references*,
830      section*
831    }
832
833  <em># Redefine &lt;c&gt; to allow our extension elements</em>
834  c =
835    element c {
836      attlist.c,
837      (TEXT
838        | xref
839        | eref
840        | iref
841        | cref
842        | spanx
843        <strong>| <a href="#v3_em" class="smpl">v3_em</a></strong>
844        <strong>| <a href="#v3_strong" class="smpl">v3_strong</a></strong>
845        <strong>| <a href="#v3_tt" class="smpl">v3_tt</a></strong>
846        <strong>| <a href="#x_ref" class="smpl">x_ref</a></strong>)*
847    }
848
849  <em># Redefine &lt;cref&gt; to allow more child elements</em>
850  cref =
851    element cref {
852      attlist.cref,
853      (TEXT
854        | eref
855        | xref)*
856    }
857
858  <em># Redefine &lt;figure&gt; to allow more child elements</em>
859  figure =
860    element figure {
861      attlist.cref,
862      iref*,
863      preamble?,
864      ( artwork | <strong><a href="#v3_sourcecode" class="smpl">v3_sourcecode</a></strong>),
865      postamble?
866    }
867
868  <em># Redefine &lt;front&gt; to allow boilerplate</em>
869  front =
870    element front {
871      attlist.front,
872      title,
873      author+,
874      date,
875      area*,
876      workgroup*,
877      keyword*,
878      abstract?,
879      <strong><a href="#v3_boilerplate" class="smpl">v3_boilerplate</a>?,</strong>
880      note*
881    }
882 
883  <em># Redefine &lt;list&gt; element to allow &lt;x:<a href="#ext.element.lt" class="smpl">lt</a>&gt; child elements</em>
884  \list =
885    element list {
886      attlist.list,
887      (t+ <strong>| <a href="#x_lt" class="smpl">x_lt</a>+</strong>)
888    }   
889   
890  <em># Redefine &lt;preamble&gt; to allow our extension elements</em>
891  preamble =
892    element preamble {
893      attlist.preamble,
894      (TEXT
895        | xref
896        | eref
897        | iref
898        | cref
899        | spanx
900        <strong>| <a href="#v3_em" class="smpl">v3_em</a></strong>
901        <strong>| <a href="#v3_strong" class="smpl">v3_strong</a></strong>
902        <strong>| <a href="#v3_tt" class="smpl">v3_tt</a></strong>
903        <strong>| <a href="#x_anchor-alias" class="smpl">x_anchor-alias</a></strong>
904        <strong>| <a href="#x_bcp14" class="smpl">x_bcp14</a></strong>)*
905  }
906
907  <em># Redefine &lt;postal&gt; to allow &lt;postalLine&gt;</em>
908  postal =
909    element postal {
910      (
911        (city
912          | code
913          | country
914          | region
915          | street)*
916        <strong>| <a href="#v3_postalLine" class="smpl">v3_postalLine</a></strong>+)
917    }
918
919  <em># Redefine &lt;postamble&gt; to allow our extension elements</em>
920  postamble =
921    element postamble {
922      attlist.postamble,
923      (TEXT
924        | xref
925        | eref
926        | iref
927        | cref
928        | spanx
929        <strong>| <a href="#v3_em" class="smpl">v3_em</a></strong>
930        <strong>| <a href="#v3_strong" class="smpl">v3_strong</a></strong>
931        <strong>| <a href="#v3_tt" class="smpl">v3_tt</a></strong>
932        <strong>| <a href="#x_bcp14" class="smpl">x_bcp14</a></strong>)*
933    }
934
935  <em># Redefine &lt;reference&gt; to allow our extension elements</em>
936  reference =
937    element reference {
938      attlist.reference,
939      front,
940      seriesInfo*,
941      <strong><a href="#x_prose" class="smpl">x_prose</a>?</strong>,
942      <strong><a href="#v3_refcontent" class="smpl">v3_refcontent</a>?</strong>,
943      format*,
944      annotation*,
945      <strong><a href="#x_source" class="smpl">x_source</a>?</strong>
946    }
947
948  <em># Redefine &lt;references&gt; to allow our &lt;name&gt;</em>
949  references =
950    element references {
951      attribute title { text }?,
952      <strong><a href="#v3_name" class="smpl">v3_name</a>?</strong>,
953      (reference
954       | <a href="#xi_include" class="smpl">xi_include</a>)+
955    }
956
957  <em># Redefine &lt;rfc&gt; to allow our extension elements</em>
958  rfc =
959    element rfc {
960      attlist.rfc,
961      <strong><a href="#x_link" class="smpl">x_link</a>*,</strong>
962      <strong><a href="#x_feedback" class="smpl">x_feedback</a>?,</strong>
963      <strong><a href="#x_assign-section-number" class="smpl">x_assign-section-number</a>*,</strong>
964      front,
965      middle,
966      back?
967    }
968
969  <em># Redefine &lt;section&gt; to allow our extension elements</em>
970  section =
971    element section {
972      attlist.x_section,
973      (t
974       | figure
975       | texttable
976       | iref
977       | section
978       <strong>| <a href="#v3_aside" class="smpl">v3_aside</a></strong>
979       <strong>| <a href="#v3_blockquote" class="smpl">v3_blockquote</a></strong>
980       <strong>| <a href="#v3_dl" class="smpl">v3_dl</a></strong>
981       <strong>| <a href="#v3_name" class="smpl">v3_name</a></strong>
982       <strong>| <a href="#v3_ol" class="smpl">v3_ol</a></strong>
983       <strong>| <a href="#v3_sourcecode" class="smpl">v3_sourcecode</a></strong>
984       <strong>| <a href="#v3_ul" class="smpl">v3_ul</a></strong>
985       <strong>| <a href="#x_anchor-alias" class="smpl">x_anchor-alias</a></strong>
986       <strong>| <a href="#x_blockquote" class="smpl">x_blockquote</a></strong>
987       <strong>| <a href="#x_include-author" class="smpl">x_include-author</a></strong>
988       <strong>| <a href="#x_note" class="smpl">x_note</a></strong>
989       <strong>| <a href="#rdf_Description" class="smpl">rdf_Description</a></strong>)*
990    }
991
992  <em># Redefine &lt;spanx&gt; to allow some markup</em>
993  spanx =
994    element spanx {
995      attlist.spanx,
996      (TEXT
997        <strong>| iref</strong>
998        <strong>| xref</strong>
999        <strong>| <a href="#x_ref" class="smpl">x_ref</a></strong>)*
1000    }
1001
1002  <em># Redefine &lt;t&gt; to allow our extension elements</em>
1003  t =
1004    element t {
1005      attlist.t,
1006      (TEXT
1007       | \list
1008       | figure
1009       | xref
1010       | eref
1011       | iref
1012       | cref
1013       | spanx
1014       | vspace
1015       <strong>| <a href="#v3_bcp14" class="smpl">v3_bcp14</a></strong>
1016       <strong>| <a href="#v3_em" class="smpl">v3_em</a></strong>
1017       <strong>| <a href="#v3_strong" class="smpl">v3_strong</a></strong>
1018       <strong>| <a href="#v3_sub" class="smpl">v3_sub</a></strong>
1019       <strong>| <a href="#v3_sup" class="smpl">v3_sup</a></strong>
1020       <strong>| <a href="#v3_tt" class="smpl">v3_tt</a></strong>
1021       <strong>| <a href="#x_abnf-char-sequence" class="smpl">x_abnf-char-sequence</a></strong>
1022       <strong>| <a href="#x_anchor-alias" class="smpl">x_anchor-alias</a></strong>
1023       <strong>| <a href="#x_bcp14" class="smpl">x_bcp14</a></strong>
1024       <strong>| <a href="#x_dfn" class="smpl">x_dfn</a></strong>
1025       <strong>| <a href="#x_h" class="smpl">x_h</a></strong>
1026       <strong>| <a href="#x_q" class="smpl">x_q</a></strong>
1027       <strong>| <a href="#x_ref" class="smpl">x_ref</a></strong>
1028       <strong>| <a href="#x_span" class="smpl">x_span</a></strong>
1029       <strong>| <a href="#x_sup" class="smpl">x_sup</a></strong>)*
1030    }
1031}
1032
1033<em># Allow extension attributes on &lt;artwork&gt; (<a href="#ext-rfc2629.artwork" title="Extensions to Xml2rfc <artwork&gt; element">Section&nbsp;11.22</a>)</em>
1034attlist.artwork &amp;=
1035  attribute x:indent-with { ATEXT }?,
1036  attribute x:lang { "" }?,
1037  attribute x:is-code-component { "no" | "yes" }?
1038
1039<em># Allow anchor and x:annotation attributes on &lt;author&gt;</em>
1040attlist.author &amp;=
1041  attribute anchor { xsd:ID }?,
1042  attribute x:annotation { ATEXT }?
1043 
1044<em># Extend attribute set for &lt;c&gt; (see <a href="#ext-rfc2629.iref" title="Extensions to Xml2rfc <iref&gt; element">Section&nbsp;11.23</a>)</em>
1045attlist.c &amp;=
1046  attribute anchor { xsd:ID }?
1047
1048<em># Extend attribute set for &lt;iref&gt; (see <a href="#ext-rfc2629.iref" title="Extensions to Xml2rfc <iref&gt; element">Section&nbsp;11.23</a>)</em>
1049attlist.iref &amp;=
1050  attribute x:for-anchor { ATEXT }?
1051
1052<em># Extend attribute set for &lt;list&gt; (see <a href="#ext-rfc2629.list" title="Extensions to Xml2rfc <list&gt; element">Section&nbsp;11.24</a>)</em>
1053attlist.list &amp;=
1054  attribute x:indent { ATEXT }?
1055
1056<em># Extend attribute set for &lt;preamble&gt;</em>
1057attlist.preamble &amp;=
1058  attribute anchor { xsd:ID }?
1059
1060<em># Extend attribute set for &lt;reference&gt;</em>
1061attlist.reference &amp;=
1062  attribute quoteTitle { "false" | "true" }? # see <a href="#v3.reference.quoteTitle" title="quoteTitle attribute">Section&nbsp;12.16.1</a>
1063
1064<em># Extend attribute set for &lt;rfc&gt;</em>
1065attlist.rfc &amp;=
1066  attribute grddl:transformation { ATEXT }?,
1067  attribute x:maturity-level { "proposed" | "draft" | "internet" }?
1068
1069<em># Extend/Relax attribute set for &lt;section&gt; (see <a href="#ext-rfc2629.section" title="Extensions to Xml2rfc <section&gt; element">Section&nbsp;11.26</a>)</em>
1070attlist.x_section &amp;=
1071  attribute anchor { xsd:ID }?,
1072  attribute title { ATEXT }?,
1073  attribute toc { "include" | "exclude" | "default" }?,
1074  attribute numbered { "false" | "true" }?, # see <a href="#v3.section.numbered" title="numbered attribute">Section&nbsp;12.17.1</a>
1075  attribute removeInRFC { "false" | "true" }?, # see <a href="#v3.section.removeInRFC" title="removeInRFC attribute">Section&nbsp;12.17.2</a>
1076  attribute x:fixed-section-number { ATEXT }?
1077
1078<em># Allow anchor attribute on &lt;spanx&gt;</em>
1079attlist.spanx &amp;=
1080  attribute anchor { xsd:ID }?
1081
1082<em># Allow x:quotes attribute on &lt;title&gt;</em>
1083attlist.title &amp;=
1084  attribute x:quotes { "true" | "false" }?
1085
1086<em># Allow annotation attribute on &lt;uri&gt;</em>
1087attlist.uri &amp;=
1088  attribute x:annotation { ATEXT }?
1089
1090<em># Extend attribute set for &lt;xref&gt; (see <a href="#ext-rfc2629.xref" title="Extensions to Xml2rfc <xref&gt; element">Section&nbsp;11.27</a>)</em>
1091attlist.xref &amp;=
1092  attribute x:fmt  { "()" | "," | "of" | "number" | "sec" |
1093                     "none" }?,
1094  attribute x:rel  { ATEXT }?,
1095  attribute x:sec  { ATEXT }?
1096
1097<em id="v3_aside"><span id="rfc.iref.a.27"></span><span id="rfc.iref.v.1"></span># Side Note (see <a href="#v3.aside" title="aside Element">Section&nbsp;12.1</a>)</em>
1098<a href="#v3_aside" class="smpl">v3_aside</a> =
1099  element aside {
1100    attribute anchor { xsd:ID }?,
1101    t+
1102  }
1103
1104<em id="v3_bcp14"><span id="rfc.iref.b.2"></span><span id="rfc.iref.v.2"></span># BCP14/RFC2119 keywords (see <a href="#v3.bcp14" title="bcp14 Element">Section&nbsp;12.2</a>)</em>
1105<a href="#v3_bcp14" class="smpl">v3_bcp14</a> =
1106  element bcp14 {
1107    "MAY"
1108    | "MUST"
1109    | "MUST NOT"
1110    | "NOT RECOMMENDED"
1111    | "OPTIONAL"
1112    | "RECOMMENDED"
1113    | "REQUIRED"
1114    | "SHALL"
1115    | "SHALL NOT"
1116    | "SHOULD"
1117    | "SHOULD NOT"
1118  }
1119
1120<em id="v3_blockquote"><span id="rfc.iref.b.3"></span><span id="rfc.iref.v.3"></span># Blockquote (see <a href="#v3.blockquote" title="blockquote Element">Section&nbsp;12.3</a>)</em>
1121<a href="#v3_blockquote" class="smpl">v3_blockquote</a> =
1122  element blockquote {
1123    attribute anchor { xsd:ID }?,
1124    attribute cite { URI }?,
1125    t+
1126  }
1127
1128<em id="v3_boilerplate"><span id="rfc.iref.b.4"></span><span id="rfc.iref.v.4"></span># Boilerplate (see <a href="#v3.blockquote" title="blockquote Element">Section&nbsp;12.3</a>)</em>
1129<a href="#v3_boilerplate" class="smpl">v3_boilerplate</a> =
1130  element boilerplate {
1131    section+
1132  }
1133
1134<em id="v3_displayreference"><span id="rfc.iref.d.11"></span><span id="rfc.iref.v.5"></span># Mapping of reference names to display names (see <a href="#v3.displayreference" title="displayreference Element">Section&nbsp;12.5</a>)</em>
1135<a href="#v3_displayreference" class="smpl">v3_displayreference</a> =
1136  element displayreference {
1137    attribute target { xsd:IDREF },
1138    attribute to { ATEXT }
1139  }
1140
1141<em id="v3_dd"><span id="rfc.iref.d.12"></span><span id="rfc.iref.v.6"></span># Definition List Description Element (see <a href="#v3.dd" title="dd Element">Section&nbsp;12.6</a>)</em>
1142<a href="#v3_dd" class="smpl">v3_dd</a> =
1143  element dd {
1144    (t
1145      | <a href="#v3_dl" class="smpl">v3_dl</a>)+ |
1146    (TEXT
1147      | cref
1148      | eref
1149      | iref
1150      | xref
1151      | <a href="#v3_em" class="smpl">v3_em</a>
1152      | <a href="#v3_tt" class="smpl">v3_tt</a>
1153      | <a href="#v3_strong" class="smpl">v3_strong</a>)*
1154  }
1155
1156<em id="v3_dl"><span id="rfc.iref.d.13"></span><span id="rfc.iref.v.7"></span># Definition List (see <a href="#v3.dl" title="dl Element">Section&nbsp;12.7</a>)</em>
1157<a href="#v3_dl" class="smpl">v3_dl</a> =
1158  element dl {
1159       attribute spacing { "normal" | "compact" }?,
1160       attribute hanging { "false" | "true" }?,
1161       (<a href="#v3_dt" class="smpl">v3_dt</a>, <a href="#v3_dd" class="smpl">v3_dd</a>)+
1162  }
1163
1164<em id="v3_dt"><span id="rfc.iref.d.14"></span><span id="rfc.iref.v.8"></span># Definition List Description Term (see <a href="#v3.dt" title="dt Element">Section&nbsp;12.8</a>)</em>
1165<a href="#v3_dt" class="smpl">v3_dt</a> =
1166  element dt {
1167    attribute anchor { xsd:ID }?,
1168    (TEXT
1169      | cref
1170      | eref
1171      | iref
1172      | xref
1173      | <a href="#v3_em" class="smpl">v3_em</a>
1174      | <a href="#v3_tt" class="smpl">v3_tt</a>
1175      | <a href="#v3_strong" class="smpl">v3_strong</a>)*
1176  }
1177
1178<em id="v3_em"><span id="rfc.iref.e.2"></span><span id="rfc.iref.v.9"></span># Emphasized Text (see <a href="#v3.em" title="em Element">Section&nbsp;12.9</a>)</em>
1179<a href="#v3_em" class="smpl">v3_em</a> =
1180  element em {
1181    (TEXT
1182      | xref
1183      | <a href="#v3_strong" class="smpl">v3_strong</a>
1184      | <a href="#x_ref" class="smpl">x_ref</a>)*
1185  }
1186
1187<em id="v3_li"><span id="rfc.iref.l.2"></span><span id="rfc.iref.v.10"></span># Definition List (see <a href="#v3.li" title="li Element">Section&nbsp;12.10</a>)</em>
1188<a href="#v3_li" class="smpl">v3_li</a> =
1189  element li {
1190    attribute anchor { xsd:ID }?,
1191    ((<a href="#v3_dl" class="smpl">v3_dl</a> | <a href="#v3_ol" class="smpl">v3_ol</a>  | t | <a href="#v3_ul" class="smpl">v3_ul</a> )+
1192      |
1193    (TEXT
1194      | cref
1195      | eref
1196      | iref
1197      | xref
1198      | <a href="#v3_em" class="smpl">v3_em</a>
1199      | <a href="#v3_strong" class="smpl">v3_strong</a>
1200      | <a href="#v3_sub" class="smpl">v3_sub</a>
1201      | <a href="#v3_sup" class="smpl">v3_sup</a>
1202      | <a href="#v3_tt" class="smpl">v3_tt</a>
1203      | <a href="#x_ref" class="smpl">x_ref</a>)*
1204    )
1205  }
1206
1207<em id="v3_name"><span id="rfc.iref.n.3"></span><span id="rfc.iref.v.11"></span># Section/Figure/Table Name (see <a href="#v3.name" title="name Element">Section&nbsp;12.11</a>)</em>
1208<a href="#v3_name" class="smpl">v3_name</a> =
1209  element name {
1210    (TEXT
1211      | <a href="#v3_tt" class="smpl">v3_tt</a>
1212      | xref)*
1213  }
1214
1215<em id="v3_ol"><span id="rfc.iref.o.3"></span><span id="rfc.iref.v.12"></span># Ordered List (see <a href="#v3.ol" title="ol Element">Section&nbsp;12.12</a>)</em>
1216<a href="#v3_ol" class="smpl">v3_ol</a> =
1217  element ol {
1218    attribute anchor { xsd:ID }?,
1219    attribute start { TEXT }?,
1220    <a href="#v3_li" class="smpl">v3_li</a>+
1221  }
1222
1223<em id="v3_postalLine"><span id="rfc.iref.p.68"></span><span id="rfc.iref.v.13"></span># Line in postal address (see <a href="#v3.postalLine" title="postalLine Element">Section&nbsp;12.13</a>)</em>
1224<a href="#v3_postalLine" class="smpl">v3_postalLine</a> =
1225  element postalLine {
1226    TEXT
1227  }
1228
1229<em id="v3_refcontent"><span id="rfc.iref.r.23"></span><span id="rfc.iref.v.14"></span># additional content for references (see <a href="#v3.refcontent" title="refcontent Element">Section&nbsp;12.14</a>)</em>
1230<a href="#v3_refcontent" class="smpl">v3_refcontent</a> =
1231  element refcontent {
1232    (TEXT
1233      | <a href="#v3_em" class="smpl">v3_em</a>)*
1234  }
1235
1236<em id="v3_sourcecode"><span id="rfc.iref.s.12"></span><span id="rfc.iref.v.15"></span># Source Code (see <a href="#v3.sourcecode" title="sourcecode Element">Section&nbsp;12.15</a>)</em>
1237<a href="#v3_sourcecode" class="smpl">v3_sourcecode</a> =
1238  element sourcecode {
1239    attribute anchor { xsd:ID }?,
1240    attribute x:lang { "" }?,
1241    TEXT
1242  }
1243
1244<em id="v3_strong"><span id="rfc.iref.s.13"></span><span id="rfc.iref.v.16"></span># Emphasized Text (see <a href="#v3.strong" title="strong Element">Section&nbsp;12.18</a>)</em>
1245<a href="#v3_strong" class="smpl">v3_strong</a> =
1246  element strong {
1247    (TEXT
1248      | xref
1249      | <a href="#v3_em" class="smpl">v3_em</a>
1250      | <a href="#x_ref" class="smpl">x_ref</a>)*
1251  }
1252
1253<em id="v3_sub"><span id="rfc.iref.s.14"></span><span id="rfc.iref.v.17"></span># Subscript (see <a href="#v3.sub" title="sub Element">Section&nbsp;12.19</a>)</em>
1254<a href="#v3_sub" class="smpl">v3_sub</a> =
1255  element sub {
1256    (TEXT)*
1257  }
1258
1259<em id="v3_sup"><span id="rfc.iref.s.15"></span><span id="rfc.iref.v.18"></span># Superscript (see <a href="#v3.sup" title="sup Element">Section&nbsp;12.20</a>)</em>
1260<a href="#v3_sup" class="smpl">v3_sup</a> =
1261  element sup {
1262    (TEXT)*
1263  }
1264
1265<em id="v3_tt"><span id="rfc.iref.t.6"></span><span id="rfc.iref.v.19"></span># Monospaced Text (see <a href="#v3.tt" title="tt Element">Section&nbsp;12.22</a>)</em>
1266<a href="#v3_tt" class="smpl">v3_tt</a> =
1267  element tt {
1268    (TEXT
1269      | xref
1270      | <a href="#v3_em" class="smpl">v3_em</a>
1271      | <a href="#x_ref" class="smpl">x_ref</a>)*
1272  }
1273
1274<em id="v3_ul"><span id="rfc.iref.u.1"></span><span id="rfc.iref.v.20"></span># Unordered List (see <a href="#v3.ul" title="ul Element">Section&nbsp;12.23</a>)</em>
1275<a href="#v3_ul" class="smpl">v3_ul</a> =
1276  element ul {
1277    attribute anchor { xsd:ID }?,
1278    attribute empty { TEXT }?,
1279    <a href="#v3_li" class="smpl">v3_li</a>+
1280  }
1281
1282<em id="v3_svg"><span id="rfc.iref.s.16"></span><span id="rfc.iref.v.21"></span># SVG (see <a href="#v3.svg" title="svg Element">Section&nbsp;12.21</a>)</em>
1283<a href="#v3_svg" class="smpl">v3_svg</a> =
1284  element svg:svg {
1285    (attribute * { text }
1286        | text
1287        | anySVGElement)*
1288  }
1289
1290 anySVGElement =
1291    element svg:* {
1292       (attribute * { text }
1293        | text
1294        | anySVGElement)*
1295    }
1296     
1297<em id="x_abnf-char-sequence"><span id="rfc.iref.a.28"></span><span id="rfc.iref.e.3"></span># Conversion to ABNF char sequence (see <a href="#ext.element.abnf-char-sequence" title="<abnf-char-sequence&gt; element">Section&nbsp;11.1</a>)</em>
1298<a href="#x_abnf-char-sequence" class="smpl">x_abnf-char-sequence</a> =
1299  element x:abnf-char-sequence {
1300    TEXT
1301  }
1302
1303<em id="x_anchor-alias"><span id="rfc.iref.a.29"></span><span id="rfc.iref.e.4"></span># Aliasing of anchors (see <a href="#ext.element.anchor-alias" title="<anchor-alias&gt; element">Section&nbsp;11.2</a>)</em>
1304<a href="#x_anchor-alias" class="smpl">x_anchor-alias</a> =
1305  element x:anchor-alias {
1306    attribute value { TEXT },
1307    empty
1308  }
1309
1310<em id="x_feedback"><span id="rfc.iref.f.4"></span><span id="rfc.iref.e.5"></span># Supply feedback links (see <a href="#ext.element.feedback" title="<feedback&gt; element">Section&nbsp;11.9</a>)</em>
1311<a href="#x_feedback" class="smpl">x_feedback</a> =
1312  element x:feedback {
1313    attribute template { TEXT },
1314    empty
1315  }
1316
1317<em id="x_include-author"><span id="rfc.iref.i.16"></span><span id="rfc.iref.e.6"></span># Including Author information
1318# (experimental)</em>
1319<a href="#x_include-author" class="smpl">x_include-author</a> =
1320  element x:include-author {
1321    attribute target { xsd:IDREF }
1322  }
1323
1324<em id="x_assign-section-number"><span id="rfc.iref.a.30"></span><span id="rfc.iref.e.7"></span># Setting section numbers for internally generated sections
1325# (experimental)</em>
1326<a href="#x_assign-section-number" class="smpl">x_assign-section-number</a> =
1327  element x:assign-section-number {
1328    attribute builtin-target { "authors" },
1329    attribute number { TEXT },
1330    empty
1331  }
1332
1333<em id="x_bb"><span id="rfc.iref.b.5"></span><span id="rfc.iref.e.8"></span># Bottom line of box drawing (see <a href="#ext.element.bb" title="<bb&gt; element">Section&nbsp;11.4</a>)</em>
1334<a href="#x_bb" class="smpl">x_bb</a> =
1335  element x:bb {
1336    (TEXT
1337      | iref
1338      | xref
1339      | <a href="#x_bb" class="smpl">x_bb</a>
1340      | <a href="#x_bc" class="smpl">x_bc</a>
1341      | <a href="#x_bt" class="smpl">x_bt</a>
1342      | <a href="#x_ref" class="smpl">x_ref</a>)*
1343  }
1344
1345<em id="x_bc"><span id="rfc.iref.b.6"></span><span id="rfc.iref.e.9"></span># Center line of box drawing (see <a href="#ext.element.bc" title="<bc&gt; element">Section&nbsp;11.5</a>)</em>
1346<a href="#x_bc" class="smpl">x_bc</a> =
1347  element x:bc {
1348    (TEXT
1349      | iref
1350      | spanx
1351      | xref
1352      | <a href="#x_bb" class="smpl">x_bb</a>
1353      | <a href="#x_bc" class="smpl">x_bc</a>
1354      | <a href="#x_bt" class="smpl">x_bt</a>
1355      | <a href="#x_ref" class="smpl">x_ref</a>)*
1356  }
1357
1358<em id="x_bcp14"><span id="rfc.iref.b.7"></span><span id="rfc.iref.e.10"></span># BCP14/RFC2119 keywords (see <a href="#ext.element.bcp14" title="<bcp14&gt; element">Section&nbsp;11.3</a>)</em>
1359<a href="#x_bcp14" class="smpl">x_bcp14</a> =
1360  element x:bcp14 {
1361    "MAY"
1362    | "MUST"
1363    | "MUST NOT"
1364    | "NOT RECOMMENDED"
1365    | "OPTIONAL"
1366    | "RECOMMENDED"
1367    | "REQUIRED"
1368    | "SHALL"
1369    | "SHALL NOT"
1370    | "SHOULD"
1371    | "SHOULD NOT"
1372  }
1373 
1374<em id="x_blockquote"><span id="rfc.iref.b.8"></span><span id="rfc.iref.e.11"></span># Blockquote (see <a href="#ext.element.blockquote" title="<blockquote&gt; element">Section&nbsp;11.6</a>)</em>
1375<a href="#x_blockquote" class="smpl">x_blockquote</a> =
1376  element x:blockquote {
1377    attribute anchor { xsd:ID }?,
1378    attribute cite { URI }?,
1379    t+
1380  }
1381
1382<em id="x_bt"><span id="rfc.iref.b.9"></span><span id="rfc.iref.e.12"></span># Top line of box drawing (see <a href="#ext.element.bt" title="<bt&gt; element">Section&nbsp;11.7</a>)</em>
1383<a href="#x_bt" class="smpl">x_bt</a> =
1384  element x:bt {
1385    (TEXT
1386      | iref
1387      | xref
1388      | <a href="#x_bb" class="smpl">x_bb</a>
1389      | <a href="#x_bc" class="smpl">x_bc</a>
1390      | <a href="#x_bt" class="smpl">x_bt</a>
1391      | <a href="#x_ref" class="smpl">x_ref</a>)*
1392  }
1393
1394<em id="x_dfn"><span id="rfc.iref.d.15"></span><span id="rfc.iref.e.13"></span># Definition (see <a href="#ext.element.dfn" title="<dfn&gt; element">Section&nbsp;11.8</a>)</em>
1395<a href="#x_dfn" class="smpl">x_dfn</a> =
1396  element x:dfn {
1397    attribute anchor { xsd:ID }?,
1398    (TEXT
1399      | iref)*
1400  }
1401 
1402<em id="x_h"><span id="rfc.iref.h.13"></span><span id="rfc.iref.e.14"></span># Heading (see <a href="#ext.element.h" title="<h&gt; element">Section&nbsp;11.10</a>)</em>
1403<a href="#x_h" class="smpl">x_h</a> =
1404  element x:h {
1405    TEXT
1406  }
1407
1408<em id="x_highlight"><span id="rfc.iref.h.14"></span><span id="rfc.iref.e.15"></span># Heading (see <a href="#ext.element.highlight" title="<highlight&gt; element">Section&nbsp;11.11</a>)</em>
1409<a href="#x_highlight" class="smpl">x_highlight</a> =
1410  element x:highlight {
1411    TEXT
1412  }
1413
1414<em id="x_length-of"><span id="rfc.iref.l.3"></span><span id="rfc.iref.e.16"></span># Length Measurement (see <a href="#ext.element.length-of" title="<length-of&gt; element">Section&nbsp;11.12</a>)</em>
1415<a href="#x_length-of" class="smpl">x_length-of</a> =
1416  element x:length-of {
1417    attribute indented { NUMBER }?,
1418    attribute target { xsd:IDREF },
1419    empty
1420  }
1421
1422<em id="x_link"><span id="rfc.iref.l.4"></span><span id="rfc.iref.e.17"></span># Link (see <a href="#ext.element.link" title="<link&gt; element">Section&nbsp;11.13</a>)</em>
1423<a href="#x_link" class="smpl">x_link</a> =
1424  element x:link {
1425    attribute basename { URI }?,
1426    attribute href { URI }?,
1427    attribute title { TEXT }?,
1428    attribute rel { TEXT },
1429    empty
1430  }
1431 
1432<em id="x_lt"><span id="rfc.iref.l.5"></span><span id="rfc.iref.e.18"></span># Extended list item (see <a href="#ext.element.lt" title="<lt&gt; element">Section&nbsp;11.14</a>)</em>
1433<a href="#x_lt" class="smpl">x_lt</a> =
1434  element x:lt {
1435    attribute anchor { xsd:ID }?,
1436    attribute hangText { TEXT }?,
1437    t+
1438  }
1439
1440<em id="x_note"><span id="rfc.iref.n.4"></span><span id="rfc.iref.e.19"></span># Note (see <a href="#ext.element.note" title="<note&gt; element">Section&nbsp;11.15</a>)</em>
1441<a href="#x_note" class="smpl">x_note</a> =
1442  element x:note {
1443    attribute anchor { xsd:ID }?,
1444    t+
1445  }
1446
1447<em id="x_parse-xml"><span id="rfc.iref.p.69"></span><span id="rfc.iref.e.20"></span># Signal XML content (see <a href="#ext.element.parse-xml" title="<parse-xml&gt; element">Section&nbsp;11.16</a>)</em>
1448<a href="#x_parse-xml" class="smpl">x_parse-xml</a> =
1449  element x:parse-xml {
1450    (TEXT
1451      | xref)*
1452  }
1453
1454<em id="x_prose"><span id="rfc.iref.p.70"></span><span id="rfc.iref.e.21"></span># Inline prose in a reference (see <a href="#ext.element.prose" title="<prose&gt; element">Section&nbsp;11.17</a>)</em>
1455<a href="#x_prose" class="smpl">x_prose</a> =
1456  element x:prose {
1457    TEXT
1458  }
1459
1460<em id="x_q"><span id="rfc.iref.q.1"></span><span id="rfc.iref.e.22"></span># Inline quote (see <a href="#ext.element.q" title="<q&gt; element">Section&nbsp;11.18</a>)</em>
1461<a href="#x_q" class="smpl">x_q</a> =
1462  element x:q {
1463    TEXT
1464  }
1465
1466<em id="x_ref"><span id="rfc.iref.r.24"></span><span id="rfc.iref.e.23"></span># Anchor reference (see <a href="#ext.element.ref" title="<ref&gt; element">Section&nbsp;11.19</a>)</em> 
1467<a href="#x_ref" class="smpl">x_ref</a> =
1468  element x:ref {
1469    attribute anchor { xsd:ID }?,
1470    TEXT
1471  }
1472
1473<em id="x_source"><span id="rfc.iref.s.17"></span><span id="rfc.iref.e.24"></span># source information (see <a href="#ext.element.source" title="<source&gt; element">Section&nbsp;11.20</a>)</em> 
1474<a href="#x_source" class="smpl">x_source</a> =
1475  element x:source {
1476    attribute basename { ATEXT }?,
1477    attribute href { URI },
1478    empty
1479  }
1480
1481<em id="x_sup"><span id="rfc.iref.s.18"></span><span id="rfc.iref.e.25"></span># superscript (see <a href="#ext.element.sup" title="<sup&gt; element">Section&nbsp;11.21</a>)</em>
1482<a href="#x_sup" class="smpl">x_sup</a> =
1483  element x:sup {
1484    TEXT
1485  }
1486
1487<em id="x_span"><span id="rfc.iref.s.19"></span><span id="rfc.iref.e.26"></span># Inline Span </em>
1488<a href="#x_span" class="smpl">x_span</a> =
1489  element x:span {
1490    attribute anchor { xsd:ID }?,
1491    attribute x:lang { "" }?,
1492    (TEXT
1493      | <a href="#x_parse-xml" class="smpl">x_parse-xml</a>)*
1494  }
1495
1496<em id="x_x"><span id="rfc.iref.x.33"></span><span id="rfc.iref.e.27"></span># Nop (for alignment in source)</em>
1497<a href="#x_x" class="smpl">x_x</a> =
1498  element x:x {
1499    empty
1500  }
1501
1502<em id="xi_include"><span id="rfc.iref.x.34"></span><span id="rfc.iref.x.35"></span># XInclude</em>
1503<a href="#xi_include" class="smpl">xi_include</a> =
1504  element xi:include {
1505    attribute href { text },
1506    empty
1507  }
1508
1509<em id="rdf_Description"><span id="rfc.iref.r.25"></span><span id="rfc.iref.e.28"></span># Embed RDF statements </em>
1510<a href="#rdf_Description" class="smpl">rdf_Description</a> =
1511  element rdf:Description {
1512    rdf_content
1513  }
1514 
1515rdf_content =
1516  ( TEXT | element * { rdf_content })*
1517</pre></div></section><hr class="noprint"><section id="n-implementation-notes"><h2 id="rfc.section.B" class="np"><a href="#rfc.section.B">B.</a>&nbsp;<a href="#n-implementation-notes">Implementation Notes</a></h2><section id="artwork.types"><h3 id="rfc.section.B.1"><a href="#rfc.section.B.1">B.1</a>&nbsp;<a href="#artwork.types">Recognized type attributes for &lt;artwork&gt; element</a></h3><div id="rfc.section.B.1.p.1" class="avoidbreakafter"><p>Specific values in the &lt;artwork&gt; element's "type" attribute are recognized and cause a different visual style to be used:<a class="self" href="#rfc.section.B.1.p.1">&para;</a></p></div><div id="rfc.table.u.8"><table class="tt full tcenter"><thead><tr><th>Type</th><th>Comment</th></tr></thead><tbody><tr><td class="left">abnf</td><td class="left">ABNF as per <a href="#RFC5234" id="rfc.xref.RFC5234.1"><cite title="Augmented BNF for Syntax Specifications: ABNF">[RFC5234]</cite></a></td></tr><tr><td class="left">abnf2045</td><td class="left">ABNF as per <a href="#RFC2045" id="rfc.xref.RFC2045.1"><cite title="Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies">[RFC2045]</cite></a></td></tr><tr><td class="left">abnf2616</td><td class="left">ABNF as per <a href="#RFC2616" id="rfc.xref.RFC2616.1"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="https://tools.ietf.org/html/rfc2616#section-2.1">Section 2.1</a></td></tr><tr><td class="left">abnf7230</td><td class="left">ABNF as per <a href="#RFC7230" id="rfc.xref.RFC7230.1"><cite title="Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing">[RFC7230]</cite></a>, <a href="https://tools.ietf.org/html/rfc7230#section-1.2">Section 1.2</a></td></tr><tr><td class="left">application/relax-ng-compact-syntax</td><td class="left">Relax NG Compact Syntax as per <a href="#RNC" id="rfc.xref.RNC.2"><cite title="RELAX NG Compact Syntax">[RNC]</cite></a></td></tr><tr><td class="left">application/xml-dtd</td><td class="left">XML DTD</td></tr><tr><td class="left">code</td><td class="left">monospaced text (with outline)</td></tr><tr><td class="left">drawing</td><td class="left">drawing (with outline)</td></tr><tr><td class="left">example</td><td class="left">monospaced text (with outline)</td></tr><tr><td class="left">inline</td><td class="left">monospaced text (no outline)</td></tr><tr><td class="left">message/http; msgtype="request"</td><td class="left">HTTP message, as per <a href="#RFC2616" id="rfc.xref.RFC2616.2"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="https://tools.ietf.org/html/rfc2616#section-19.1">Section 19.1</a></td></tr><tr><td class="left">message/http; msgtype="response"</td><td class="left">HTTP message, as per <a href="#RFC2616" id="rfc.xref.RFC2616.3"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a>, <a href="https://tools.ietf.org/html/rfc2616#section-19.1">Section 19.1</a></td></tr></tbody></table></div></section></section><hr class="noprint"><section id="examples"><h2 id="rfc.section.C" class="np"><a href="#rfc.section.C">C.</a>&nbsp;<a href="#examples">Examples</a></h2><section id="examples.internalsubset"><h3 id="rfc.section.C.1"><a href="#rfc.section.C.1">C.1</a>&nbsp;<a href="#examples.internalsubset">Using the 'Internal Subset'</a></h3><div id="rfc.section.C.1.p.1" class="avoidbreakafter"><p>The prolog of the XML document can both be used to refer to an external DTD, and also to define internal entities (<a href="http://www.w3.org/TR/2008/REC-xml-20081126/#sec-prolog-dtd">Section 2.8</a> of <a href="#XML" id="rfc.xref.XML.1"><cite title="Extensible Markup Language (XML) 1.0 (Fifth Edition)">[XML]</cite></a>):<a class="self" href="#rfc.section.C.1.p.1">&para;</a></p></div><div id="rfc.figure.u.32"><pre class="text prettyprint">&lt;?xml version="1.0"?&gt;
1518&lt;?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?&gt;
1519
1520&lt;!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
1521
1522  &lt;!-- <em>use "&amp;MAY;" for a BCP 14 "MAY", see <a href="#ext.element.bcp14" title="<bcp14&gt; element">Section&nbsp;11.3</a></em> --&gt;
1523  &lt;!ENTITY MAY
1524  "&lt;bcp14 xmlns='http://purl.org/net/xml2rfc/ext'&gt;MAY&lt;/bcp14&gt;"&gt;
1525
1526  &lt;!-- <em>re-declare "&amp;nbsp;" as code point 160 (non-breaking space)</em> --&gt;
1527  &lt;!-- <em>you may need this for UAs that do not read external DTDs</em> --&gt;
1528  &lt;!ENTITY nbsp
1529  "&amp;#160;"&gt;
1530
1531  &lt;!-- <em>allow later RFC2616 reference using "&amp;rfc2616;"</em> --&gt;
1532  &lt;!-- <em>the data will be fetched from xml.resource.org</em> --&gt;
1533  &lt;!ENTITY rfc2616 SYSTEM
1534  "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml"&gt;
1535
1536  &lt;!-- <em>allow a custom reference using "&amp;mydraft;"</em> --&gt;
1537  &lt;!-- <em>the data will be fetched from the same location as the
1538       source file</em> --&gt;
1539  &lt;!ENTITY mydraft SYSTEM "reference.mydraft.xml"&gt;
1540]&gt;
1541</pre><p>Note: including entities from a remote site will not work in Firefox, see &lt;<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=22942">https://bugzilla.mozilla.org/show_bug.cgi?id=22942</a>&gt;.</p></div></section><section id="examples.customizing"><h3 id="rfc.section.C.2"><a href="#rfc.section.C.2">C.2</a>&nbsp;<a href="#examples.customizing">Customization</a></h3><div id="rfc.section.C.2.p.1"><p>The XSLT code can be customized by creating a custom XSLT file that uses &lt;xsl:import&gt; to include the original code, and just overrides particular rules.<a class="self" href="#rfc.section.C.2.p.1">&para;</a></p></div><div id="rfc.figure.u.33"><p>For instance, the code below overrides several attributes in <span class="tt">rfc2629toFO.xslt</span>, changing the color, spacing and font family for headers.</p><pre class="text prettyprint">&lt;xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
1542               version="1.0"&gt;
1543
1544  &lt;xsl:import href="rfc2629toFO.xslt"/&gt;
1545 
1546  &lt;xsl:attribute-set name="h1"&gt;
1547    &lt;xsl:attribute name="color"&gt;darkblue&lt;/xsl:attribute&gt;
1548    &lt;xsl:attribute name="font-family"&gt;sans-serif&lt;/xsl:attribute&gt;
1549    &lt;xsl:attribute name="space-before"&gt;24pt&lt;/xsl:attribute&gt;
1550  &lt;/xsl:attribute-set&gt;
1551 
1552  &lt;xsl:attribute-set name="h2"&gt;
1553    &lt;xsl:attribute name="color"&gt;darkblue&lt;/xsl:attribute&gt;
1554    &lt;xsl:attribute name="font-family"&gt;sans-serif&lt;/xsl:attribute&gt;
1555    &lt;xsl:attribute name="space-before"&gt;18pt&lt;/xsl:attribute&gt;
1556    &lt;xsl:attribute name="space-after"&gt;3pt&lt;/xsl:attribute&gt;
1557  &lt;/xsl:attribute-set&gt;
1558 
1559  &lt;xsl:attribute-set name="h3"&gt;
1560    &lt;xsl:attribute name="color"&gt;darkblue&lt;/xsl:attribute&gt;
1561    &lt;xsl:attribute name="font-family"&gt;sans-serif&lt;/xsl:attribute&gt;
1562    &lt;xsl:attribute name="space-before"&gt;16pt&lt;/xsl:attribute&gt;
1563    &lt;xsl:attribute name="space-after"&gt;2pt&lt;/xsl:attribute&gt;
1564  &lt;/xsl:attribute-set&gt;
1565
1566&lt;/xsl:transform&gt;
1567</pre></div><aside><div id="rfc.section.C.2.p.2"><p><b>Note:</b> the name for the attribute sets may change in the future as more working is done with respect to customizability. In any case, overriding the settings in a separate file will be easier to maintain. Please contact the author if you find yourself trying to override style definitions that currently do not use attribute sets.</p><p><b>Note:</b> the CSS style information used in <span class="tt">rfc2629.xslt</span> can be overriden in a similar (but less granular) way: just overwrite the template called "insertCss". As for XSL-FO, the class names may change in future.<a class="self" href="#rfc.section.C.2.p.2">&para;</a></p></div></aside></section></section><hr class="noprint"><section id="boilerplate"><h2 id="rfc.section.D" class="np"><a href="#rfc.section.D">D.</a>&nbsp;<a href="#boilerplate">Producing the IETF 'Boilerplate'</a></h2><div id="rfc.section.D.p.1"><p>Various attributes of the <span class="tt">&lt;rfc&gt;</span> element plus some child elements of <span class="tt">&lt;front&gt;</span> affect the automatically generated parts of the front page, such as the tabular information at the beginning, the "Status Of This Memo", and the "Copyright Notice".<a class="self" href="#rfc.section.D.p.1">&para;</a></p></div><div id="rfc.section.D.p.2"><p>When submitting an Internet Draft, this "boilerplate" is checked by "Idnits" (&lt;<a href="http://tools.ietf.org/tools/idnits/">http://tools.ietf.org/tools/idnits/</a>&gt;) for compliance with the current Intellectual Property rules, and thus it is important to set the correct values.<a class="self" href="#rfc.section.D.p.2">&para;</a></p></div><div id="rfc.section.D.p.3"><p>Furthermore, the RFC Production Center uses RFC2629-based tools to generate the final RFC text, so the more accurate the supplied information is, the less additional work is left, and the risk for errors in producing the final (and immutable!) document is reduced.<a class="self" href="#rfc.section.D.p.3">&para;</a></p></div><aside><div id="rfc.section.D.p.4"><p><b>Note:</b> this only applies to the case when IETF documents are produced. The "private" processing instruction <span id="rfc.iref.p.71"></span><span id="rfc.iref.p.72"></span> allows to switch off most of the autogeneration logic.<a class="self" href="#rfc.section.D.p.4">&para;</a></p></div></aside><div id="boiler.plate.attributes"><div id="rfc.section.D.p.5"><p>              The individual attributes on the <span class="tt">&lt;rfc&gt;</span> element are discussed in detail in <a href="rfc7749.html#front.page" title="Front-Page (&#34;Boilerplate&#34;) Generation">Appendix A</a> of <a href="#RFC7749" id="rfc.xref.RFC7749.2"><cite title="The &#34;xml2rfc&#34; Version 2 Vocabulary">[RFC7749]</cite></a>.<a class="self" href="#rfc.section.D.p.5">&para;</a></p></div></div></section><hr class="noprint"><section id="license"><h2 id="rfc.section.E" class="np"><a href="#rfc.section.E">E.</a>&nbsp;<a href="#license">License</a></h2><div id="rfc.section.E.p.1"><p>Copyright (c) 2006-2016, Julian Reschke (julian.reschke@greenbytes.de)<a class="self" href="#rfc.section.E.p.1">&para;</a></p></div><div id="rfc.section.E.p.2"><p>All rights reserved.<a class="self" href="#rfc.section.E.p.2">&para;</a></p></div><div id="rfc.section.E.p.3"><p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: <a class="self" href="#rfc.section.E.p.3">&para;</a></p><ul><li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li><li>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.</li><li>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.</li></ul></div><div id="rfc.section.E.p.4"><p>THIS 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.<a class="self" href="#rfc.section.E.p.4">&para;</a></p></div></section><hr class="noprint"><section id="rfc.index" class="np"><h2><a href="#rfc.index">Index</a></h2><p class="noprint"><a href="#rfc.index.A">A</a> <a href="#rfc.index.B">B</a> <a href="#rfc.index.C">C</a> <a href="#rfc.index.D">D</a> <a href="#rfc.index.E">E</a> <a href="#rfc.index.F">F</a> <a href="#rfc.index.G">G</a> <a href="#rfc.index.H">H</a> <a href="#rfc.index.I">I</a> <a href="#rfc.index.J">J</a> <a href="#rfc.index.K">K</a> <a href="#rfc.index.L">L</a> <a href="#rfc.index.M">M</a> <a href="#rfc.index.N">N</a> <a href="#rfc.index.O">O</a> <a href="#rfc.index.P">P</a> <a href="#rfc.index.Q">Q</a> <a href="#rfc.index.R">R</a> <a href="#rfc.index.S">S</a> <a href="#rfc.index.T">T</a> <a href="#rfc.index.U">U</a> <a href="#rfc.index.V">V</a> <a href="#rfc.index.X">X</a> </p><div class="print2col"><ul class="ind"><li><a id="rfc.index.A" href="#rfc.index.A"><b>A</b></a><ul><li>abnf-char-sequence Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.1"><b>11.1</b></a>, <a href="#rfc.iref.a.28">A</a></li><li>allow-markup-in-artwork PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.a.1">3.3</a></li><li>alternate HTML LINK element&nbsp;&nbsp;<a href="#rfc.iref.a.22">6.2</a></li><li>anchor-alias Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.2"><b>11.2</b></a>, <a href="#rfc.iref.a.29">A</a></li><li>Anchors&nbsp;&nbsp;<ul><li>rfc.abstract&nbsp;&nbsp;<a href="#rfc.iref.a.3">4</a></li><li>rfc.authors&nbsp;&nbsp;<a href="#rfc.iref.a.4">4</a></li><li>rfc.copyright&nbsp;&nbsp;<a href="#rfc.iref.a.5">4</a></li><li>rfc.copyrightnotice&nbsp;&nbsp;<a href="#rfc.iref.a.6">4</a></li><li>rfc.figure.n&nbsp;&nbsp;<a href="#rfc.iref.a.7">4</a>, <a href="#rfc.iref.a.18">4</a></li><li>rfc.figure.u.n&nbsp;&nbsp;<a href="#rfc.iref.a.8">4</a>, <a href="#rfc.iref.a.19">4</a></li><li>rfc.index&nbsp;&nbsp;<a href="#rfc.iref.a.9">4</a></li><li>rfc.ipr&nbsp;&nbsp;<a href="#rfc.iref.a.10">4</a></li><li>rfc.iref.n&nbsp;&nbsp;<a href="#rfc.iref.a.11">4</a></li><li>rfc.note.n&nbsp;&nbsp;<a href="#rfc.iref.a.12">4</a></li><li>rfc.references&nbsp;&nbsp;<a href="#rfc.iref.a.13">4</a>, <a href="#rfc.iref.a.14">4</a></li><li>rfc.section.n&nbsp;&nbsp;<a href="#rfc.iref.a.15">4</a></li><li>rfc.section.n.p.m&nbsp;&nbsp;<a href="#rfc.iref.a.16">4</a></li><li>rfc.status&nbsp;&nbsp;<a href="#rfc.iref.a.17">4</a></li><li>rfc.toc&nbsp;&nbsp;<a href="#rfc.iref.a.20">4</a></li><li>rfc.xref.name.n&nbsp;&nbsp;<a href="#rfc.iref.a.21">4</a></li></ul></li><li>AntennaHouse XSL Formatter&nbsp;&nbsp;<a href="#rfc.iref.a.26">9.1</a></li><li>Apache FOP&nbsp;&nbsp;<a href="#rfc.iref.a.25">9.1</a></li><li>appendix HTML LINK element&nbsp;&nbsp;<a href="#rfc.iref.a.23">6.2</a></li><li>aside V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.1"><b>12.1</b></a>, <a href="#rfc.iref.a.27">A</a></li><li>assign-section-number Extension Element&nbsp;&nbsp;<a href="#rfc.iref.a.30">A</a></li><li>author HTML LINK element&nbsp;&nbsp;<a href="#rfc.iref.a.24">6.2</a></li><li>authors-section PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.a.2">3.3</a></li></ul></li><li><a id="rfc.index.B" href="#rfc.index.B"><b>B</b></a><ul><li>background PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.b.1">3.1</a></li><li>bb Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.4"><b>11.4</b></a>, <a href="#rfc.iref.b.5">A</a></li><li>bc Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.5"><b>11.5</b></a>, <a href="#rfc.iref.b.6">A</a></li><li>bcp14 Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.3"><b>11.3</b></a>, <a href="#rfc.iref.b.7">A</a></li><li>bcp14 V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.2"><b>12.2</b></a>, <a href="#rfc.iref.b.2">A</a></li><li><em>BCP97</em>&nbsp;&nbsp;<a href="#rfc.xref.BCP97.1">13.1</a>, <a href="#BCP97"><b>14</b></a></li><li>blockquote Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.6"><b>11.6</b></a>, <a href="#rfc.iref.b.8">A</a></li><li>blockquote V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.3"><b>12.3</b></a>, <a href="#rfc.iref.b.3">A</a></li><li>boilerplate V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.4"><b>12.4</b></a>, <a href="#rfc.iref.b.4">A</a></li><li>bt Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.7"><b>11.7</b></a>, <a href="#rfc.iref.b.9">A</a></li></ul></li><li><a id="rfc.index.C" href="#rfc.index.C"><b>C</b></a><ul><li>chapter HTML LINK element&nbsp;&nbsp;<a href="#rfc.iref.c.3">6.2</a></li><li>CHM format&nbsp;&nbsp;<a href="#rfc.iref.c.7">8</a></li><li>comments PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.c.2">3.1</a></li><li>compact PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.c.1">3.1</a></li><li>contents HTML LINK element&nbsp;&nbsp;<a href="#rfc.iref.c.4">6.2</a></li><li>copyright HTML LINK element&nbsp;&nbsp;<a href="#rfc.iref.c.5">6.2</a></li><li>Creator DCMI property&nbsp;&nbsp;<a href="#rfc.iref.c.6">6.4</a></li></ul></li><li><a id="rfc.index.D" href="#rfc.index.D"><b>D</b></a><ul><li>Date.Issued DCMI property&nbsp;&nbsp;<a href="#rfc.iref.d.4">6.4</a></li><li><em>DC-HTML</em>&nbsp;&nbsp;<a href="#rfc.xref.DC-HTML.1">6.4</a>, <a href="#DC-HTML"><b>14</b></a></li><li>DCMI properties&nbsp;&nbsp;<ul><li>Creator&nbsp;&nbsp;<a href="#rfc.iref.d.3">6.4</a></li><li>Date.Issued&nbsp;&nbsp;<a href="#rfc.iref.d.5">6.4</a></li><li>Description.Abstract&nbsp;&nbsp;<a href="#rfc.iref.d.7">6.4</a></li><li>Identifier&nbsp;&nbsp;<a href="#rfc.iref.d.8">6.4</a></li><li>isPartOf&nbsp;&nbsp;<a href="#rfc.iref.d.9">6.4</a></li><li>Relation.Replaces&nbsp;&nbsp;<a href="#rfc.iref.d.10">6.4</a></li></ul></li><li>dd V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.6"><b>12.6</b></a>, <a href="#rfc.iref.d.12">A</a></li><li>Description.Abstract DCMI property&nbsp;&nbsp;<a href="#rfc.iref.d.6">6.4</a></li><li>dfn Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.8"><b>11.8</b></a>, <a href="#rfc.iref.d.15">A</a></li><li>displayreference V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.5"><b>12.5</b></a>, <a href="#rfc.iref.d.11">A</a></li><li>dl V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.7"><b>12.7</b></a>, <a href="#rfc.iref.d.13">A</a></li><li>docmapping PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.d.1">3.1</a></li><li>dt V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.8"><b>12.8</b></a>, <a href="#rfc.iref.d.14">A</a></li><li>duplex PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.d.2">3.3</a></li></ul></li><li><a id="rfc.index.E" href="#rfc.index.E"><b>E</b></a><ul><li>editing PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.e.1">3.1</a></li><li>em V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.9"><b>12.9</b></a>, <a href="#rfc.iref.e.2">A</a></li><li>Extension Elements&nbsp;&nbsp;<ul><li>abnf-char-sequence&nbsp;&nbsp;<a href="#rfc.section.11.1"><b>11.1</b></a>, <a href="#rfc.iref.e.3">A</a></li><li>anchor-alias&nbsp;&nbsp;<a href="#rfc.section.11.2"><b>11.2</b></a>, <a href="#rfc.iref.e.4">A</a></li><li>assign-section-number&nbsp;&nbsp;<a href="#rfc.iref.e.7">A</a></li><li>bb&nbsp;&nbsp;<a href="#rfc.section.11.4"><b>11.4</b></a>, <a href="#rfc.iref.e.8">A</a></li><li>bc&nbsp;&nbsp;<a href="#rfc.section.11.5"><b>11.5</b></a>, <a href="#rfc.iref.e.9">A</a></li><li>bcp14&nbsp;&nbsp;<a href="#rfc.section.11.3"><b>11.3</b></a>, <a href="#rfc.iref.e.10">A</a></li><li>blockquote&nbsp;&nbsp;<a href="#rfc.section.11.6"><b>11.6</b></a>, <a href="#rfc.iref.e.11">A</a></li><li>bt&nbsp;&nbsp;<a href="#rfc.section.11.7"><b>11.7</b></a>, <a href="#rfc.iref.e.12">A</a></li><li>dfn&nbsp;&nbsp;<a href="#rfc.section.11.8"><b>11.8</b></a>, <a href="#rfc.iref.e.13">A</a></li><li>feedback&nbsp;&nbsp;<a href="#rfc.section.11.9"><b>11.9</b></a>, <a href="#rfc.iref.e.5">A</a></li><li>h&nbsp;&nbsp;<a href="#rfc.section.11.10"><b>11.10</b></a>, <a href="#rfc.iref.e.14">A</a></li><li>highlight&nbsp;&nbsp;<a href="#rfc.section.11.11"><b>11.11</b></a>, <a href="#rfc.iref.e.15">A</a></li><li>include-author&nbsp;&nbsp;<a href="#rfc.iref.e.6">A</a></li><li>length-of&nbsp;&nbsp;<a href="#rfc.section.11.12"><b>11.12</b></a>, <a href="#rfc.iref.e.16">A</a></li><li>link&nbsp;&nbsp;<a href="#rfc.section.11.13"><b>11.13</b></a>, <a href="#rfc.iref.e.17">A</a></li><li>lt&nbsp;&nbsp;<a href="#rfc.section.11.14"><b>11.14</b></a>, <a href="#rfc.iref.e.18">A</a></li><li>note&nbsp;&nbsp;<a href="#rfc.section.11.15"><b>11.15</b></a>, <a href="#rfc.iref.e.19">A</a></li><li>parse-xml&nbsp;&nbsp;<a href="#rfc.section.11.16"><b>11.16</b></a>, <a href="#rfc.iref.e.20">A</a></li><li>prose&nbsp;&nbsp;<a href="#rfc.section.11.17"><b>11.17</b></a>, <a href="#rfc.iref.e.21">A</a></li><li>q&nbsp;&nbsp;<a href="#rfc.section.11.18"><b>11.18</b></a>, <a href="#rfc.iref.e.22">A</a></li><li>rdf:Description&nbsp;&nbsp;<a href="#rfc.iref.e.28">A</a></li><li>ref&nbsp;&nbsp;<a href="#rfc.section.11.19"><b>11.19</b></a>, <a href="#rfc.iref.e.23">A</a></li><li>source&nbsp;&nbsp;<a href="#rfc.section.11.20"><b>11.20</b></a>, <a href="#rfc.iref.e.24">A</a></li><li>span&nbsp;&nbsp;<a href="#rfc.iref.e.26">A</a></li><li>sup&nbsp;&nbsp;<a href="#rfc.section.11.21"><b>11.21</b></a>, <a href="#rfc.iref.e.25">A</a></li><li>x&nbsp;&nbsp;<a href="#rfc.iref.e.27">A</a></li></ul></li></ul></li><li><a id="rfc.index.F" href="#rfc.index.F"><b>F</b></a><ul><li>feedback Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.9"><b>11.9</b></a>, <a href="#rfc.iref.f.4">A</a></li><li>Firefox&nbsp;&nbsp;<ul><li>1.*/2.*&nbsp;&nbsp;<a href="#rfc.iref.f.3">5.2</a></li><li>3.*&nbsp;&nbsp;<a href="#rfc.iref.f.2">5.2</a></li></ul></li><li>footer PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.f.1">3.1</a></li></ul></li><li><a id="rfc.index.G" href="#rfc.index.G"><b>G</b></a><ul><li>generator HTML META element&nbsp;&nbsp;<a href="#rfc.iref.g.2">6.3</a></li><li>Google Chrome&nbsp;&nbsp;<a href="#rfc.iref.g.1">5.2</a></li><li>Grammar&nbsp;&nbsp;<a href="#rfc.section.A"><b>A</b></a></li></ul></li><li><a id="rfc.index.H" href="#rfc.index.H"><b>H</b></a><ul><li>h Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.10"><b>11.10</b></a>, <a href="#rfc.iref.h.13">A</a></li><li>header PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.h.1">3.1</a></li><li>highlight Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.11"><b>11.11</b></a>, <a href="#rfc.iref.h.14">A</a></li><li>HTML compliance&nbsp;&nbsp;<a href="#rfc.iref.h.3">6.1</a></li><li>HTML LINK elements&nbsp;&nbsp;<ul><li>alternate&nbsp;&nbsp;<a href="#rfc.iref.h.4">6.2</a></li><li>appendix&nbsp;&nbsp;<a href="#rfc.iref.h.5">6.2</a></li><li>author&nbsp;&nbsp;<a href="#rfc.iref.h.6">6.2</a></li><li>chapter&nbsp;&nbsp;<a href="#rfc.iref.h.7">6.2</a></li><li>contents&nbsp;&nbsp;<a href="#rfc.iref.h.8">6.2</a></li><li>copyright&nbsp;&nbsp;<a href="#rfc.iref.h.9">6.2</a></li><li>index&nbsp;&nbsp;<a href="#rfc.iref.h.10">6.2</a></li></ul></li><li>HTML META elements&nbsp;&nbsp;<ul><li>generator&nbsp;&nbsp;<a href="#rfc.iref.h.11">6.3</a></li><li>keywords&nbsp;&nbsp;<a href="#rfc.iref.h.12">6.3</a></li></ul></li><li>html-pretty-print PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.h.2">3.3</a></li><li><em>HTML5</em>&nbsp;&nbsp;<a href="#rfc.xref.HTML5.1">6.1</a>, <a href="#rfc.xref.HTML5.2">6.1</a>, <a href="#rfc.xref.HTML5.3">11.6</a>, <a href="#rfc.xref.HTML5.4">11.8</a>, <a href="#rfc.xref.HTML5.5">11.18</a>, <a href="#rfc.xref.HTML5.6">11.21</a>, <a href="#HTML5"><b>14</b></a><ul><li><em>Section 4.4.4</em>&nbsp;&nbsp;<a href="#rfc.xref.HTML5.3">11.6</a></li><li><em>Section 4.5.16</em>&nbsp;&nbsp;<a href="#rfc.xref.HTML5.6">11.21</a></li><li><em>Section 4.5.7</em>&nbsp;&nbsp;<a href="#rfc.xref.HTML5.5">11.18</a></li><li><em>Section 4.5.8</em>&nbsp;&nbsp;<a href="#rfc.xref.HTML5.4">11.8</a></li><li><em>Section 8.1.1</em>&nbsp;&nbsp;<a href="#rfc.xref.HTML5.2">6.1</a></li></ul></li></ul></li><li><a id="rfc.index.I" href="#rfc.index.I"><b>I</b></a><ul><li>Identifier DCMI property&nbsp;&nbsp;<a href="#rfc.iref.i.13">6.4</a></li><li>include PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.i.1">3.1</a>, <a href="#rfc.iref.i.15">13.8</a></li><li>include-author Extension Element&nbsp;&nbsp;<a href="#rfc.iref.i.16">A</a></li><li>include-index PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.i.4">3.3</a></li><li>include-references-in-index PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.i.5">3.3</a></li><li>index HTML LINK element&nbsp;&nbsp;<a href="#rfc.iref.i.12">6.2</a></li><li>inline PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.i.2">3.1</a></li><li>insert-metadata PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.i.6">3.3</a></li><li>Internet Explorer 5.5&nbsp;&nbsp;<a href="#rfc.iref.i.7">5.2</a></li><li>Internet Explorer 6&nbsp;&nbsp;<a href="#rfc.iref.i.8">5.2</a></li><li>Internet Explorer 7&nbsp;&nbsp;<a href="#rfc.iref.i.9">5.2</a></li><li>Internet Explorer 8&nbsp;&nbsp;<a href="#rfc.iref.i.10">5.2</a></li><li>Internet Explorer 9&nbsp;&nbsp;<a href="#rfc.iref.i.11">5.2</a></li><li>iprnotified PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.i.3">3.1</a></li><li>isPartOf DCMI property&nbsp;&nbsp;<a href="#rfc.iref.i.14">6.4</a></li></ul></li><li><a id="rfc.index.J" href="#rfc.index.J"><b>J</b></a><ul><li>justification PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.j.1">3.3</a></li></ul></li><li><a id="rfc.index.K" href="#rfc.index.K"><b>K</b></a><ul><li>keywords HTML META element&nbsp;&nbsp;<a href="#rfc.iref.k.1">6.3</a></li></ul></li><li><a id="rfc.index.L" href="#rfc.index.L"><b>L</b></a><ul><li>length-of Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.12"><b>11.12</b></a>, <a href="#rfc.iref.l.3">A</a></li><li>li V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.10"><b>12.10</b></a>, <a href="#rfc.iref.l.2">A</a></li><li>link Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.13"><b>11.13</b></a>, <a href="#rfc.iref.l.4">A</a></li><li>linkmailto PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.l.1">3.1</a></li><li>lt Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.14"><b>11.14</b></a>, <a href="#rfc.iref.l.5">A</a></li></ul></li><li><a id="rfc.index.M" href="#rfc.index.M"><b>M</b></a><ul><li>Microsoft Help&nbsp;&nbsp;<a href="#rfc.iref.m.5">8</a></li><li>Mozilla&nbsp;&nbsp;<a href="#rfc.iref.m.3">5.2</a>, <a href="#rfc.iref.m.4">5.2</a></li><li>MSXML3&nbsp;&nbsp;<a href="#rfc.iref.m.1">5.1</a></li><li>MSXML4&nbsp;&nbsp;<a href="#rfc.iref.m.2">5.1</a></li></ul></li><li><a id="rfc.index.N" href="#rfc.index.N"><b>N</b></a><ul><li>name V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.11"><b>12.11</b></a>, <a href="#rfc.iref.n.3">A</a></li><li>needLines PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.n.1">3.2</a></li><li>NoScript&nbsp;&nbsp;<a href="#rfc.iref.n.2">5.2</a></li><li>note Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.15"><b>11.15</b></a>, <a href="#rfc.iref.n.4">A</a></li></ul></li><li><a id="rfc.index.O" href="#rfc.index.O"><b>O</b></a><ul><li>ol V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.12"><b>12.12</b></a>, <a href="#rfc.iref.o.3">A</a></li><li>Opera&nbsp;&nbsp;<a href="#rfc.iref.o.1">5.2</a>, <a href="#rfc.iref.o.2">5.2</a></li></ul></li><li><a id="rfc.index.P" href="#rfc.index.P"><b>P</b></a><ul><li>Parameters&nbsp;&nbsp;<ul><li>xml2rfc-background&nbsp;&nbsp;<a href="#rfc.iref.p.2">3.1</a></li><li>xml2rfc-comments&nbsp;&nbsp;<a href="#rfc.iref.p.6">3.1</a></li><li>xml2rfc-compact&nbsp;&nbsp;<a href="#rfc.iref.p.4">3.1</a></li><li>xml2rfc-editing&nbsp;&nbsp;<a href="#rfc.iref.p.9">3.1</a></li><li>xml2rfc-ext-allow-markup-in-artwork&nbsp;&nbsp;<a href="#rfc.iref.p.45">3.3</a></li><li>xml2rfc-ext-authors-section&nbsp;&nbsp;<a href="#rfc.iref.p.47">3.3</a></li><li>xml2rfc-ext-duplex&nbsp;&nbsp;<a href="#rfc.iref.p.49">3.3</a></li><li>xml2rfc-ext-html-pretty-print&nbsp;&nbsp;<a href="#rfc.iref.p.51">3.3</a></li><li>xml2rfc-ext-include-index&nbsp;&nbsp;<a href="#rfc.iref.p.53">3.3</a></li><li>xml2rfc-ext-include-references-in-index&nbsp;&nbsp;<a href="#rfc.iref.p.55">3.3</a></li><li>xml2rfc-ext-insert-metadata&nbsp;&nbsp;<a href="#rfc.iref.p.57">3.3</a></li><li>xml2rfc-ext-justification&nbsp;&nbsp;<a href="#rfc.iref.p.59">3.3</a></li><li>xml2rfc-ext-parse-xml-in-artwork&nbsp;&nbsp;<a href="#rfc.iref.p.62">3.3</a></li><li>xml2rfc-ext-sec-no-trailing-dots&nbsp;&nbsp;<a href="#rfc.iref.p.64">3.3</a></li><li>xml2rfc-ext-support-rfc2731&nbsp;&nbsp;<a href="#rfc.iref.p.66">3.3</a></li><li>xml2rfc-footer&nbsp;&nbsp;<a href="#rfc.iref.p.11">3.1</a></li><li>xml2rfc-header&nbsp;&nbsp;<a href="#rfc.iref.p.13">3.1</a></li><li>xml2rfc-inline&nbsp;&nbsp;<a href="#rfc.iref.p.16">3.1</a></li><li>xml2rfc-iprnotified&nbsp;&nbsp;<a href="#rfc.iref.p.18">3.1</a></li><li>xml2rfc-linkmailto&nbsp;&nbsp;<a href="#rfc.iref.p.20">3.1</a></li><li>xml2rfc-private&nbsp;&nbsp;<a href="#rfc.iref.p.23">3.1</a></li><li>xml2rfc-refparent&nbsp;&nbsp;<a href="#rfc.iref.p.25">3.1</a></li><li>xml2rfc-rfcedstyle&nbsp;&nbsp;<a href="#rfc.iref.p.27">3.1</a></li><li>xml2rfc-sortrefs&nbsp;&nbsp;<a href="#rfc.iref.p.29">3.1</a></li><li>xml2rfc-symrefs&nbsp;&nbsp;<a href="#rfc.iref.p.31">3.1</a></li><li>xml2rfc-toc&nbsp;&nbsp;<a href="#rfc.iref.p.33">3.1</a></li><li>xml2rfc-tocdepth&nbsp;&nbsp;<a href="#rfc.iref.p.35">3.1</a></li><li>xml2rfc-topblock&nbsp;&nbsp;<a href="#rfc.iref.p.37">3.1</a></li></ul></li><li>parse-xml Extension Element&nbsp;&nbsp;<a href="#rfc.section.11.16"><b>11.16</b></a>, <a href="#rfc.iref.p.69">A</a></li><li>parse-xml-in-artwork PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.p.60">3.3</a></li><li>postalLine V3 Extension Element&nbsp;&nbsp;<a href="#rfc.section.12.13"><b>12.13</b></a>, <a href="#rfc.iref.p.68">A</a></li><li>private PI pseudo-attribute&nbsp;&nbsp;<a href="#rfc.iref.p.21">3.1</a>, <a href="#rfc.iref.p.71">D</a></li><li>Processing Instruction pseudo attributes&nbsp;&nbsp;<ul><li>allow-markup-in-artwork&nbsp;&nbsp;<a href="#rfc.iref.p.44">3.3</a></li><li>authors-section&nbsp;&nbsp;<a href="#rfc.iref.p.46">3.3</a></li><li>background&nbsp;&nbsp;<a href="#rfc.iref.p.1">3.1</a></li><li>comments&nbsp;&nbsp;<a href="#rfc.iref.p.5">3.1</a></li><li>compact&nbsp;&nbsp;<a href="#rfc.iref.p.3">3.1</a></li><li>docmapping&nbsp;&nbsp;<a href="#rfc.iref.p.7">3.1</a></li><li>duplex&nbsp;&nbsp;<a href="#rfc.iref.p.48">3.3</a></li><li>editing&nbsp;&nbsp;<a href="#rfc.iref.p.8">3.1</a></li><li>footer&nbsp;&nbsp;<a href="#rfc.iref.p.10">3.1</a></li><li>header&nbsp;&nbsp;<a href="#rfc.iref.p.12">3.1</a></li><li>html-pretty-print&nbsp;&nbsp;<a href="#rfc.iref.p.50">3.3</a></li><li>include&nbsp;&nbsp;<a href="#rfc.iref.p.14">3.1</a>, <a href="#rfc.iref.p.67">13.8</a></li><li>include-index&nbsp;&nbsp;<a href="#rfc.iref.p.52">3.3</a></li><li>include-references-in-index&nbsp;&nbsp;<a href="#rfc.iref.p.54">3.3</a></li><li>inline&nbsp;&nbsp;<a href="#rfc.iref.p.15">3.1</a></li><li>insert-metadata&nbsp;&nbsp;<a href="#rfc.iref.p.56">3.3</a></li><li>iprnotified&nbsp;&nbsp;<a href="#rfc.iref.p.17">3.1</a></li><li>justification&nbsp;&nbsp;<a href="#rfc.iref.p.58">3.3</a></li><li>linkmailto&nbsp;&nbsp;<a href="#rfc.iref.p.19">3.1</a></li><li>needLines&nbsp;&nbsp;<a href="#rfc.iref.p.38">3.2</a></li><li>parse-xml-in-artwork&nbsp;&nbsp;<a href="#rfc.iref.p.61">3.3</a></li><li>private&nbsp;&nbsp;<a href="#rfc.iref.p.22">3.1</a>, <a href="#rfc.iref.p.72">D</a></li><li>refparent&