source: rfc2629xslt/rfc2629xslt.txt

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: 115.0 KB
Line 
1
2
3
4RFC2629 through XSLT                                          J. Reschke
5                                                              greenbytes
6                                                          March 15, 2016
7
8
9            Transforming RFC2629-formatted XML through XSLT
10
11
12
13Table of Contents
14
15   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
16   2.  Supported RFC2629 elements . . . . . . . . . . . . . . . . . .  5
17     2.1.   Extension elements  . . . . . . . . . . . . . . . . . . .  5
18   3.  Processing Instructions  . . . . . . . . . . . . . . . . . . .  6
19     3.1.   Supported xml2rfc-compatible PIs  . . . . . . . . . . . .  7
20     3.2.   Unsupported xml2rfc-compatible PIs  . . . . . . . . . . .  9
21     3.3.   Extension PIs . . . . . . . . . . . . . . . . . . . . . . 10
22   4.  Anchors  . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
23   5.  Supported XSLT engines . . . . . . . . . . . . . . . . . . . . 14
24     5.1.   Standalone Engines  . . . . . . . . . . . . . . . . . . . 14
25     5.2.   In-Browser Engines  . . . . . . . . . . . . . . . . . . . 14
26   6.  Transforming to HTML . . . . . . . . . . . . . . . . . . . . . 16
27     6.1.   HTML compliance . . . . . . . . . . . . . . . . . . . . . 16
28     6.2.   Standard HTML LINK elements . . . . . . . . . . . . . . . 17
29     6.3.   Standard HTML metadata  . . . . . . . . . . . . . . . . . 18
30     6.4.   Dublin Core (RFC2731) metadata  . . . . . . . . . . . . . 18
31   7.  Transforming to XHTML  . . . . . . . . . . . . . . . . . . . . 20
32   8.  Transforming to CHM (Microsoft Compiled Help)  . . . . . . . . 21
33   9.  Transforming to PDF  . . . . . . . . . . . . . . . . . . . . . 22
34     9.1.   Via XSL-FO  . . . . . . . . . . . . . . . . . . . . . . . 22
35       9.1.1.   Example: producing output for Apache FOP  . . . . . . 22
36     9.2.   Via HTML  . . . . . . . . . . . . . . . . . . . . . . . . 22
37   10. Transforming to ePub . . . . . . . . . . . . . . . . . . . . . 23
38   11. Generic Extensions . . . . . . . . . . . . . . . . . . . . . . 24
39     11.1.  <abnf-char-sequence> element  . . . . . . . . . . . . . . 24
40     11.2.  <anchor-alias> element  . . . . . . . . . . . . . . . . . 24
41     11.3.  <bcp14> element . . . . . . . . . . . . . . . . . . . . . 24
42     11.4.  <bb> element  . . . . . . . . . . . . . . . . . . . . . . 25
43     11.5.  <bc> element  . . . . . . . . . . . . . . . . . . . . . . 25
44     11.6.  <blockquote> element  . . . . . . . . . . . . . . . . . . 25
45     11.7.  <bt> element  . . . . . . . . . . . . . . . . . . . . . . 25
46     11.8.  <dfn> element . . . . . . . . . . . . . . . . . . . . . . 26
47     11.9.  <feedback> element  . . . . . . . . . . . . . . . . . . . 26
48     11.10. <h> element . . . . . . . . . . . . . . . . . . . . . . . 26
49     11.11. <highlight> element . . . . . . . . . . . . . . . . . . . 26
50     11.12. <length-of> element . . . . . . . . . . . . . . . . . . . 26
51     11.13. <link> element  . . . . . . . . . . . . . . . . . . . . . 27
52
53
54
55Reschke                                                         [Page 1]
56
57Documentation             RFC2629 through XSLT                March 2016
58
59
60     11.14. <lt> element  . . . . . . . . . . . . . . . . . . . . . . 27
61     11.15. <note> element  . . . . . . . . . . . . . . . . . . . . . 27
62     11.16. <parse-xml> element . . . . . . . . . . . . . . . . . . . 27
63     11.17. <prose> element . . . . . . . . . . . . . . . . . . . . . 27
64     11.18. <q> element . . . . . . . . . . . . . . . . . . . . . . . 28
65     11.19. <ref> element . . . . . . . . . . . . . . . . . . . . . . 28
66     11.20. <source> element  . . . . . . . . . . . . . . . . . . . . 28
67     11.21. <sup> element . . . . . . . . . . . . . . . . . . . . . . 29
68     11.22. Extensions to Xml2rfc <artwork> element . . . . . . . . . 29
69     11.23. Extensions to Xml2rfc <iref> element  . . . . . . . . . . 29
70     11.24. Extensions to Xml2rfc <list> element  . . . . . . . . . . 30
71     11.25. Extensions to Xml2rfc <rfc> element . . . . . . . . . . . 30
72     11.26. Extensions to Xml2rfc <section> element . . . . . . . . . 30
73     11.27. Extensions to Xml2rfc <xref> element  . . . . . . . . . . 30
74   12. Experimental Support for XML2RFCv3 Vocabulary  . . . . . . . . 32
75     12.1.  aside Element . . . . . . . . . . . . . . . . . . . . . . 32
76     12.2.  bcp14 Element . . . . . . . . . . . . . . . . . . . . . . 32
77     12.3.  blockquote Element  . . . . . . . . . . . . . . . . . . . 32
78     12.4.  boilerplate Element . . . . . . . . . . . . . . . . . . . 32
79     12.5.  displayreference Element  . . . . . . . . . . . . . . . . 32
80     12.6.  dd Element  . . . . . . . . . . . . . . . . . . . . . . . 32
81     12.7.  dl Element  . . . . . . . . . . . . . . . . . . . . . . . 32
82     12.8.  dt Element  . . . . . . . . . . . . . . . . . . . . . . . 32
83     12.9.  em Element  . . . . . . . . . . . . . . . . . . . . . . . 32
84     12.10. li Element  . . . . . . . . . . . . . . . . . . . . . . . 32
85     12.11. name Element  . . . . . . . . . . . . . . . . . . . . . . 33
86     12.12. ol Element  . . . . . . . . . . . . . . . . . . . . . . . 33
87     12.13. postalLine Element  . . . . . . . . . . . . . . . . . . . 33
88     12.14. refcontent Element  . . . . . . . . . . . . . . . . . . . 33
89     12.15. sourcecode Element  . . . . . . . . . . . . . . . . . . . 33
90     12.16. Extensions to reference Element . . . . . . . . . . . . . 33
91       12.16.1. quoteTitle attribute  . . . . . . . . . . . . . . . . 33
92     12.17. Extensions to section Element . . . . . . . . . . . . . . 33
93       12.17.1. numbered attribute  . . . . . . . . . . . . . . . . . 33
94       12.17.2. removeInRFC attribute . . . . . . . . . . . . . . . . 33
95     12.18. strong Element  . . . . . . . . . . . . . . . . . . . . . 33
96     12.19. sub Element . . . . . . . . . . . . . . . . . . . . . . . 34
97     12.20. sup Element . . . . . . . . . . . . . . . . . . . . . . . 34
98     12.21. svg Element . . . . . . . . . . . . . . . . . . . . . . . 34
99     12.22. tt Element  . . . . . . . . . . . . . . . . . . . . . . . 34
100     12.23. ul Element  . . . . . . . . . . . . . . . . . . . . . . . 34
101   13. Utilities  . . . . . . . . . . . . . . . . . . . . . . . . . . 35
102     13.1.  Checking References . . . . . . . . . . . . . . . . . . . 35
103     13.2.  Generating Graphs from References . . . . . . . . . . . . 37
104     13.3.  Producing reference entries for books . . . . . . . . . . 37
105     13.4.  Down-converting to RFC2629bis DTD . . . . . . . . . . . . 38
106     13.5.  Extracting artwork  . . . . . . . . . . . . . . . . . . . 39
107     13.6.  GRRDL . . . . . . . . . . . . . . . . . . . . . . . . . . 39
108
109
110
111Reschke                                                         [Page 2]
112
113Documentation             RFC2629 through XSLT                March 2016
114
115
116     13.7.  HTML Live Refresh . . . . . . . . . . . . . . . . . . . . 39
117     13.8.  Refreshing included material in the XML source  . . . . . 40
118   14. Informative References . . . . . . . . . . . . . . . . . . . . 45
119   Appendix A.  RELAX NG Compact Schema . . . . . . . . . . . . . . . 48
120   Appendix B.  Implementation Notes  . . . . . . . . . . . . . . . . 64
121     B.1.   Recognized type attributes for <artwork> element  . . . . 64
122   Appendix C.  Examples  . . . . . . . . . . . . . . . . . . . . . . 65
123     C.1.   Using the 'Internal Subset' . . . . . . . . . . . . . . . 65
124     C.2.   Customization . . . . . . . . . . . . . . . . . . . . . . 65
125   Appendix D.  Producing the IETF 'Boilerplate'  . . . . . . . . . . 67
126   Appendix E.  License . . . . . . . . . . . . . . . . . . . . . . . 68
127   Index  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
128   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 79
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167Reschke                                                         [Page 3]
168
169Documentation             RFC2629 through XSLT                March 2016
170
171
1721.  Introduction
173
174   This document describes a set of XSLT transformations that can be
175   used to transform "XML2RFC" XML ([RFC7749], updating [RFC2629]) to
176   various output formats, such as HTML and PDF.  The main topics are
177
178   o  compliance to the xml2rfc XML element set (Section 2),
179
180   o  support for xml2rfc processing instructions (Section 3),
181
182   o  the names of anchor elements generated in HTML and PDF output
183      (Section 4),
184
185   o  various XSLT engines that can be used (Section 5),
186
187   o  outputting HTML (Section 6) and XHTML (Section 7),
188
189   o  outputting CHM (Compiled Microsoft Help, Section 8),
190
191   o  outputting PDF (Section 9),
192
193   o  outputting ePub (Section 10),
194
195   o  extensions to the xml2rfc vocabulary (Section 11),
196
197   o  selected extensions from the proposed xml2rfc V3 vocabulary
198      (Section 12),
199
200   o  various utilities (Section 13).
201
202   The full distribution is available at
203   <http://greenbytes.de/tech/webdav/rfc2629xslt.zip>.
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223Reschke                                                         [Page 4]
224
225Documentation             RFC2629 through XSLT                March 2016
226
227
2282.  Supported RFC2629 elements
229
230   "rfc2629.xslt" supports both all RFC2629 grammar elements and the
231   extensions implemented in xml2rfc 1.36.
232
2332.1.  Extension elements
234
235   "rfc2629.xslt" supports two kind of extension elements, using
236   different XML namespaces.
237
238   The first set contains (hopefully) generally useful extensions, see
239   Section 11.
240
241   The second set is used for change and issue tracking and currently is
242   not documented here.  Please email the author in case you're
243   interested in using these extensions.
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279Reschke                                                         [Page 5]
280
281Documentation             RFC2629 through XSLT                March 2016
282
283
2843.  Processing Instructions
285
286   All PIs can be set as XSLT parameter as well, overriding any value
287   that is found in the source file to be transformed.
288
289   Using processing instructions:
290
291   <?rfc toc="yes"?>
292   <?rfc-ext support-rfc2731="no"?>
293
294   Using XSLT parameters (Saxon):
295
296   java -cp saxon.jar com.icl.saxon.StyleSheet source.xml rfc2629.xslt \
297     xml2rfc-toc=yes xml2rfc-ext-support-rfc2731=no > result.html
298
299   Using XSLT parameters (xsltproc):
300
301   xsltproc --param xml2rfc-toc '"yes"' \
302      --param xml2rfc-ext-support-rfc2731 '"no"' \
303      rfc2629.xslt source.xml > result.html
304
305   (note the required quoting of string parameters)
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335Reschke                                                         [Page 6]
336
337Documentation             RFC2629 through XSLT                March 2016
338
339
3403.1.  Supported xml2rfc-compatible PIs
341
342   +---------------+-------------+----------------+--------+-----------+
343   | PI target     | PI          | XSLT parameter | defaul | comment   |
344   |               | pseudo-attr | name           | t      |           |
345   |               | ibute       |                |        |           |
346   +---------------+-------------+----------------+--------+-----------+
347   | rfc           | background  | xml2rfc-backgr | (not   |           |
348   |               |             | ound           | set)   |           |
349   |               |             |                |        |           |
350   | rfc           | compact     | xml2rfc-compac | "no"   | only      |
351   |               |             | t              |        | applies   |
352   |               |             |                |        | to HTML   |
353   |               |             |                |        | output    |
354   |               |             |                |        | method    |
355   |               |             |                |        | when      |
356   |               |             |                |        | printing  |
357   |               |             |                |        |           |
358   | rfc           | comments    | xml2rfc-commen | (not   |           |
359   |               |             | ts             | set)   |           |
360   |               |             |                |        |           |
361   | rfc           | docmapping  |                | "yes"  | This is   |
362   |               |             |                |        | the       |
363   |               |             |                |        | default   |
364   |               |             |                |        | for       |
365   |               |             |                |        | rfc2629.x |
366   |               |             |                |        | slt       |
367   |               |             |                |        | anyway,   |
368   |               |             |                |        | and it    |
369   |               |             |                |        | can not   |
370   |               |             |                |        | be        |
371   |               |             |                |        | changed   |
372   |               |             |                |        |           |
373   | rfc           | editing     | xml2rfc-editin | "no"   |           |
374   |               |             | g              |        |           |
375   |               |             |                |        |           |
376   | rfc           | footer      | xml2rfc-footer | (not   |           |
377   |               |             |                | set)   |           |
378   |               |             |                |        |           |
379   | rfc           | header      | xml2rfc-header | (not   |           |
380   |               |             |                | set)   |           |
381   |               |             |                |        |           |
382
383
384
385
386
387
388
389
390
391Reschke                                                         [Page 7]
392
393Documentation             RFC2629 through XSLT                March 2016
394
395
396   | rfc           | include     | only partly    | rfc    | inline    |
397   |               |             | supported, use |        |           |
398   |               |             | external       |        |           |
399   |               |             | entities       |        |           |
400   |               |             | instead (see   |        |           |
401   |               |             | Appendix C.1)  |        |           |
402   |               |             | or other tools |        |           |
403   |               |             | (Section 13.8) |        |           |
404   |               |             | instead        |        |           |
405   |               |             |                |        |           |
406   | xml2rfc-inlin | (not set)   |                | rfc    | iprnotifi |
407   | e             |             |                |        | ed        |
408   |               |             |                |        |           |
409   | xml2rfc-iprno | "no"        |                | rfc    | linkmailt |
410   | tified        |             |                |        | o         |
411   |               |             |                |        |           |
412   | xml2rfc-linkm | "yes"       |                | rfc    | private   |
413   | ailto         |             |                |        |           |
414   |               |             |                |        |           |
415   | xml2rfc-priva | (not set)   |                | rfc    | refparent |
416   | te            |             |                |        |           |
417   |               |             |                |        |           |
418   | xml2rfc-priva | "References | Title for      | rfc    | rfcedstyl |
419   | te            | "           | References     |        | e         |
420   |               |             | sections when  |        |           |
421   |               |             | automatically  |        |           |
422   |               |             | inserted       |        |           |
423   |               |             |                |        |           |
424   | xml2rfc-rfced | (not set)   | (limited       | rfc    | sortrefs  |
425   | style         |             | support)       |        |           |
426   |               |             |                |        |           |
427   | xml2rfc-sortr | "no"        |                | rfc    | symrefs   |
428   | efs           |             |                |        |           |
429   |               |             |                |        |           |
430   | xml2rfc-symre | "yes"       | The default    | rfc    | toc       |
431   | fs            |             | has changed    |        |           |
432   |               |             | from "no" to   |        |           |
433   |               |             | "yes" as of    |        |           |
434   |               |             | June 6, 2007   |        |           |
435   |               |             | and xml2rfc    |        |           |
436   |               |             | 1.33pre4.      |        |           |
437   |               |             |                |        |           |
438   | xml2rfc-toc   | "no"        |                | rfc    | tocdepth  |
439   |               |             |                |        |           |
440   | xml2rfc-tocde | 99          |                | rfc    | topblock  |
441   | pth           |             |                |        |           |
442   |               |             |                |        |           |
443
444
445
446
447Reschke                                                         [Page 8]
448
449Documentation             RFC2629 through XSLT                March 2016
450
451
452   | xml2rfc-topbl | "yes"       |                |        |           |
453   | ock           |             |                |        |           |
454   +---------------+-------------+----------------+--------+-----------+
455
4563.2.  Unsupported xml2rfc-compatible PIs
457
458         +-----------+---------------------+---------------------+
459         | PI target | PI pseudo-attribute | comment             |
460         +-----------+---------------------+---------------------+
461         | rfc       | needLines           |                     |
462         |           |                     |                     |
463         | rfc       | slides              |                     |
464         |           |                     |                     |
465         | rfc       | strict              |                     |
466         |           |                     |                     |
467         | rfc       | subcompact          |                     |
468         |           |                     |                     |
469         | rfc       | tocindent           | (defaults to "yes") |
470         |           |                     |                     |
471         | rfc       | tocompact           |                     |
472         +-----------+---------------------+---------------------+
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503Reschke                                                         [Page 9]
504
505Documentation             RFC2629 through XSLT                March 2016
506
507
5083.3.  Extension PIs
509
510   +----+-----------+----------------+-----+---------------------------+
511   | PI | PI        | XSLT parameter | def | description               |
512   | ta | pseudo-at | name           | aul |                           |
513   | rg | tribute   |                | t   |                           |
514   | et |           |                |     |                           |
515   +----+-----------+----------------+-----+---------------------------+
516   | rf | allow-mar | xml2rfc-allow- | "no | Enables support for       |
517   | c- | kup-in-ar | markup-in-artw | "   | specific elements inside  |
518   | ex | twork     | ork            |     | abstract elements (using  |
519   | t  |           |                |     | this extension makes the  |
520   |    |           |                |     | document incompatible to  |
521   |    |           |                |     | the RFC2629bis DTD; see   |
522   |    |           |                |     | description of conversion |
523   |    |           |                |     | XSLT in Section 13.4).    |
524   |    |           |                |     |                           |
525   | rf | authors-s | xml2rfc-ext-au | "en | When "before-appendices", |
526   | c- | ection    | thors-section  | d"  | place the authors section |
527   | ex |           |                |     | between references and    |
528   | t  |           |                |     | appendices (this ordering |
529   |    |           |                |     | was used a long time      |
530   |    |           |                |     | ago).                     |
531   |    |           |                |     |                           |
532   | rf | duplex    | xml2rfc-ext-du | "no | When set to "yes", format |
533   | c- |           | plex           | "   | the PDF output for        |
534   | ex |           |                |     | doublesided printing.     |
535   | t  |           |                |     |                           |
536   |    |           |                |     |                           |
537   | rf | html-pret | xml2rfc-ext-ht |     | Used to specify a         |
538   | c- | ty-print  | ml-pretty-prin |     | JS-based code             |
539   | ex |           | t              |     | pretty-printer; the value |
540   | t  |           |                |     | is the CSS class name to  |
541   |    |           |                |     | insert, followed by a     |
542   |    |           |                |     | blank space, followed by  |
543   |    |           |                |     | the URI of the JS         |
544   |    |           |                |     | library. For instance:    |
545   |    |           |                |     | "prettyprint              |
546   |    |           |                |     | https://cdn.rawgit.com/go |
547   |    |           |                |     | ogle/code-prettify/master |
548   |    |           |                |     | /loader/run_prettify.js"  |
549   |    |           |                |     |                           |
550   | rf | include-i | xml2rfc-ext-in | "ye | When set to "no", no      |
551   | c- | ndex      | clude-index    | s"  | index will be generated.  |
552   | ex |           |                |     |                           |
553   | t  |           |                |     |                           |
554   |    |           |                |     |                           |
555
556
557
558
559Reschke                                                        [Page 10]
560
561Documentation             RFC2629 through XSLT                March 2016
562
563
564   | rf | include-r | xml2rfc-ext-in | "no | When set to "yes", index  |
565   | c- | eferences | clude-referenc | "   | entries are generated for |
566   | ex | -in-index | es-in-index    |     | all references.           |
567   | t  |           |                |     |                           |
568   |    |           |                |     |                           |
569   | rf | insert-me | xml2rfc-ext-in | "ye | When set to "yes",        |
570   | c- | tadata    | sert-metadata  | s"  | include JS code that      |
571   | ex |           |                |     | fetches current RFC       |
572   | t  |           |                |     | metadata and inserts it   |
573   |    |           |                |     | into the front page       |
574   |    |           |                |     | (standards track,         |
575   |    |           |                |     | obsoletion, updates,      |
576   |    |           |                |     | errata).                  |
577   |    |           |                |     |                           |
578   | rf | justifica | xml2rfc-ext-ju | "ne | "never": never emit       |
579   | c- | tion      | stification    | ver | justified text, "always": |
580   | ex |           |                | "   | always emit justified     |
581   | t  |           |                |     | text, "print": only emit  |
582   |    |           |                |     | justified text for print  |
583   |    |           |                |     | media.                    |
584   |    |           |                |     |                           |
585   | rf | parse-xml | xml2rfc-parse- | "no | May be used to enable     |
586   | c- | -in-artwo | xml-in-artwork | "   | parsing of XML content in |
587   | ex | rk        |                |     | figures (MSXML only).     |
588   | t  |           |                |     |                           |
589   |    |           |                |     |                           |
590   | rf | sec-no-tr | xml2rfc-ext-se |     | When set to "yes", add    |
591   | c- | ailing-do | c-no-trailing- |     | trailing dots to section  |
592   | ex | ts        | dots           |     | numbers. This seems to be |
593   | t  |           |                |     | the preferred format in   |
594   |    |           |                |     | the newest RFCs.          |
595   |    |           |                |     |                           |
596   | rf | support-r | xml2rfc-ext-su | "ye | Decides whether the HTML  |
597   | c- | fc2731    | pport-rfc2731  | s"  | transformation should     |
598   | ex |           |                |     | generate META tags        |
599   | t  |           |                |     | according Section 6.4.    |
600   +----+-----------+----------------+-----+---------------------------+
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615Reschke                                                        [Page 11]
616
617Documentation             RFC2629 through XSLT                March 2016
618
619
6204.  Anchors
621
622   The transformation automatically generates anchors that are supposed
623   to be stable and predictable and that can be used to identify
624   specific parts of the document.  Anchors are generated both in HTML
625   and XSL-FO content (but the latter will only be used for PDF output
626   when the XSL-FO engine supports producing PDF anchors).
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671Reschke                                                        [Page 12]
672
673Documentation             RFC2629 through XSLT                March 2016
674
675
676                 The following anchors get auto-generated:
677
678     +-----------------------+---------------------------------------+
679     | Anchor name           | Description                           |
680     +-----------------------+---------------------------------------+
681     | rfc.abstract          | Abstract                              |
682     |                       |                                       |
683     | rfc.authors           | Authors section                       |
684     |                       |                                       |
685     | rfc.copyright         | Copyright section                     |
686     |                       |                                       |
687     | rfc.copyrightnotice   | Copyright notice                      |
688     |                       |                                       |
689     | rfc.figure._n_        | Figures (titled)                      |
690     |                       |                                       |
691     | rfc.figure.u._n_      | Figures (untitled)                    |
692     |                       |                                       |
693     | rfc.index             | Index                                 |
694     |                       |                                       |
695     | rfc.ipr               | Intellectual Property                 |
696     |                       |                                       |
697     | rfc.iref._n_          | Internal references                   |
698     |                       |                                       |
699     | rfc.note._n_          | Notes (from front section)            |
700     |                       |                                       |
701     | rfc.references        | References                            |
702     |                       |                                       |
703     | rfc.references._n_    | Additional references                 |
704     |                       |                                       |
705     | rfc.section._n_       | Section _n_                           |
706     |                       |                                       |
707     | rfc.section._n_.p._m_ | Section _n_, paragraph _m_            |
708     |                       |                                       |
709     | rfc.status            | Status of memo                        |
710     |                       |                                       |
711     | rfc.table._n_         | Tables (titled)                       |
712     |                       |                                       |
713     | rfc.table.u._n_       | Tables (untitled)                     |
714     |                       |                                       |
715     | rfc.toc               | Table of contents                     |
716     |                       |                                       |
717     | rfc.xref._name_._n_   | References to reference _n_ to _name_ |
718     +-----------------------+---------------------------------------+
719
720
721
722
723
724
725
726
727Reschke                                                        [Page 13]
728
729Documentation             RFC2629 through XSLT                March 2016
730
731
7325.  Supported XSLT engines
733
734   The transformation requires a non-standard extension function (see
735   exsl:node-set [1]) which is however widely available.  XSLT
736   processors that do not support this extension (or a functional
737   equivalent, such as msxsl:node-set) currently are not supported.
738
739   Input documents do not always specify the date completely.  In this
740   case, the transformation attempts to let the XSLT engine to compute
741   the system date, using either scripting in Microsoft's XSLT engine,
742   or the exsl:date-time [2] extension function.
743
7445.1.  Standalone Engines
745
746   The following XSLT engines are believed to work well:
747
748   o  Windows: MSXML3 and MSXML4 (<http://msdn.microsoft.com/xml>;
749      command line processor "msxsl" is available from Microsoft
750      Download Center [3])
751
752   o  Java: Saxon (<http://saxon.sourceforge.net/>)
753
754   o  Java: Xalan (<http://xml.apache.org/xalan-j/>)
755
756   o  C/C++: xsltproc (libxslt) (<http://xmlsoft.org/XSLT/>, make sure
757      that you have a current version)
758
7595.2.  In-Browser Engines
760
761   The following browsers seem to work fine:
762
763   o  Internet Explorer 5.5 (Windows version, if MSXML3 is installed)
764
765   o  Internet Explorer 6 and newer
766
767   o  Firefox 3.0 and newer
768
769
770      *  Be aware that XSLT execution can be suppressed using
771         NoScript [4]
772
773      *  Firefox does not load external DTDs nor external entities, see
774         Mozilla Bug 22942 [5], thus entities like &nbsp; need to be
775         declared in the internal subset (Appendix C.1)
776
777      *  There seems to be a new problem in Firefox 4 where it
778         occasionally does the initial rendering with the wrong width
779         (people who can reproduce this problem please comment on
780
781
782
783Reschke                                                        [Page 14]
784
785Documentation             RFC2629 through XSLT                March 2016
786
787
788         <https://bugzilla.mozilla.org/show_bug.cgi?id=640390>.
789
790      *  Date computation is available in Firefox starting with Firefox
791         6 (see <https://bugzilla.mozilla.org/show_bug.cgi?id=603159>)
792
793   o  Safari 3 (starting with version 3.0.4)
794
795
796      *  Date computation not available (see
797         <https://bugs.webkit.org/show_bug.cgi?id=4079>)
798
799   o  Google Chrome
800
801
802      *  Date computation not available (see
803         <https://bugs.webkit.org/show_bug.cgi?id=4079>)
804
805   o  Opera (starting with version 10)
806
807
808      *  Date computation not available
809
810   The following browsers are known not to work properly:
811
812   o  Firefox 1.*/2.*: (missing extension function - see change request
813      at Mozilla BugZilla 193678 [6])
814
815   o  Opera 9.21: execution fails, potentially to a somewhat complex
816      XPath expression (reported to Opera as bug 245725).
817
818   o  Opera 9.5 and 9.6: transformation appears to work, but CSS isn't
819      getting applied (reported to Opera as bug 337388 on 2008-06-12).
820
821   o  Safari 2.* supports client-side XSLT as of MacOS X 10.4, but
822      misses required extension functions.  A problem with stylesheets
823      producing non-ASCII output (such as NBSP characters) has been
824      fixed as of OSX 10.4.4.  Both problems have been reported through
825      Apple's bug tracking system, see <http://drakken.dbc.mtview.ca.us/
826      pipermail/xml2rfc/2005-May/002073.html> and
827      <http://bugs.webkit.org/show_bug.cgi?id=4079>.
828
829
830
831
832
833
834
835
836
837
838
839Reschke                                                        [Page 15]
840
841Documentation             RFC2629 through XSLT                March 2016
842
843
8446.  Transforming to HTML
845
846   Transformation to HTML can be done inside the browser if it supports
847   XSLT.  To enable this, add the following processing instruction to
848   the start of the source file:
849
850     <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
851
852   (and ensure that "rfc2629.xslt" is present).
853
8546.1.  HTML compliance
855
856   The transformation result is supposed to conform to HTML5 [HTML5].
857   This can be checked using the W3C's online validator at
858   <http://validator.w3.org>.
859
860   XSLT 1.0 is not capable to directly emit the HTML doctype
861   declaration, thus uses the SYSTEM ID "about:legacy-compat" instead
862   (see Section 8.1.1 of [HTML5]).
863
864   When not run in a browser, the doctype declaration can be adjusted
865   using a small script, such as with:
866
867   saxon test.xml rfc2629.xslt | awk -f html5doctype.awk
868
869   with
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895Reschke                                                        [Page 16]
896
897Documentation             RFC2629 through XSLT                March 2016
898
899
900   #!/usr/bin/awk -f
901
902   # waitfordoctype:
903   # 0: wait for line starting with DOCTYPE and eat empty lines
904   # 1: wait for line starting with <html
905   # 2: afterwards
906
907   BEGIN {
908     waitfordoctype = 0;
909   }
910
911   /<!DOCTYPE .*/ {
912     if (waitfordoctype == 0) {
913       waitfordoctype = 1
914     }
915   }
916
917   /<html.*/ {
918     if (waitfordoctype == 1) {
919       waitfordoctype = 2
920       printf("<!DOCTYPE html>\n")
921     }
922     else {
923       print
924     }
925   }
926
927   {
928     if (waitfordoctype == 0 && $0 != "") {
929       print
930     }
931     else if (waitfordoctype == 2) {
932       print
933     }
934   }
935
936
9376.2.  Standard HTML LINK elements
938
939   LINK elements exist since HTML 2.0.  They can be used to embed
940   content-independant links inside the document.  Unfortunately, only
941   few user agents support this element.  Firefox users may want to
942   check the Link Widgets [7] extension.
943
944
945
946
947
948
949
950
951Reschke                                                        [Page 17]
952
953Documentation             RFC2629 through XSLT                March 2016
954
955
956                 The following LINK elements are produced:
957
958   +-----------+-------------------------------------------------------+
959   | LINK type | description                                           |
960   +-----------+-------------------------------------------------------+
961   | alternate | for RFCs, a link to the authorative ASCII version on  |
962   |           | the IETF web site                                     |
963   |           |                                                       |
964   | appendic  | pointer to all top-level appendics                    |
965   |           |                                                       |
966   | author    | pointer to "authors" section                          |
967   |           |                                                       |
968   | chapter   | pointer to all top-level sections                     |
969   |           |                                                       |
970   | contents  | pointer to table of contents                          |
971   |           |                                                       |
972   | copyright | pointer to copyright statement                        |
973   |           |                                                       |
974   | index     | pointer to index                                      |
975   +-----------+-------------------------------------------------------+
976
977   The figure below shows how Mozilla Firefox 1.0 displays the Site
978   Navigation Bar for rfc2396.xml.
979
980
9816.3.  Standard HTML metadata
982
983          The following standard HTML META elements are produced:
984
985      +-----------+-------------------------------------------------+
986      | META name | description                                     |
987      +-----------+-------------------------------------------------+
988      | generator | from XSLT engine version and stylesheet version |
989      |           |                                                 |
990      | keywords  | from keyword elements in front section          |
991      +-----------+-------------------------------------------------+
992
9936.4.  Dublin Core (RFC2731) metadata
994
995   Unless turned off using the "rfc-ext support-rfc2731" processing
996   instruction, the transformation will generate metadata according to
997   [RFC2731] and [DC-HTML].
998
999
1000
1001
1002
1003
1004
1005
1006
1007Reschke                                                        [Page 18]
1008
1009Documentation             RFC2629 through XSLT                March 2016
1010
1011
1012                The following DCMI properties are produced:
1013
1014   +-------------------------+-----------------------------------------+
1015   | META name               | description                             |
1016   +-------------------------+-----------------------------------------+
1017   | DC.Creator              | from author information in front        |
1018   |                         | section                                 |
1019   |                         |                                         |
1020   | DC.Date.Issued          | from date information in front section  |
1021   |                         |                                         |
1022   | DC.Description.Abstract | from abstract                           |
1023   |                         |                                         |
1024   | DC.Identifier           | document URN [RFC2648] from "docName"   |
1025   |                         | attribute                               |
1026   |                         |                                         |
1027   | DC.isPartOf             | RFC ISSN (for RFCs)                     |
1028   |                         |                                         |
1029   | DC.Relation.Replaces    | from "obsoletes" attribute              |
1030   +-------------------------+-----------------------------------------+
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063Reschke                                                        [Page 19]
1064
1065Documentation             RFC2629 through XSLT                March 2016
1066
1067
10687.  Transforming to XHTML
1069
1070   Transforming to XHTML requires slightly different XSLT output options
1071   and is implemented by the derived transformation script
1072   "rfc2629toXHTML.xslt".
1073
1074      Note: Microsoft Internet Explorer does _not_ support XHTML.
1075      Therefore it usually makes more sense to generate plain old HTML.
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119Reschke                                                        [Page 20]
1120
1121Documentation             RFC2629 through XSLT                March 2016
1122
1123
11248.  Transforming to CHM (Microsoft Compiled Help)
1125
1126   To generate a CHM file using Microsoft's HTML Help Compiler (hhc),
1127   three files are required in addition to the HTML file.
1128
1129   1.  hhc - table of contents file (HTML)
1130
1131   2.  hhk - index file (HTML)
1132
1133   3.  hhp - project file (plain text)
1134
1135   The three files are generated with three specific transformations,
1136   each requiring the additional XSLT parameter "basename" to specify
1137   the filename prefix.
1138
1139   Example:
1140
1141   saxon rfc2616.xml rfc2629toHhp.xslt basename=rfc2616  > rfc2616.hhp
1142   saxon rfc2616.xml rfc2629toHhc.xslt basename=rfc2616  > rfc2616.hhc
1143   saxon rfc2616.xml rfc2629toHhk.xslt basename=rfc2616  > rfc2616.hhk
1144   hhc rfc2616.hhp
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175Reschke                                                        [Page 21]
1176
1177Documentation             RFC2629 through XSLT                March 2016
1178
1179
11809.  Transforming to PDF
1181
11829.1.  Via XSL-FO
1183
1184   Transformation to XSL-FO [XSL-FO] format is available through
1185   "rfc2629toFO.xslt" (which includes "rfc2629.xslt", so keep both in
1186   the same folder).
1187
1188   Compared to HTML user agents, XSL-FO engines unfortunately either
1189   come as open source (for instance, Apache FOP) or feature-complete
1190   (for instance, AntennaHouse XSL Formatter), but not both at the same
1191   time.
1192
1193   As Apache FOP needs special workarounds (index generation), and some
1194   popular extensions aren't standardized yet, the translation produces
1195   a generic output (hopefully) conforming to [XSL-FO].  Specific
1196   backends ("xsl11toFop.xslt", "xsl11toXep.xslt", "xsl11toAn.xslt")
1197   then provide post-processing for the individual processors.
1198
1199      Note: the output is currently targeted at Apache FOP 1.1.
1200
12019.1.1.  Example: producing output for Apache FOP
1202
1203   Example:
1204
1205   saxon rfc2616.xml rfc2629toFo.xslt > tmp.fo
1206   saxon tmp.fo xsl11toFop.xslt > rfc2629.fo
1207
12089.2.  Via HTML
1209
1210   PDF output can also be produced directly from (X)HTML.  One simple
1211   approach is to rely on the browser's printing function, and to use a
1212   printer driver that produces PDF.  Depending on the brower's CSS
1213   capabilities, the output will behave properly with respect to table
1214   breaks etc.
1215
1216   An alternative is PrinceXML (see <http://www.princexml.com/>), which
1217   can produce PDF directly from (X)HTML input, based on the CSS
1218   printing information.
1219
1220   For instance, PDF output with text justification turned on can be
1221   produced with:
1222
1223   saxon input.xml rfc2629.xslt > output.html
1224   prince output.html output.pdf
1225
1226
1227
1228
1229
1230
1231Reschke                                                        [Page 22]
1232
1233Documentation             RFC2629 through XSLT                March 2016
1234
1235
123610.  Transforming to ePub
1237
1238   Experimental transformation to ePub format is available through a set
1239   of stylesheets, and the Unix Shell script "mkepub.sh" (which requires
1240   that "zip" and either "saxon" or "xsltproc" are installed).
1241
1242   For instance, an epub version of rfc2616.xml can be generated like
1243   this:
1244
1245   mkepub.sh rfc2616.xml
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287Reschke                                                        [Page 23]
1288
1289Documentation             RFC2629 through XSLT                March 2016
1290
1291
129211.  Generic Extensions
1293
1294   This section documents extensions implemented in "rfc2629.xslt",
1295   using the extension namespace "http://purl.org/net/xml2rfc/ext".
1296
129711.1.  <abnf-char-sequence> element
1298
1299   Converts the contained quoted string into a hex-encoded character
1300   sequence, for use in case-sensitive ABNF productions.
1301
1302   For instance, "<x:abnf-char-sequence>"HTTP"</x:abnf-char-sequence>"
1303   gets converted to "%x48.54.54.50".
1304
130511.2.  <anchor-alias> element
1306
1307   Using its "value" attribute, this element allows the definition of an
1308   internal link target alias for the enclosing element.  This alias can
1309   then be used with the <ref> element for intra-document references.
1310
1311   Note that the anchor alias is not subject to the naming constraints
1312   that apply to anchor elements (which are XML names).
1313
131411.3.  <bcp14> element
1315
1316   This element marks the content as being one of the normative keywords
1317   defined in [RFC2119].
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343Reschke                                                        [Page 24]
1344
1345Documentation             RFC2629 through XSLT                March 2016
1346
1347
1348   The DOCTYPE definition below allows using these keywords using XML
1349   entity expansion: such as in "...server &MUST; accept...".
1350
1351   <!DOCTYPE rfc [
1352    <!ENTITY MAY "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1353      >MAY</bcp14>">
1354    <!ENTITY MUST "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1355      >MUST</bcp14>">
1356    <!ENTITY MUST-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1357      >MUST NOT</bcp14>">
1358    <!ENTITY OPTIONAL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1359      >OPTIONAL</bcp14>">
1360    <!ENTITY RECOMMENDED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1361      >RECOMMENDED</bcp14>">
1362    <!ENTITY REQUIRED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1363      >REQUIRED</bcp14>">
1364    <!ENTITY SHALL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1365      >SHALL</bcp14>">
1366    <!ENTITY SHALL-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1367      >SHALL NOT</bcp14>">
1368    <!ENTITY SHOULD "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1369      >SHOULD</bcp14>">
1370    <!ENTITY SHOULD-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1371      >SHOULD NOT</bcp14>">]>
1372
137311.4.  <bb> element
1374
1375   Marking up a string as <bb> indicates that it represents the bottom
1376   line of a box drawing, replacing the "+" and "-" characters
1377   accordingly.
1378
137911.5.  <bc> element
1380
1381   Marking up a string as <bc> indicates that it represents a center
1382   line of a box drawing, replacing the "|" character accordingly.
1383
138411.6.  <blockquote> element
1385
1386   This element is like the <blockquote> element defined in Section
1387   4.4.4 of [HTML5] (note this is a block-level element!).  It should
1388   contain one or more <t> child elements.
1389
139011.7.  <bt> element
1391
1392   Marking up a string as <bt> indicates that it represents the top line
1393   of a box drawing, replacing the "+" and "-" characters accordingly.
1394
1395
1396
1397
1398
1399Reschke                                                        [Page 25]
1400
1401Documentation             RFC2629 through XSLT                March 2016
1402
1403
140411.8.  <dfn> element
1405
1406   This element is like the <dfn> element defined in Section 4.5.8 of
1407   [HTML5].
1408
140911.9.  <feedback> element
1410
1411   This elements allows declaring a feedback link for document
1412   reviewers.  The template string takes the form of a URI template,
1413   such as:
1414
1415<x:feedback template="mailto:ietf-http-wg@w3.org?subject={docname},%20%22{section}%22&amp;body=&lt;{ref}&gt;:"/>
1416
1417   where "docname" is substituted by the document name, "section" is
1418   substituted by section title (number and name), and "ref" is
1419   substituted by a URI pointing to the section being referenced.
1420
142111.10.  <h> element
1422
1423   This element is like the "h" element in [XHTML2].
1424
142511.11.  <highlight> element
1426
1427   Used to highlight text passages, currently only allowed in <artwork>.
1428
1429   Note: this is stripped when generating input for xml2rfc, so please
1430   use with care.
1431
143211.12.  <length-of> element
1433
1434   This element can be used to insert the length of another formatted
1435   section (in decimal).
1436
1437   Example: computing the Content-Length header value
1438
1439   <artwork>
1440   ...
1441   Content-Length: <x:length-of target="req"/>
1442
1443   <x:span anchor="req">123456789
1444   <x:span><artwork/>
1445
1446   The lenght computation counts line ends as two characters (CRLF).
1447
1448   Note that indentation characters in artwork _will_ be counted.  The
1449   "indented" attribute allows to specify the amount of indentation to
1450   be substracted from the computed length.
1451
1452
1453
1454
1455Reschke                                                        [Page 26]
1456
1457Documentation             RFC2629 through XSLT                March 2016
1458
1459
146011.13.  <link> element
1461
1462   This element can be added as a top-level child element below <rfc> to
1463   indicate additional link information.  It's currently used only when
1464   generating HTML output, in which case an HTML <link> element with
1465   identical attributes gets generated.
1466
1467   Example: generating HTML link element
1468
1469   <x:link xmlns:x="http://purl.org/net/xml2rfc/ext"
1470       rel="Bookmark"
1471       title="IETF WEBDAV Working Group"
1472       href="http://ftp.ics.uci.edu/pub/ietf/webdav/"/>
1473
1474   If the attribute "basename" is present, it is used to compute the
1475   target href based on the output format being generated (this is handy
1476   for "next"/"prev" links in a series of documents.  In this case, the
1477   href attribute is not required.
1478
1479   For instance:
1480
1481   <x:link xmlns:x="http://purl.org/net/xml2rfc/ext"
1482       rel="next"
1483       title="Part2"
1484       basename="draft-foobar-protocol-p2-latest"/>
1485
148611.14.  <lt> element
1487
1488   Used for grouping multiple <t> elements into a single list item.
1489
149011.15.  <note> element
1491
1492   Can be used to add a note, usually indented by a few characters.  It
1493   should contain one or more <t> child elements.
1494
149511.16.  <parse-xml> element
1496
1497   This element instructs the processor to parse the contents as XML and
1498   to warn when there's a problem (requires either MSXML or Saxon8 or
1499   newer).
1500
150111.17.  <prose> element
1502
1503   This element can be used inside <reference> to add plain text (before
1504   the date, when present).
1505
1506   See also <refcontent> (Section 12.14).
1507
1508
1509
1510
1511Reschke                                                        [Page 27]
1512
1513Documentation             RFC2629 through XSLT                March 2016
1514
1515
151611.18.  <q> element
1517
1518   This element is like the <q> element defined in Section 4.5.7 of
1519   [HTML5].
1520
152111.19.  <ref> element
1522
1523   This element is a simplified variant of the <xref> element, in that
1524   no "target" attribute needs to be specified, instead the text
1525   contents acts as identifier.  That in itself wouldn't be terribly
1526   useful, but together with the <anchor-alias>, it allows referring to
1527   other parts of the document with minimal additional markup.
1528
1529   For instance, given an alias definition such as
1530
1531   <section title="Test" anchor="test">
1532     <x:anchor-alias value="alias1"/>
1533     <x:anchor-alias value="alias 2"/>
1534     ...
1535   </section>
1536
1537   the following simple references
1538
1539   <x:ref>test</x:ref>
1540   <x:ref>alias1</x:ref>
1541   <x:ref>alias 2</x:ref>
1542
1543   are equivalent to...:
1544
1545   <xref target="test">test</xref>
1546   <xref target="test">alias1</xref>
1547   <xref target="test">alias 2</xref>
1548
154911.20.  <source> element
1550
1551   Can be used to enhance a <reference> with information about the
1552   location for the XML source.  This can be used by the <xref>
1553   processing code to automatically extract the target section number.
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567Reschke                                                        [Page 28]
1568
1569Documentation             RFC2629 through XSLT                March 2016
1570
1571
1572   For example:
1573
1574   ...
1575   <xref target="RFC2616" x:fmt="of" x:rel="#PUT" />
1576   ...
1577
1578   <reference target="RFC2616"/>
1579     ...
1580     <x:source href="rfc2616.xml"/>
1581     ...
1582
158311.21.  <sup> element
1584
1585   This element is like the <sup> element in Section 4.5.16 of [HTML5].
1586
1587   Note: the down conversion to RFC2629 format replaces "x^y" by "x^y".
1588
1589   See also <sup> (Section 12.20).
1590
159111.22.  Extensions to Xml2rfc <artwork> element
1592
1593   Sometimes, artwork occurs inside lists.  To get it indent properly in
1594   xml2rfc's text output, it needs to be indented in the source.  This
1595   is sub-optimal, as this whitespace will also appear in the HTML
1596   output, where it's already indented due to HTML's semantics.  As a
1597   workaround, a "x:indent-with" attribute can be specified, containing
1598   a string that will be prepended to each line when
1599   "clean-for-DTD.xslt" is run (see Section 13.4).
1600
1601   Furthermore, documents can contain code that might need to be marked
1602   as "code component"
1603   (<http://www.ietf.org/iesg/statement/copyright.html>).  This can be
1604   done using "x:is-code-component".
1605
1606   Finally, when allowing pretty-printing of code (see "html-pretty-
1607   print" in Section 3.3, the "x:lang" attribute can used to explicitly
1608   opt into pretty-printing (the value is currently unused and ought to
1609   be set to an empty string).
1610
161111.23.  Extensions to Xml2rfc <iref> element
1612
1613   The extension attribute below is allowed on the standard <iref>
1614   element:
1615
1616   o  x:for-anchor specifies that the <iref> will also be automatically
1617      inserted whenever the specified anchor is cross-referenced -- this
1618      may save entering lots of <iref> instances.  As a special case, a
1619      value of "" (empty string) refers to the anchor attribute of the
1620
1621
1622
1623Reschke                                                        [Page 29]
1624
1625Documentation             RFC2629 through XSLT                March 2016
1626
1627
1628      closest ancestor.
1629
163011.24.  Extensions to Xml2rfc <list> element
1631
1632   The extension attribute below is allowed on the standard <list>
1633   element:
1634
1635   o  x:indent specifies the amount of indentation for list items in
1636      hanging lists.  This can be useful when the output format, such as
1637      XSL-FO, does not support automatical formatting.  The value takes
1638      an XSL-FO width, such as "5em".  The default is _length of longest
1639      label in characters_ times _0.8em_.
1640
1641   Also, the <list> element can take <x:lt> child elements instead of
1642   <t>, allowing to insert multiple paragraphs into a single list item.
1643
164411.25.  Extensions to Xml2rfc <rfc> element
1645
1646   The extension attributes below are allowed on the standard <rfc>
1647   element:
1648
1649   o  grddl:transformation can be used to reference a GRDDL transform.
1650
1651   o  x:maturity-level can be used to specify the IETF Standards Track
1652      Maturity Level of "proposed", "draft" or "internet" (see Section
1653      4.1 of [RFC2026]).
1654
165511.26.  Extensions to Xml2rfc <section> element
1656
1657   The extension attribute below is allowed on the standard <list>
1658   element:
1659
1660   o  x:fixed-section-number can be used to specify a fixed section
1661      number.  This can be useful when formatting historic documents
1662      that used a different numbering style.
1663
166411.27.  Extensions to Xml2rfc <xref> element
1665
1666   Three extension attributes are allowed on the standard <xref>
1667   element:
1668
1669   1.  x:sec can be specified to point to a specific section of the
1670       referenced document,
1671
1672   2.  x:rel may specify a relative reference to use when linking into
1673       the referenced document (if linking by section number is not
1674       available),
1675
1676
1677
1678
1679Reschke                                                        [Page 30]
1680
1681Documentation             RFC2629 through XSLT                March 2016
1682
1683
1684   3.  x:fmt defines the text format to be used.
1685
1686   The following formats are defined for the x:fmt attribute:
1687
1688   , (Comma)  [_reference_], Section _sec_
1689
1690   () [_reference_] (Section _sec_)
1691
1692   of Section _sec_ of [_reference_]
1693
1694   number  _sec_
1695
1696   none  No output (can be used to have xrefs to references without
1697      having them rendered as such)
1698
1699   sec  Section _sec_
1700
1701   These extensions are currently only supported for <xref> elements
1702   without child nodes.
1703
1704   If the processor knows how to reference the target section, it will
1705   generate a link directly to the target section, such as in [RFC2119],
1706   Section 5.
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735Reschke                                                        [Page 31]
1736
1737Documentation             RFC2629 through XSLT                March 2016
1738
1739
174012.  Experimental Support for XML2RFCv3 Vocabulary
1741
1742   "rfc2629.xslt" experimentally supports some elements from the "V3"
1743   vocabulary, defined in [XML2RFCV3]. _This support is experimental, as
1744   the "v3" vocabulary is still being developed._
1745
174612.1.  aside Element
1747
1748   See Section 2.6 of [XML2RFCV3].
1749
175012.2.  bcp14 Element
1751
1752   See Section 2.9 of [XML2RFCV3].
1753
175412.3.  blockquote Element
1755
1756   See Section 2.10 of [XML2RFCV3].
1757
175812.4.  boilerplate Element
1759
1760   See Section 2.10 of [XML2RFCV3].
1761
176212.5.  displayreference Element
1763
1764   See Section 2.19 of [XML2RFCV3].
1765
176612.6.  dd Element
1767
1768   See Section 2.18 of [XML2RFCV3].
1769
177012.7.  dl Element
1771
1772   See Section 2.20 of [XML2RFCV3].
1773
177412.8.  dt Element
1775
1776   See Section 2.21 of [XML2RFCV3].
1777
177812.9.  em Element
1779
1780   See Section 2.22 of [XML2RFCV3].
1781
178212.10.  li Element
1783
1784   See Section 2.29 of [XML2RFCV3].
1785
1786
1787
1788
1789
1790
1791Reschke                                                        [Page 32]
1792
1793Documentation             RFC2629 through XSLT                March 2016
1794
1795
179612.11.  name Element
1797
1798   See Section 2.32 of [XML2RFCV3]. _Currently only supported inside
1799   <references> and <section>_.
1800
180112.12.  ol Element
1802
1803   See Section 2.34 of [XML2RFCV3].
1804
180512.13.  postalLine Element
1806
1807   See Section 2.38 of [XML2RFCV3].
1808
180912.14.  refcontent Element
1810
1811   See Section 2.39 of [XML2RFCV3].
1812
181312.15.  sourcecode Element
1814
1815   See Section 2.48 of [XML2RFCV3].
1816
181712.16.  Extensions to reference Element
1818
1819   See Section 2.40 of [XML2RFCV3].
1820
182112.16.1.  quoteTitle attribute
1822
1823   See Section 2.40.2 of [XML2RFCV3].
1824
182512.17.  Extensions to section Element
1826
1827   See Section 2.46 of [XML2RFCV3].
1828
182912.17.1.  numbered attribute
1830
1831   See Section 2.46.2 of [XML2RFCV3].
1832
183312.17.2.  removeInRFC attribute
1834
1835   See Section 2.46.3 of [XML2RFCV3].
1836
183712.18.  strong Element
1838
1839   See Section 2.50 of [XML2RFCV3].
1840
1841
1842
1843
1844
1845
1846
1847Reschke                                                        [Page 33]
1848
1849Documentation             RFC2629 through XSLT                March 2016
1850
1851
185212.19.  sub Element
1853
1854   See Section 2.51 of [XML2RFCV3].
1855
185612.20.  sup Element
1857
1858   See Section 2.52 of [XML2RFCV3].
1859
186012.21.  svg Element
1861
1862   See Section 4 of [XML2RFCV3].
1863
186412.22.  tt Element
1865
1866   See Section 2.62 of [XML2RFCV3].
1867
186812.23.  ul Element
1869
1870   See Section 2.63 of [XML2RFCV3].
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903Reschke                                                        [Page 34]
1904
1905Documentation             RFC2629 through XSLT                March 2016
1906
1907
190813.  Utilities
1909
191013.1.  Checking References
1911
1912   "check-references.xslt" can be used to check all references to RFC-
1913   and ID-series IETF publications and to W3C publications (note this
1914   script requires local copies of
1915   <ftp://ftp.isi.edu/in-notes/rfc-index.xml> and
1916   <http://www.w3.org/2002/01/tr-automation/tr.rdf> and will use the XML
1917   status information provided at <http://tools.ietf.org/>).
1918
1919   If the document is supposed to be published on the IETF standards
1920   track, the desired level can be specified using the parameter
1921   "intended-level" as 'proposed', 'draft' or 'internet'.
1922   Alternatively, it can be specified inside the document using the
1923   attribute x:maturity-level on the <rfc> element (see Section 11.25).
1924
1925   Note: Downward references should be annotated using the <annotate>
1926   element, containing an <xref> to [BCP97].
1927
1928   When an XSLT 2.0 processor is used, links in the document can be
1929   checked as well using the "link-check" parameter ('yes' or 'no').
1930   Note that this only works for http links to documents of type text/*.
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959Reschke                                                        [Page 35]
1960
1961Documentation             RFC2629 through XSLT                March 2016
1962
1963
1964   For instance, as of 2008-07-12, the script produces for
1965   <http://greenbytes.de/tech/webdav/rfc2518.xml>:
1966
1967   > saxon rfc2518.xml check-references.xslt intended-status=PROPOSED \
1968     link-check=yes
1969
1970   Normative References:
1971   ISO-11578: not checked
1972   ISO-639: not checked
1973   ISO-8601: not checked
1974   REC-xml-19980210: [FirstEdition] obsoleted by REC-xml-20001006
1975   REC-xml-names-19990114: [FirstEdition] obsoleted by
1976    REC-xml-names-20060816
1977   RFC1766: [PROPOSED STANDARD] obsoleted by RFC3066 RFC3282
1978   RFC2068: [PROPOSED STANDARD] obsoleted by RFC2616
1979   RFC2069: [PROPOSED STANDARD] obsoleted by RFC2617
1980   RFC2119: [BEST CURRENT PRACTICE] (-> BCP0014) ok
1981   RFC2141: [PROPOSED STANDARD] ok
1982   RFC2277: [BEST CURRENT PRACTICE] (-> BCP0018) ok
1983   RFC2396: [DRAFT STANDARD] obsoleted by RFC3986
1984   RFC2279: [DRAFT STANDARD] obsoleted by RFC3629
1985
1986   Informational References:
1987   REC-PICS-labels-961031: [REC] ok
1988   RFC1807: [INFORMATIONAL] ok
1989   RFC2026: [BEST CURRENT PRACTICE] (-> BCP0009) ok
1990   RFC2291: [INFORMATIONAL] ok
1991   RFC2376: [INFORMATIONAL] obsoleted by RFC3023
1992   RFC2413: [INFORMATIONAL] obsoleted by RFC5013
1993   USMARC: not checked
1994   WF: not checked
1995
1996   Link Targets
1997   <http://www.w3.org/TR/1998/REC-xml-19980210>: ok
1998   <http://www.w3.org/TR/1999/REC-xml-names-19990114>: ok
1999   <http://www.dlib.org/dlib/july96/lagoze/07lagoze.html>: ok
2000   <http://www.w3.org/pub/WWW/TR/REC-PICS-labels-961031.html>: ok
2001
2002   Recognized formats in the <seriesInfo> element are:
2003
2004   o  for RFCs, the name attribute must be "RFC", and the value
2005      attribute must be the number of the RFC,
2006
2007   o  for Internet Drafs, the name attribute must be "ID" or "Internet-
2008      Draft", and the value attribute must be the file name of the draft
2009      (including the two-digit running number, but excluding a file
2010      extension),
2011
2012
2013
2014
2015Reschke                                                        [Page 36]
2016
2017Documentation             RFC2629 through XSLT                March 2016
2018
2019
2020   o  for W3C documents, the name attribute must be "W3C", must start
2021      with "W3C ", or must start with "World Wide Web Consortium ", and
2022      the value attribute must be the "shorthand" name of the
2023      specification, such as "REC-xml-19980210".
2024
2025      Note: this stylesheet will need network access to check links and
2026      status of Internet Drafts.  When running a Java-based XSLT engine,
2027      you may have to supply Java system properties specifying the HTTP
2028      proxy to be used, such as "-Dhttp.proxyHost=hostname
2029      -Dhttp.proxyPort=80".
2030
203113.2.  Generating Graphs from References
2032
2033   "gen-reference-graph.xslt" generates a graph of RFC dependencies,
2034   using the same base data as in "check-references.xslt" (see
2035   Section 13.1).  Its output is a "dot" file, to be processed by
2036   GraphViz (see <http://www.graphviz.org/>).
2037
2038   The picture below shows the RFC dependencies in RFC2629.
2039
2040
204113.3.  Producing reference entries for books
2042
2043   "amazon-asin.xslt" uses the Amazon web services to generate a
2044   <reference> element for a given ASIN (ISBN).
2045
2046   For instance:
2047
2048   <?xml version="1.0" encoding="utf-8"?>
2049   <references>
2050    <reference target="urn:isbn:0134516591">
2051      <front>
2052        <title>Simple Book, The: An Introduction to Internet Management,
2053                  Revised Second Edition</title>
2054        <author surname="Rose"
2055                   fullname="Marshall T. Rose" initials="M. T. ">
2056          <organization/>
2057        </author>
2058        <author surname="Marshall"
2059                   fullname="Rose T. Marshall" initials="R. T.">
2060          <organization/>
2061        </author>
2062        <date year="1996" month="March"/>
2063      </front>
2064      <seriesInfo name="Prentice Hall" value=""/>
2065    </reference>
2066   </references>
2067
2068
2069
2070
2071Reschke                                                        [Page 37]
2072
2073Documentation             RFC2629 through XSLT                March 2016
2074
2075
2076   Note that the resulting XML usually requires checking, in this case
2077   Amazon's database is playing tricks with Marshall's name...
2078
207913.4.  Down-converting to RFC2629bis DTD
2080
2081   "clean-for-DTD.xslt" can be used to down-convert some extensions to a
2082   format that is supported by the base xml2rfc distribution.  Note that
2083   these extensions are experimental (feedback appreciated).
2084
2085   The following mappings are done:
2086
2087   o  <iref> elements inside <artwork> elements are moved in front of
2088      the enclosing <figure> element.
2089
2090   o  <xref> elements inside <artwork> are expanded just like in regular
2091      text (that is, the markup is stripped, but the element is replaced
2092      by the applicable replacement text).
2093
2094   o  <x:anchor-alias> elements get stripped.
2095
2096   o  <x:bcp14> elements get stripped.
2097
2098   o  <x:bb>, <x:bc> and <x:bt> elements get stripped.
2099
2100   o  <x:blockquote> elements get converted to indented text (through a
2101      <list> element).
2102
2103   o  <x:dfn> elements get stripped.
2104
2105   o  <x:h> elements get stripped.
2106
2107   o  <x:link> elements get stripped.
2108
2109   o  <x:lt> elements get collapsed into a single <lt> element with
2110      added <vspace> added to simulate paragraph breaks.
2111
2112   o  <x:note> elements get converted to indented text (through a <list>
2113      element).
2114
2115   o  <x:q> elements get stripped, with apostrophes added around the
2116      text.
2117
2118   o  <x:prose> elements are transformed into <seriesInfo> elements
2119      (which is an abuse of the element and only a workaround until
2120      xml2rfc gets a matching extension).
2121
2122   o  <x:ref> elements get replaced by <xref> elements, targetting
2123      either the anchor or another anchor with matching <x:anchor-alias>
2124
2125
2126
2127Reschke                                                        [Page 38]
2128
2129Documentation             RFC2629 through XSLT                March 2016
2130
2131
2132      child element.
2133
213413.5.  Extracting artwork
2135
2136   With "extract-artwork.xslt", artwork elements named through the
2137   "name" attribute can be extracted.  This can be used to automatically
2138   check their syntax (for instance, when ABNFs appear within a figure
2139   element).
2140
2141   For instance:
2142   saxon rfc3986.xml extract-artwork.xslt name=uri.abnf
2143
2144   In addition, artwork of a specific type can be extracted, such as
2145   with:
2146   saxon rfc3986.xml extract-artwork.xslt type=abnf
2147
2148   When extracting by type, artwork elements with a specified name can
2149   be excluded; this can be handy when the document uses some kind of
2150   schema language, and an appendix contains the collected schema,
2151   repeating definitions from earlier on.  Example:
2152   saxon rfc3986.xml extract-artwork.xslt type=abnf except-name=clschm
2153
215413.6.  GRRDL
2155
2156   "rfc2629grddl.xslt" extracts RDF information.  This is experimental
2157   work-in-progress.  See <http://www.w3.org/TR/grddl/> for more
2158   information.
2159
216013.7.  HTML Live Refresh
2161
2162   _Experimental_
2163
2164   The "HTML Live Refresh" mode allows to run a text editor and a
2165   browser side-by-side, with the browser auto-updating every few
2166   seconds, displaying the updated HTML, and automatically navigating to
2167   the part of the page that changed last.
2168
2169   The requirements for this mode are:
2170
2171   1.  A browser that supports the "DOMParser" and "XSLTProcessor" APIs.
2172
2173   2.  The ability to reload the source code and the XSLT code from
2174       within Javascript; in some browsers this is forbidden for "file:"
2175       URIs due to perceived security problems.
2176
2177   This feature is currently tested with:
2178
2179
2180
2181
2182
2183Reschke                                                        [Page 39]
2184
2185Documentation             RFC2629 through XSLT                March 2016
2186
2187
2188   1.  Mozilla Firefox, and
2189
2190   2.  Google Chome (where, to be able to reload from the local
2191       filesystem, Chrome needs to be started with the command line
2192       option "--allow-file-access-from-files").
2193
2194   Use of this feature requires the inclusion of a processing
2195   instruction that holds the name of the XML source, such as:
2196
2197   <?rfc-ext refresh-from="draft-foo-bar-00.xml"?>
2198
2199   The optional parameters "refresh-interval" and "refresh-xslt" support
2200   changing the refresh interval (in seconds, defaulting to 10), and the
2201   name of the XSLT file to use (defaulting to "rfc2629.xslt").
2202
2203   To test this feature, start with a minimal source file like this:
2204
2205   <?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
2206   <?rfc-ext refresh-from="draft-foo-bar-00.xml"?>
2207   <rfc docName="draft-foo-bar-00" ipr="trust200902">
2208     <front>
2209       <title>Title Goes Here</title>
2210       <abstract>
2211         <t>Abstract</t>
2212       </abstract>
2213     </front>
2214   </rfc>
2215   ...open it in both text editor and browser, start editing and of
2216   course ocasionally save.
2217
221813.8.  Refreshing included material in the XML source
2219
2220   There are many methods for automatic inclusion of material in the XML
2221   source, such as the "include" processing instruction (see
2222   Section 3.1), external entities (Appendix C.1), or XInclude.  In
2223   general, those share a common problem: the XML source file isn't
2224   self-contained, which makes it harder to submit it as Internet Draft.
2225
2226   The tool "refresh-inclusions.sh" does in-place replacement: it scans
2227   the source file for inclusion directives (expressed as XML processing
2228   instructions), and refreshes the included text with data from an
2229   external file.  It will not modify the source file unless included
2230   material did actually change.  When it does modify the source file,
2231   it will copy the original source to a backup file.
2232
2233   "refresh-inclusions.sh" can include both plain text
2234   ("BEGINESCAPEDINC"/"ENDESCAPEDINC") and XML ("BEGININC"/"ENDINC").
2235   The figure below was inserted using:
2236
2237
2238
2239Reschke                                                        [Page 40]
2240
2241Documentation             RFC2629 through XSLT                March 2016
2242
2243
2244   <?BEGINESCAPEDINC refresh-inclusions.sh ?>
2245   ...
2246   <?ENDSCAPEDINC refresh-inclusions.sh ?>
2247
2248   (note that the SP character at the end of the directive is
2249   significant)
2250
2251   "refresh-inclusions.sh":
2252
2253
2254#!/bin/sh
2255# Refresh file inclusions based on XML processing instructions
2256#
2257# Copyright (c) 2006-2016, Julian Reschke (julian.reschke@greenbytes.de)
2258# All rights reserved.
2259#
2260# Redistribution and use in source and binary forms, with or without
2261# modification, are permitted provided that the following conditions are met:
2262#
2263# * Redistributions of source code must retain the above copyright notice,
2264#   this list of conditions and the following disclaimer.
2265# * Redistributions in binary form must reproduce the above copyright notice,
2266#   this list of conditions and the following disclaimer in the documentation
2267#   and/or other materials provided with the distribution.
2268# * Neither the name of Julian Reschke nor the names of its contributors
2269#   may be used to endorse or promote products derived from this software
2270#   without specific prior written permission.
2271#
2272# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
2273# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2274# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2275# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
2276# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
2277# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
2278# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2279# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2280# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2281# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2282# POSSIBILITY OF SUCH DAMAGE.
2283
2284expand() {
2285
2286  # remember whether we started with CRLF (assumes that we have dos2unix)
2287  CRLF=$(dos2unix -ic "$1" 2>/dev/null | tr -d ' ')
2288
2289  cat "$1" | awk '
2290
2291  function filecontents(filename) {
2292
2293
2294
2295Reschke                                                        [Page 41]
2296
2297Documentation             RFC2629 through XSLT                March 2016
2298
2299
2300    while (getline < filename > 0) {
2301      fc[filename] = fc[filename] $0 "\n"
2302    }
2303    return fc[filename]
2304  }
2305
2306  BEGIN {
2307    includefile = "";
2308    includeescapedfile = "";
2309  }
2310
2311  # start include (verbatim mode)
2312  /<\?BEGININC .* \?>$/ {
2313    print
2314    keyword = "<?BEGININC "
2315    extract = match($0, /<\?BEGININC .* \?>$/)
2316    includefile = substr($0, RSTART + length(keyword),
2317                    RLENGTH - 3 - length(keyword))
2318    output = filecontents(includefile)
2319    printf("%s", output)
2320  }
2321
2322  # start include (escape-for-XML mode)
2323  /<\?BEGINESCAPEDINC .* \?>$/ {
2324    print
2325    keyword = "<?BEGINESCAPEDINC "
2326    extract = match($0, /<\?BEGINESCAPEDINC .* \?>$/)
2327    includeescapedfile = substr($0, RSTART + length(keyword),
2328                           RLENGTH - 3 - length(keyword))
2329    output = filecontents(includeescapedfile)
2330    # escape ampersand, less-than, and greater-than
2331    # when part of a CDATA end marker
2332    gsub(/&/, "\\&amp;", output)
2333    gsub(/</, "\\&lt;", output)
2334    gsub(/]]>/, "]]\\&gt;", output)
2335    printf("%s", output)
2336  }
2337
2338  # end include (verbatim mode)
2339  /^<\?ENDINC .* \?>/ {
2340    if ($2 != includefile) {
2341      printf ("unexpected ENDINC, got %s but expected %s\n", $2,
2342        includefile) >> "/dev/stderr"
2343    }
2344    includefile = "";
2345  }
2346
2347  # end include (escape-for-XML mode)
2348
2349
2350
2351Reschke                                                        [Page 42]
2352
2353Documentation             RFC2629 through XSLT                March 2016
2354
2355
2356  /^<\?ENDESCAPEDINC .* \?>/ {
2357    if ($2 != includeescapedfile) {
2358      printf ("unexpected ENDESCAPEDINC, got %s but expected %s\n", $2,
2359        includeescapedfile) >> "/dev/stderr"
2360    }
2361    includeescapedfile = "";
2362  }
2363
2364  #default
2365  {
2366    if (includefile == "" && includeescapedfile == "") {
2367      print
2368    }
2369  }
2370
2371  END {
2372    if (includefile != "") {
2373      printf ("missing ENDINC for %s\n",
2374        includefile) >> "/dev/stderr"
2375    }
2376    if (includeescapedfile != "") {
2377      printf ("missing ENDESCAPEDINC for %s\n",
2378        includeescapedfile) >> "/dev/stderr"
2379    }
2380  }
2381
2382  ' > $$
2383
2384  # restore CRLF if needed
2385  if [ -n "$CRLF" ]; then
2386    FNN=$(echo "$1" | tr -d ' ')
2387    [ "$FNN" = "$CRLF" ] && unix2dos -q $$
2388  fi
2389
2390  # check for changes
2391  cmp -s "$1" $$ || (
2392    cp -v "$1" "$1".ri.bak
2393    cp $$ "$1"
2394    echo "$1" updated )
2395
2396  rm -f $$
2397}
2398
2399[ $# -ne 0 ] || ( echo "refresh-inclusions.sh file..." >&2 ; exit 2 )
2400
2401for i in $*
2402do
2403  expand $i
2404
2405
2406
2407Reschke                                                        [Page 43]
2408
2409Documentation             RFC2629 through XSLT                March 2016
2410
2411
2412done
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463Reschke                                                        [Page 44]
2464
2465Documentation             RFC2629 through XSLT                March 2016
2466
2467
246814.  Informative References
2469
2470   [BCP97]    Klensin, J. and S. Hartman, "Handling Normative References
2471              to Standards-Track Documents", BCP 97, RFC 4897,
2472              June 2007, <http://www.rfc-editor.org/info/bcp97>.
2473
2474   [DC-HTML]  Johnston, P. and A. Powell, "Expressing Dublin Core
2475              metadata using HTML/XHTML meta and link elements", Dublin
2476              Core Metadata Initiative , August 2008,
2477              <http://dublincore.org/documents/2008/08/04/dc-html/>.
2478
2479   [HTML5]    Hickson, I., Berjon, R., Faulkner, S., Leithead, T., Doyle
2480              Navara, E., O'Connor, E., and S. Pfeiffer, "HTML5", W3C
2481              Recommendation REC-html5-20141028, October 2014,
2482              <http://www.w3.org/TR/2014/REC-html5-20141028/>.
2483
2484              Latest version available at <http://www.w3.org/TR/html5/>.
2485
2486   [RFC2026]  Bradner, S., "The Internet Standards Process -- Revision
2487              3", BCP 9, RFC 2026, DOI 10.17487/RFC2026, October 1996,
2488              <http://www.rfc-editor.org/info/rfc2026>.
2489
2490   [RFC2045]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
2491              Extensions (MIME) Part One: Format of Internet Message
2492              Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996,
2493              <http://www.rfc-editor.org/info/rfc2045>.
2494
2495   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
2496              Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
2497              RFC2119, March 1997,
2498              <http://www.rfc-editor.org/info/rfc2119>.
2499
2500   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Nielsen, H.,
2501              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
2502              Transfer Protocol -- HTTP/1.1", RFC 2616, DOI 10.17487/
2503              RFC2616, June 1999,
2504              <http://www.rfc-editor.org/info/rfc2616>.
2505
2506   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
2507              DOI 10.17487/RFC2629, June 1999,
2508              <http://www.rfc-editor.org/info/rfc2629>.
2509
2510   [RFC2648]  Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
2511              DOI 10.17487/RFC2648, August 1999,
2512              <http://www.rfc-editor.org/info/rfc2648>.
2513
2514   [RFC2731]  Kunze, J., "Encoding Dublin Core Metadata in HTML",
2515              RFC 2731, DOI 10.17487/RFC2731, December 1999,
2516
2517
2518
2519Reschke                                                        [Page 45]
2520
2521Documentation             RFC2629 through XSLT                March 2016
2522
2523
2524              <http://www.rfc-editor.org/info/rfc2731>.
2525
2526   [RFC5234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
2527              Specifications: ABNF", STD 68, RFC 5234, DOI 10.17487/
2528              RFC5234, January 2008,
2529              <http://www.rfc-editor.org/info/rfc5234>.
2530
2531   [RFC7230]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
2532              Protocol (HTTP/1.1): Message Syntax and Routing",
2533              RFC 7230, DOI 10.17487/RFC7230, June 2014,
2534              <http://www.rfc-editor.org/info/rfc7230>.
2535
2536   [RFC7749]  Reschke, J., "The "xml2rfc" Version 2 Vocabulary",
2537              RFC 7749, DOI 10.17487/RFC7749, February 2016,
2538              <http://www.rfc-editor.org/info/rfc7749>.
2539
2540   [RNC]      Clark, J., "RELAX NG Compact Syntax", OASIS , Nov 2002, <h
2541              ttp://www.oasis-open.org/committees/relax-ng/
2542              compact-20021121.html>.
2543
2544   [XHTML2]   Birbeck, M., Gylling, M., McCarron, S., Pemberton, S.,
2545              Axelsson, J., Dubinko, M., Epperson, B., Ishikawa, M., and
2546              A. Navarro, "XHTML(tm) 2.0", W3C Group Note NOTE-xhtml2-
2547              20101216, December 2010,
2548              <http://www.w3.org/TR/2010/NOTE-xhtml2-20101216>.
2549
2550              Latest version available at <http://www.w3.org/TR/xhtml2>.
2551
2552   [XML]      Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and
2553              F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth
2554              Edition)", W3C Recommendation REC-xml-20081126,
2555              November 2008,
2556              <http://www.w3.org/TR/2008/REC-xml-20081126/>.
2557
2558              Latest version available at <http://www.w3.org/TR/xml>.
2559
2560   [XML2RFCV3]
2561              Hoffman, P., "The "xml2rfc" version 3 Vocabulary",
2562              draft-iab-xml2rfc-03 (work in progress), February 2016.
2563
2564   [XSL-FO]   Berglund, A., "Extensible Stylesheet Language (XSL)
2565              Version 1.1", W3C Recommendation REC-xsl11-20061205,
2566              December 2006,
2567              <http://www.w3.org/TR/2006/REC-xsl11-20061205/>.
2568
2569              Latest version available at <http://www.w3.org/TR/xsl11/>.
2570
2571   [1]  <http://www.exslt.org/exsl/functions/node-set/index.html>
2572
2573
2574
2575Reschke                                                        [Page 46]
2576
2577Documentation             RFC2629 through XSLT                March 2016
2578
2579
2580   [2]  <http://www.exslt.org/date/functions/date-time/>
2581
2582   [3]  <http://www.microsoft.com/downloads/
2583        details.aspx?FamilyID=2FB55371-C94E-4373-B0E9-DB4816552E41>
2584
2585   [4]  <https://addons.mozilla.org/de/firefox/addon/722>
2586
2587   [5]  <https://bugzilla.mozilla.org/show_bug.cgi?id=22942>
2588
2589   [6]  <http://bugzilla.mozilla.org/show_bug.cgi?id=193678>
2590
2591   [7]  <https://addons.mozilla.org/firefox/2933/>
2592
2593   [8]  <http://www.thaiopensource.com/relaxng/jing.html>
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631Reschke                                                        [Page 47]
2632
2633Documentation             RFC2629 through XSLT                March 2016
2634
2635
2636Appendix A.  RELAX NG Compact Schema
2637
2638   The RelaxNG schema ([RNC]) below can be used to validate input
2639   documents (for instance, with Jing [8]).
2640
2641   _Note that this is work in progress, and doesn't yet cover all
2642   extensions completely._
2643
2644   # WORK IN PROGRESS! PLEASE REPORT PROBLEMS TO THE AUTHOR.
2645
2646   # Define our extension namespace
2647   namespace x = "http://purl.org/net/xml2rfc/ext"
2648
2649   # Define GRDDL namespace
2650   namespace grddl = "http://www.w3.org/2003/g/data-view#"
2651
2652   # Define RDF namespace
2653   namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
2654
2655   # Define SVG namespace
2656   namespace svg = "http://www.w3.org/2000/svg"
2657
2658   # Define XInclude namespace
2659   namespace xi = "http://www.w3.org/2001/XInclude"
2660
2661   # Include rfc2629bis RNC grammar
2662   include "rfc2629.rnc" {
2663
2664     # Redefine <annotation> to allow more markup
2665     annotation =
2666       element annotation {
2667         attlist.annotation,
2668         (TEXT
2669           | xref
2670           | eref
2671           | iref
2672           | cref
2673           | spanx
2674           | v3_tt
2675           )*
2676       }
2677
2678     # Redefine <artwork> to allow markup
2679     artwork =
2680       element artwork {
2681         attlist.artwork,
2682         ( v3_svg |
2683           (TEXT
2684
2685
2686
2687Reschke                                                        [Page 48]
2688
2689Documentation             RFC2629 through XSLT                March 2016
2690
2691
2692             | eref
2693             | iref
2694             | spanx
2695             | xref
2696             | v3_em
2697             | v3_strong
2698             | x_abnf-char-sequence
2699             | x_bb
2700             | x_bc
2701             | x_bcp14
2702             | x_bt
2703             | x_highlight
2704             | x_length-of
2705             | x_parse-xml
2706             | x_ref
2707             | x_span
2708             | x_x)*
2709           )
2710       }
2711
2712     # Redefine <back> to allow displayreference
2713     back =
2714       element back {
2715         attlist.back,
2716         v3_displayreference*,
2717         references*,
2718         section*
2719       }
2720
2721     # Redefine <c> to allow our extension elements
2722     c =
2723       element c {
2724         attlist.c,
2725         (TEXT
2726           | xref
2727           | eref
2728           | iref
2729           | cref
2730           | spanx
2731           | v3_em
2732           | v3_strong
2733           | v3_tt
2734           | x_ref)*
2735       }
2736
2737     # Redefine <cref> to allow more child elements
2738     cref =
2739       element cref {
2740
2741
2742
2743Reschke                                                        [Page 49]
2744
2745Documentation             RFC2629 through XSLT                March 2016
2746
2747
2748         attlist.cref,
2749         (TEXT
2750           | eref
2751           | xref)*
2752       }
2753
2754     # Redefine <figure> to allow more child elements
2755     figure =
2756       element figure {
2757         attlist.cref,
2758         iref*,
2759         preamble?,
2760         ( artwork | v3_sourcecode),
2761         postamble?
2762       }
2763
2764     # Redefine <front> to allow boilerplate
2765     front =
2766       element front {
2767         attlist.front,
2768         title,
2769         author+,
2770         date,
2771         area*,
2772         workgroup*,
2773         keyword*,
2774         abstract?,
2775         v3_boilerplate?,
2776         note*
2777       }
2778
2779     # Redefine <list> element to allow <x:lt> child elements
2780     \list =
2781       element list {
2782         attlist.list,
2783         (t+ | x_lt+)
2784       }
2785
2786     # Redefine <preamble> to allow our extension elements
2787     preamble =
2788       element preamble {
2789         attlist.preamble,
2790         (TEXT
2791           | xref
2792           | eref
2793           | iref
2794           | cref
2795           | spanx
2796
2797
2798
2799Reschke                                                        [Page 50]
2800
2801Documentation             RFC2629 through XSLT                March 2016
2802
2803
2804           | v3_em
2805           | v3_strong
2806           | v3_tt
2807           | x_anchor-alias
2808           | x_bcp14)*
2809     }
2810
2811     # Redefine <postal> to allow <postalLine>
2812     postal =
2813       element postal {
2814         (
2815           (city
2816             | code
2817             | country
2818             | region
2819             | street)*
2820           | v3_postalLine+)
2821       }
2822
2823     # Redefine <postamble> to allow our extension elements
2824     postamble =
2825       element postamble {
2826         attlist.postamble,
2827         (TEXT
2828           | xref
2829           | eref
2830           | iref
2831           | cref
2832           | spanx
2833           | v3_em
2834           | v3_strong
2835           | v3_tt
2836           | x_bcp14)*
2837       }
2838
2839     # Redefine <reference> to allow our extension elements
2840     reference =
2841       element reference {
2842         attlist.reference,
2843         front,
2844         seriesInfo*,
2845         x_prose?,
2846         v3_refcontent?,
2847         format*,
2848         annotation*,
2849         x_source?
2850       }
2851
2852
2853
2854
2855Reschke                                                        [Page 51]
2856
2857Documentation             RFC2629 through XSLT                March 2016
2858
2859
2860     # Redefine <references> to allow our <name>
2861     references =
2862       element references {
2863         attribute title { text }?,
2864         v3_name?,
2865         (reference
2866          | xi_include)+
2867       }
2868
2869     # Redefine <rfc> to allow our extension elements
2870     rfc =
2871       element rfc {
2872         attlist.rfc,
2873         x_link*,
2874         x_feedback?,
2875         x_assign-section-number*,
2876         front,
2877         middle,
2878         back?
2879       }
2880
2881     # Redefine <section> to allow our extension elements
2882     section =
2883       element section {
2884         attlist.x_section,
2885         (t
2886          | figure
2887          | texttable
2888          | iref
2889          | section
2890          | v3_aside
2891          | v3_blockquote
2892          | v3_dl
2893          | v3_name
2894          | v3_ol
2895          | v3_sourcecode
2896          | v3_ul
2897          | x_anchor-alias
2898          | x_blockquote
2899          | x_include-author
2900          | x_note
2901          | rdf_Description)*
2902       }
2903
2904     # Redefine <spanx> to allow some markup
2905     spanx =
2906       element spanx {
2907         attlist.spanx,
2908
2909
2910
2911Reschke                                                        [Page 52]
2912
2913Documentation             RFC2629 through XSLT                March 2016
2914
2915
2916         (TEXT
2917           | iref
2918           | xref
2919           | x_ref)*
2920       }
2921
2922     # Redefine <t> to allow our extension elements
2923     t =
2924       element t {
2925         attlist.t,
2926         (TEXT
2927          | \list
2928          | figure
2929          | xref
2930          | eref
2931          | iref
2932          | cref
2933          | spanx
2934          | vspace
2935          | v3_bcp14
2936          | v3_em
2937          | v3_strong
2938          | v3_sub
2939          | v3_sup
2940          | v3_tt
2941          | x_abnf-char-sequence
2942          | x_anchor-alias
2943          | x_bcp14
2944          | x_dfn
2945          | x_h
2946          | x_q
2947          | x_ref
2948          | x_span
2949          | x_sup)*
2950       }
2951   }
2952
2953   # Allow extension attributes on <artwork> (Section 11.22)
2954   attlist.artwork &=
2955     attribute x:indent-with { ATEXT }?,
2956     attribute x:lang { "" }?,
2957     attribute x:is-code-component { "no" | "yes" }?
2958
2959   # Allow anchor and x:annotation attributes on <author>
2960   attlist.author &=
2961     attribute anchor { xsd:ID }?,
2962     attribute x:annotation { ATEXT }?
2963
2964
2965
2966
2967Reschke                                                        [Page 53]
2968
2969Documentation             RFC2629 through XSLT                March 2016
2970
2971
2972   # Extend attribute set for <c> (see Section 11.23)
2973   attlist.c &=
2974     attribute anchor { xsd:ID }?
2975
2976   # Extend attribute set for <iref> (see Section 11.23)
2977   attlist.iref &=
2978     attribute x:for-anchor { ATEXT }?
2979
2980   # Extend attribute set for <list> (see Section 11.24)
2981   attlist.list &=
2982     attribute x:indent { ATEXT }?
2983
2984   # Extend attribute set for <preamble>
2985   attlist.preamble &=
2986     attribute anchor { xsd:ID }?
2987
2988   # Extend attribute set for <reference>
2989   attlist.reference &=
2990     attribute quoteTitle { "false" | "true" }? # see Section 12.16.1
2991
2992   # Extend attribute set for <rfc>
2993   attlist.rfc &=
2994     attribute grddl:transformation { ATEXT }?,
2995     attribute x:maturity-level { "proposed" | "draft" | "internet" }?
2996
2997   # Extend/Relax attribute set for <section> (see Section 11.26)
2998   attlist.x_section &=
2999     attribute anchor { xsd:ID }?,
3000     attribute title { ATEXT }?,
3001     attribute toc { "include" | "exclude" | "default" }?,
3002     attribute numbered { "false" | "true" }?, # see Section 12.17.1
3003     attribute removeInRFC { "false" | "true" }?, # see Section 12.17.2
3004     attribute x:fixed-section-number { ATEXT }?
3005
3006   # Allow anchor attribute on <spanx>
3007   attlist.spanx &=
3008     attribute anchor { xsd:ID }?
3009
3010   # Allow x:quotes attribute on <title>
3011   attlist.title &=
3012     attribute x:quotes { "true" | "false" }?
3013
3014   # Allow annotation attribute on <uri>
3015   attlist.uri &=
3016     attribute x:annotation { ATEXT }?
3017
3018   # Extend attribute set for <xref> (see Section 11.27)
3019   attlist.xref &=
3020
3021
3022
3023Reschke                                                        [Page 54]
3024
3025Documentation             RFC2629 through XSLT                March 2016
3026
3027
3028     attribute x:fmt  { "()" | "," | "of" | "number" | "sec" |
3029                        "none" }?,
3030     attribute x:rel  { ATEXT }?,
3031     attribute x:sec  { ATEXT }?
3032
3033   # Side Note (see Section 12.1)
3034   v3_aside =
3035     element aside {
3036       attribute anchor { xsd:ID }?,
3037       t+
3038     }
3039
3040   # BCP14/RFC2119 keywords (see Section 12.2)
3041   v3_bcp14 =
3042     element bcp14 {
3043       "MAY"
3044       | "MUST"
3045       | "MUST NOT"
3046       | "NOT RECOMMENDED"
3047       | "OPTIONAL"
3048       | "RECOMMENDED"
3049       | "REQUIRED"
3050       | "SHALL"
3051       | "SHALL NOT"
3052       | "SHOULD"
3053       | "SHOULD NOT"
3054     }
3055
3056   # Blockquote (see Section 12.3)
3057   v3_blockquote =
3058     element blockquote {
3059       attribute anchor { xsd:ID }?,
3060       attribute cite { URI }?,
3061       t+
3062     }
3063
3064   # Boilerplate (see Section 12.3)
3065   v3_boilerplate =
3066     element boilerplate {
3067       section+
3068     }
3069
3070   # Mapping of reference names to display names (see Section 12.5)
3071   v3_displayreference =
3072     element displayreference {
3073       attribute target { xsd:IDREF },
3074       attribute to { ATEXT }
3075     }
3076
3077
3078
3079Reschke                                                        [Page 55]
3080
3081Documentation             RFC2629 through XSLT                March 2016
3082
3083
3084   # Definition List Description Element (see Section 12.6)
3085   v3_dd =
3086     element dd {
3087       (t
3088         | v3_dl)+ |
3089       (TEXT
3090         | cref
3091         | eref
3092         | iref
3093         | xref
3094         | v3_em
3095         | v3_tt
3096         | v3_strong)*
3097     }
3098
3099   # Definition List (see Section 12.7)
3100   v3_dl =
3101     element dl {
3102          attribute spacing { "normal" | "compact" }?,
3103          attribute hanging { "false" | "true" }?,
3104          (v3_dt, v3_dd)+
3105     }
3106
3107   # Definition List Description Term (see Section 12.8)
3108   v3_dt =
3109     element dt {
3110       attribute anchor { xsd:ID }?,
3111       (TEXT
3112         | cref
3113         | eref
3114         | iref
3115         | xref
3116         | v3_em
3117         | v3_tt
3118         | v3_strong)*
3119     }
3120
3121   # Emphasized Text (see Section 12.9)
3122   v3_em =
3123     element em {
3124       (TEXT
3125         | xref
3126         | v3_strong
3127         | x_ref)*
3128     }
3129
3130   # Definition List (see Section 12.10)
3131   v3_li =
3132
3133
3134
3135Reschke                                                        [Page 56]
3136
3137Documentation             RFC2629 through XSLT                March 2016
3138
3139
3140     element li {
3141       attribute anchor { xsd:ID }?,
3142       ((v3_dl | v3_ol  | t | v3_ul )+
3143         |
3144       (TEXT
3145         | cref
3146         | eref
3147         | iref
3148         | xref
3149         | v3_em
3150         | v3_strong
3151         | v3_sub
3152         | v3_sup
3153         | v3_tt
3154         | x_ref)*
3155       )
3156     }
3157
3158   # Section/Figure/Table Name (see Section 12.11)
3159   v3_name =
3160     element name {
3161       (TEXT
3162         | v3_tt
3163         | xref)*
3164     }
3165
3166   # Ordered List (see Section 12.12)
3167   v3_ol =
3168     element ol {
3169       attribute anchor { xsd:ID }?,
3170       attribute start { TEXT }?,
3171       v3_li+
3172     }
3173
3174   # Line in postal address (see Section 12.13)
3175   v3_postalLine =
3176     element postalLine {
3177       TEXT
3178     }
3179
3180   # additional content for references (see Section 12.14)
3181   v3_refcontent =
3182     element refcontent {
3183       (TEXT
3184         | v3_em)*
3185     }
3186
3187   # Source Code (see Section 12.15)
3188
3189
3190
3191Reschke                                                        [Page 57]
3192
3193Documentation             RFC2629 through XSLT                March 2016
3194
3195
3196   v3_sourcecode =
3197     element sourcecode {
3198       attribute anchor { xsd:ID }?,
3199       attribute x:lang { "" }?,
3200       TEXT
3201     }
3202
3203   # Emphasized Text (see Section 12.18)
3204   v3_strong =
3205     element strong {
3206       (TEXT
3207         | xref
3208         | v3_em
3209         | x_ref)*
3210     }
3211
3212   # Subscript (see Section 12.19)
3213   v3_sub =
3214     element sub {
3215       (TEXT)*
3216     }
3217
3218   # Superscript (see Section 12.20)
3219   v3_sup =
3220     element sup {
3221       (TEXT)*
3222     }
3223
3224   # Monospaced Text (see Section 12.22)
3225   v3_tt =
3226     element tt {
3227       (TEXT
3228         | xref
3229         | v3_em
3230         | x_ref)*
3231     }
3232
3233   # Unordered List (see Section 12.23)
3234   v3_ul =
3235     element ul {
3236       attribute anchor { xsd:ID }?,
3237       attribute empty { TEXT }?,
3238       v3_li+
3239     }
3240
3241   # SVG (see Section 12.21)
3242   v3_svg =
3243     element svg:svg {
3244
3245
3246
3247Reschke                                                        [Page 58]
3248
3249Documentation             RFC2629 through XSLT                March 2016
3250
3251
3252       (attribute * { text }
3253           | text
3254           | anySVGElement)*
3255     }
3256
3257    anySVGElement =
3258       element svg:* {
3259          (attribute * { text }
3260           | text
3261           | anySVGElement)*
3262       }
3263
3264   # Conversion to ABNF char sequence (see Section 11.1)
3265   x_abnf-char-sequence =
3266     element x:abnf-char-sequence {
3267       TEXT
3268     }
3269
3270   # Aliasing of anchors (see Section 11.2)
3271   x_anchor-alias =
3272     element x:anchor-alias {
3273       attribute value { TEXT },
3274       empty
3275     }
3276
3277   # Supply feedback links (see Section 11.9)
3278   x_feedback =
3279     element x:feedback {
3280       attribute template { TEXT },
3281       empty
3282     }
3283
3284   # Including Author information
3285   # (experimental)
3286   x_include-author =
3287     element x:include-author {
3288       attribute target { xsd:IDREF }
3289     }
3290
3291   # Setting section numbers for internally generated sections
3292   # (experimental)
3293   x_assign-section-number =
3294     element x:assign-section-number {
3295       attribute builtin-target { "authors" },
3296       attribute number { TEXT },
3297       empty
3298     }
3299
3300
3301
3302
3303Reschke                                                        [Page 59]
3304
3305Documentation             RFC2629 through XSLT                March 2016
3306
3307
3308   # Bottom line of box drawing (see Section 11.4)
3309   x_bb =
3310     element x:bb {
3311       (TEXT
3312         | iref
3313         | xref
3314         | x_bb
3315         | x_bc
3316         | x_bt
3317         | x_ref)*
3318     }
3319
3320   # Center line of box drawing (see Section 11.5)
3321   x_bc =
3322     element x:bc {
3323       (TEXT
3324         | iref
3325         | spanx
3326         | xref
3327         | x_bb
3328         | x_bc
3329         | x_bt
3330         | x_ref)*
3331     }
3332
3333   # BCP14/RFC2119 keywords (see Section 11.3)
3334   x_bcp14 =
3335     element x:bcp14 {
3336       "MAY"
3337       | "MUST"
3338       | "MUST NOT"
3339       | "NOT RECOMMENDED"
3340       | "OPTIONAL"
3341       | "RECOMMENDED"
3342       | "REQUIRED"
3343       | "SHALL"
3344       | "SHALL NOT"
3345       | "SHOULD"
3346       | "SHOULD NOT"
3347     }
3348
3349   # Blockquote (see Section 11.6)
3350   x_blockquote =
3351     element x:blockquote {
3352       attribute anchor { xsd:ID }?,
3353       attribute cite { URI }?,
3354       t+
3355     }
3356
3357
3358
3359Reschke                                                        [Page 60]
3360
3361Documentation             RFC2629 through XSLT                March 2016
3362
3363
3364   # Top line of box drawing (see Section 11.7)
3365   x_bt =
3366     element x:bt {
3367       (TEXT
3368         | iref
3369         | xref
3370         | x_bb
3371         | x_bc
3372         | x_bt
3373         | x_ref)*
3374     }
3375
3376   # Definition (see Section 11.8)
3377   x_dfn =
3378     element x:dfn {
3379       attribute anchor { xsd:ID }?,
3380       (TEXT
3381         | iref)*
3382     }
3383
3384   # Heading (see Section 11.10)
3385   x_h =
3386     element x:h {
3387       TEXT
3388     }
3389
3390   # Heading (see Section 11.11)
3391   x_highlight =
3392     element x:highlight {
3393       TEXT
3394     }
3395
3396   # Length Measurement (see Section 11.12)
3397   x_length-of =
3398     element x:length-of {
3399       attribute indented { NUMBER }?,
3400       attribute target { xsd:IDREF },
3401       empty
3402     }
3403
3404   # Link (see Section 11.13)
3405   x_link =
3406     element x:link {
3407       attribute basename { URI }?,
3408       attribute href { URI }?,
3409       attribute title { TEXT }?,
3410       attribute rel { TEXT },
3411       empty
3412
3413
3414
3415Reschke                                                        [Page 61]
3416
3417Documentation             RFC2629 through XSLT                March 2016
3418
3419
3420     }
3421
3422   # Extended list item (see Section 11.14)
3423   x_lt =
3424     element x:lt {
3425       attribute anchor { xsd:ID }?,
3426       attribute hangText { TEXT }?,
3427       t+
3428     }
3429
3430   # Note (see Section 11.15)
3431   x_note =
3432     element x:note {
3433       attribute anchor { xsd:ID }?,
3434       t+
3435     }
3436
3437   # Signal XML content (see Section 11.16)
3438   x_parse-xml =
3439     element x:parse-xml {
3440       (TEXT
3441         | xref)*
3442     }
3443
3444   # Inline prose in a reference (see Section 11.17)
3445   x_prose =
3446     element x:prose {
3447       TEXT
3448     }
3449
3450   # Inline quote (see Section 11.18)
3451   x_q =
3452     element x:q {
3453       TEXT
3454     }
3455
3456   # Anchor reference (see Section 11.19)
3457   x_ref =
3458     element x:ref {
3459       attribute anchor { xsd:ID }?,
3460       TEXT
3461     }
3462
3463   # source information (see Section 11.20)
3464   x_source =
3465     element x:source {
3466       attribute basename { ATEXT }?,
3467       attribute href { URI },
3468
3469
3470
3471Reschke                                                        [Page 62]
3472
3473Documentation             RFC2629 through XSLT                March 2016
3474
3475
3476       empty
3477     }
3478
3479   # superscript (see Section 11.21)
3480   x_sup =
3481     element x:sup {
3482       TEXT
3483     }
3484
3485   # Inline Span
3486   x_span =
3487     element x:span {
3488       attribute anchor { xsd:ID }?,
3489       attribute x:lang { "" }?,
3490       (TEXT
3491         | x_parse-xml)*
3492     }
3493
3494   # Nop (for alignment in source)
3495   x_x =
3496     element x:x {
3497       empty
3498     }
3499
3500   # XInclude
3501   xi_include =
3502     element xi:include {
3503       attribute href { text },
3504       empty
3505     }
3506
3507   # Embed RDF statements
3508   rdf_Description =
3509     element rdf:Description {
3510       rdf_content
3511     }
3512
3513   rdf_content =
3514     ( TEXT | element * { rdf_content })*
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527Reschke                                                        [Page 63]
3528
3529Documentation             RFC2629 through XSLT                March 2016
3530
3531
3532Appendix B.  Implementation Notes
3533
3534B.1.  Recognized type attributes for <artwork> element
3535
3536   Specific values in the <artwork> element's "type" attribute are
3537   recognized and cause a different visual style to be used:
3538
3539   +-------------------------------------+-----------------------------+
3540   | Type                                | Comment                     |
3541   +-------------------------------------+-----------------------------+
3542   | abnf                                | ABNF as per [RFC5234]       |
3543   |                                     |                             |
3544   | abnf2045                            | ABNF as per [RFC2045]       |
3545   |                                     |                             |
3546   | abnf2616                            | ABNF as per [RFC2616],      |
3547   |                                     | Section 2.1                 |
3548   |                                     |                             |
3549   | abnf7230                            | ABNF as per [RFC7230],      |
3550   |                                     | Section 1.2                 |
3551   |                                     |                             |
3552   | application/relax-ng-compact-syntax | Relax NG Compact Syntax as  |
3553   |                                     | per [RNC]                   |
3554   |                                     |                             |
3555   | application/xml-dtd                 | XML DTD                     |
3556   |                                     |                             |
3557   | code                                | monospaced text (with       |
3558   |                                     | outline)                    |
3559   |                                     |                             |
3560   | drawing                             | drawing (with outline)      |
3561   |                                     |                             |
3562   | example                             | monospaced text (with       |
3563   |                                     | outline)                    |
3564   |                                     |                             |
3565   | inline                              | monospaced text (no         |
3566   |                                     | outline)                    |
3567   |                                     |                             |
3568   | message/http; msgtype="request"     | HTTP message, as per        |
3569   |                                     | [RFC2616], Section 19.1     |
3570   |                                     |                             |
3571   | message/http; msgtype="response"    | HTTP message, as per        |
3572   |                                     | [RFC2616], Section 19.1     |
3573   +-------------------------------------+-----------------------------+
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583Reschke                                                        [Page 64]
3584
3585Documentation             RFC2629 through XSLT                March 2016
3586
3587
3588Appendix C.  Examples
3589
3590C.1.  Using the 'Internal Subset'
3591
3592   The prolog of the XML document can both be used to refer to an
3593   external DTD, and also to define internal entities (Section 2.8 of
3594   [XML]):
3595
3596   <?xml version="1.0"?>
3597   <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
3598
3599   <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
3600
3601     <!-- use "&MAY;" for a BCP 14 "MAY", see Section 11.3 -->
3602     <!ENTITY MAY
3603     "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>MAY</bcp14>">
3604
3605     <!-- re-declare "&nbsp;" as code point 160 (non-breaking space) -->
3606     <!-- you may need this for UAs that do not read external DTDs -->
3607     <!ENTITY nbsp
3608     "&#160;">
3609
3610     <!-- allow later RFC2616 reference using "&rfc2616;" -->
3611     <!-- the data will be fetched from xml.resource.org -->
3612     <!ENTITY rfc2616 SYSTEM
3613     "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
3614
3615     <!-- allow a custom reference using "&mydraft;" -->
3616     <!-- the data will be fetched from the same location as the
3617          source file -->
3618     <!ENTITY mydraft SYSTEM "reference.mydraft.xml">
3619   ]>
3620
3621   Note: including entities from a remote site will not work in Firefox,
3622   see <https://bugzilla.mozilla.org/show_bug.cgi?id=22942>.
3623
3624C.2.  Customization
3625
3626   The XSLT code can be customized by creating a custom XSLT file that
3627   uses <xsl:import> to include the original code, and just overrides
3628   particular rules.
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639Reschke                                                        [Page 65]
3640
3641Documentation             RFC2629 through XSLT                March 2016
3642
3643
3644   For instance, the code below overrides several attributes in
3645   "rfc2629toFO.xslt", changing the color, spacing and font family for
3646   headers.
3647
3648   <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3649                  version="1.0">
3650
3651     <xsl:import href="rfc2629toFO.xslt"/>
3652
3653     <xsl:attribute-set name="h1">
3654       <xsl:attribute name="color">darkblue</xsl:attribute>
3655       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
3656       <xsl:attribute name="space-before">24pt</xsl:attribute>
3657     </xsl:attribute-set>
3658
3659     <xsl:attribute-set name="h2">
3660       <xsl:attribute name="color">darkblue</xsl:attribute>
3661       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
3662       <xsl:attribute name="space-before">18pt</xsl:attribute>
3663       <xsl:attribute name="space-after">3pt</xsl:attribute>
3664     </xsl:attribute-set>
3665
3666     <xsl:attribute-set name="h3">
3667       <xsl:attribute name="color">darkblue</xsl:attribute>
3668       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
3669       <xsl:attribute name="space-before">16pt</xsl:attribute>
3670       <xsl:attribute name="space-after">2pt</xsl:attribute>
3671     </xsl:attribute-set>
3672
3673   </xsl:transform>
3674
3675      Note: the name for the attribute sets may change in the future as
3676      more working is done with respect to customizability.  In any
3677      case, overriding the settings in a separate file will be easier to
3678      maintain.  Please contact the author if you find yourself trying
3679      to override style definitions that currently do not use attribute
3680      sets.
3681
3682      Note: the CSS style information used in "rfc2629.xslt" can be
3683      overriden in a similar (but less granular) way: just overwrite the
3684      template called "insertCss".  As for XSL-FO, the class names may
3685      change in future.
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695Reschke                                                        [Page 66]
3696
3697Documentation             RFC2629 through XSLT                March 2016
3698
3699
3700Appendix D.  Producing the IETF 'Boilerplate'
3701
3702   Various attributes of the "<rfc>" element plus some child elements of
3703   "<front>" affect the automatically generated parts of the front page,
3704   such as the tabular information at the beginning, the "Status Of This
3705   Memo", and the "Copyright Notice".
3706
3707   When submitting an Internet Draft, this "boilerplate" is checked by
3708   "Idnits" (<http://tools.ietf.org/tools/idnits/>) for compliance with
3709   the current Intellectual Property rules, and thus it is important to
3710   set the correct values.
3711
3712   Furthermore, the RFC Production Center uses RFC2629-based tools to
3713   generate the final RFC text, so the more accurate the supplied
3714   information is, the less additional work is left, and the risk for
3715   errors in producing the final (and immutable!) document is reduced.
3716
3717      Note: this only applies to the case when IETF documents are
3718      produced.  The "private" processing instruction allows to switch
3719      off most of the autogeneration logic.
3720
3721   The individual attributes on the "<rfc>" element are discussed in
3722   detail in Appendix A of [RFC7749].
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751Reschke                                                        [Page 67]
3752
3753Documentation             RFC2629 through XSLT                March 2016
3754
3755
3756Appendix E.  License
3757
3758   Copyright (c) 2006-2016, Julian Reschke
3759   (julian.reschke@greenbytes.de)
3760
3761   All rights reserved.
3762
3763   Redistribution and use in source and binary forms, with or without
3764   modification, are permitted provided that the following conditions
3765   are met:
3766
3767   o  Redistributions of source code must retain the above copyright
3768      notice, this list of conditions and the following disclaimer.
3769
3770   o  Redistributions in binary form must reproduce the above copyright
3771      notice, this list of conditions and the following disclaimer in
3772      the documentation and/or other materials provided with the
3773      distribution.
3774
3775   o  Neither the name of Julian Reschke nor the names of its
3776      contributors may be used to endorse or promote products derived
3777      from this software without specific prior written permission.
3778
3779   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
3780   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3781   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
3782   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
3783   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
3784   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
3785   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3786   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3787   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3788   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3789   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807Reschke                                                        [Page 68]
3808
3809Documentation             RFC2629 through XSLT                March 2016
3810
3811
3812Index
3813
3814   A
3815      abnf-char-sequence Extension Element  24, 48
3816      allow-markup-in-artwork PI pseudo-attribute  10
3817      alternate HTML LINK element  18
3818      anchor-alias Extension Element  24, 48
3819      Anchors
3820         rfc.abstract  13
3821         rfc.authors  13
3822         rfc.copyright  13
3823         rfc.copyrightnotice  13
3824         rfc.figure.n  13
3825         rfc.figure.u.n  13
3826         rfc.index  13
3827         rfc.ipr  13
3828         rfc.iref.n  13
3829         rfc.note.n  13
3830         rfc.references  13
3831         rfc.section.n  13
3832         rfc.section.n.p.m  13
3833         rfc.status  13
3834         rfc.toc  13
3835         rfc.xref.name.n  13
3836      AntennaHouse XSL Formatter  22
3837      Apache FOP  22
3838      appendix HTML LINK element  18
3839      aside V3 Extension Element  32, 48
3840      assign-section-number Extension Element  48
3841      author HTML LINK element  18
3842      authors-section PI pseudo-attribute  10
3843
3844   B
3845      background PI pseudo-attribute  7
3846      bb Extension Element  25, 48
3847      bc Extension Element  25, 48
3848      bcp14 Extension Element  24, 48
3849      bcp14 V3 Extension Element  32, 48
3850      blockquote Extension Element  25, 48
3851      blockquote V3 Extension Element  32, 48
3852      boilerplate V3 Extension Element  32, 48
3853      bt Extension Element  25, 48
3854
3855   C
3856      chapter HTML LINK element  18
3857      CHM format  21
3858      comments PI pseudo-attribute  7
3859      compact PI pseudo-attribute  7
3860
3861
3862
3863Reschke                                                        [Page 69]
3864
3865Documentation             RFC2629 through XSLT                March 2016
3866
3867
3868      contents HTML LINK element  18
3869      copyright HTML LINK element  18
3870      Creator DCMI property  19
3871
3872   D
3873      Date.Issued DCMI property  19
3874      DCMI properties
3875         Creator  19
3876         Date.Issued  19
3877         Description.Abstract  19
3878         Identifier  19
3879         isPartOf  19
3880         Relation.Replaces  19
3881      dd V3 Extension Element  32, 48
3882      Description.Abstract DCMI property  19
3883      dfn Extension Element  26, 48
3884      displayreference V3 Extension Element  32, 48
3885      dl V3 Extension Element  32, 48
3886      docmapping PI pseudo-attribute  7
3887      dt V3 Extension Element  32, 48
3888      duplex PI pseudo-attribute  10
3889
3890   E
3891      editing PI pseudo-attribute  7
3892      em V3 Extension Element  32, 48
3893      Extension Elements
3894         abnf-char-sequence  24, 48
3895         anchor-alias  24, 48
3896         assign-section-number  48
3897         bb  25, 48
3898         bc  25, 48
3899         bcp14  24, 48
3900         blockquote  25, 48
3901         bt  25, 48
3902         dfn  26, 48
3903         feedback  26, 48
3904         h  26, 48
3905         highlight  26, 48
3906         include-author  48
3907         length-of  26, 48
3908         link  27, 48
3909         lt  27, 48
3910         note  27, 48
3911         parse-xml  27, 48
3912         prose  27, 48
3913         q  28, 48
3914         rdf:Description  48
3915         ref  28, 48
3916
3917
3918
3919Reschke                                                        [Page 70]
3920
3921Documentation             RFC2629 through XSLT                March 2016
3922
3923
3924         source  28, 48
3925         span  48
3926         sup  29, 48
3927         x  48
3928
3929   F
3930      feedback Extension Element  26, 48
3931      Firefox
3932         1.*/2.*  15
3933         3.*  14
3934      footer PI pseudo-attribute  7
3935
3936   G
3937      generator HTML META element  18
3938      Google Chrome  15
3939      Grammar  48
3940
3941   H
3942      h Extension Element  26, 48
3943      header PI pseudo-attribute  7
3944      highlight Extension Element  26, 48
3945      HTML compliance  16
3946      HTML LINK elements
3947         alternate  18
3948         appendix  18
3949         author  18
3950         chapter  18
3951         contents  18
3952         copyright  18
3953         index  18
3954      HTML META elements
3955         generator  18
3956         keywords  18
3957      html-pretty-print PI pseudo-attribute  10
3958
3959   I
3960      Identifier DCMI property  19
3961      include PI pseudo-attribute  7, 40
3962      include-author Extension Element  48
3963      include-index PI pseudo-attribute  10
3964      include-references-in-index PI pseudo-attribute  10
3965      index HTML LINK element  18
3966      inline PI pseudo-attribute  7
3967      insert-metadata PI pseudo-attribute  10
3968      Internet Explorer 5.5  14
3969      Internet Explorer 6  14
3970      Internet Explorer 7  14
3971      Internet Explorer 8  14
3972
3973
3974
3975Reschke                                                        [Page 71]
3976
3977Documentation             RFC2629 through XSLT                March 2016
3978
3979
3980      Internet Explorer 9  14
3981      iprnotified PI pseudo-attribute  7
3982      isPartOf DCMI property  19
3983
3984   J
3985      justification PI pseudo-attribute  10
3986
3987   K
3988      keywords HTML META element  18
3989
3990   L
3991      length-of Extension Element  26, 48
3992      li V3 Extension Element  32, 48
3993      link Extension Element  27, 48
3994      linkmailto PI pseudo-attribute  7
3995      lt Extension Element  27, 48
3996
3997   M
3998      Microsoft Help  21
3999      Mozilla  14-15
4000      MSXML3  14
4001      MSXML4  14
4002
4003   N
4004      name V3 Extension Element  33, 48
4005      needLines PI pseudo-attribute  9
4006      NoScript  14
4007      note Extension Element  27, 48
4008
4009   O
4010      ol V3 Extension Element  33, 48
4011      Opera  15
4012
4013   P
4014      Parameters
4015         xml2rfc-background  7
4016         xml2rfc-comments  7
4017         xml2rfc-compact  7
4018         xml2rfc-editing  7
4019         xml2rfc-ext-allow-markup-in-artwork  10
4020         xml2rfc-ext-authors-section  10
4021         xml2rfc-ext-duplex  10
4022         xml2rfc-ext-html-pretty-print  10
4023         xml2rfc-ext-include-index  10
4024         xml2rfc-ext-include-references-in-index  10
4025         xml2rfc-ext-insert-metadata  10
4026         xml2rfc-ext-justification  10
4027         xml2rfc-ext-parse-xml-in-artwork  10
4028
4029
4030
4031Reschke                                                        [Page 72]
4032
4033Documentation             RFC2629 through XSLT                March 2016
4034
4035
4036         xml2rfc-ext-sec-no-trailing-dots  10
4037         xml2rfc-ext-support-rfc2731  10
4038         xml2rfc-footer  7
4039         xml2rfc-header  7
4040         xml2rfc-inline  7
4041         xml2rfc-iprnotified  7
4042         xml2rfc-linkmailto  7
4043         xml2rfc-private  7
4044         xml2rfc-refparent  7
4045         xml2rfc-rfcedstyle  7
4046         xml2rfc-sortrefs  7
4047         xml2rfc-symrefs  7
4048         xml2rfc-toc  7
4049         xml2rfc-tocdepth  7
4050         xml2rfc-topblock  7
4051      parse-xml Extension Element  27, 48
4052      parse-xml-in-artwork PI pseudo-attribute  10
4053      postalLine V3 Extension Element  33, 48
4054      private PI pseudo-attribute  7, 67
4055      Processing Instruction pseudo attributes
4056         allow-markup-in-artwork  10
4057         authors-section  10
4058         background  7
4059         comments  7
4060         compact  7
4061         docmapping  7
4062         duplex  10
4063         editing  7
4064         footer  7
4065         header  7
4066         html-pretty-print  10
4067         include  7, 40
4068         include-index  10
4069         include-references-in-index  10
4070         inline  7
4071         insert-metadata  10
4072         iprnotified  7
4073         justification  10
4074         linkmailto  7
4075         needLines  9
4076         parse-xml-in-artwork  10
4077         private  7, 67
4078         refparent  7
4079         rfcedstyle  7
4080         sec-no-trailing-dots  10
4081         slides  9
4082         sortrefs  7
4083         strict  9
4084
4085
4086
4087Reschke                                                        [Page 73]
4088
4089Documentation             RFC2629 through XSLT                March 2016
4090
4091
4092         subcompact  9
4093         support-rfc2731  10
4094         symrefs  7
4095         toc  7
4096         tocdepth  7
4097         tocindent  9
4098         tocompact  9
4099         topblock  7
4100      prose Extension Element  27, 48
4101
4102   Q
4103      q Extension Element  28, 48
4104
4105   R
4106      rdf:Description Extension Element  48
4107      ref Extension Element  28, 48
4108      refcontent V3 Extension Element  33, 48
4109      reference V3 Extension Element  33
4110      refparent PI pseudo-attribute  7
4111      Relation.Replaces DCMI property  19
4112      RELAX NG Compact Schema  48
4113      rfc.abstract anchor  13
4114      rfc.authors anchor  13
4115      rfc.copyright anchor  13
4116      rfc.copyrightnotice anchor  13
4117      rfc.figure.n anchor  13
4118      rfc.figure.u.n anchor  13
4119      rfc.index anchor  13
4120      rfc.ipr anchor  13
4121      rfc.iref.n anchor  13
4122      rfc.note.n anchor  13
4123      rfc.references anchor  13
4124      rfc.references.n anchor  13
4125      rfc.section.n anchor  13
4126      rfc.section.n.p.m anchor  13
4127      rfc.status anchor  13
4128      rfc.toc anchor  13
4129      rfc.xref.name.n anchor  13
4130      rfcedstyle PI pseudo-attribute  7
4131
4132   S
4133      Safari  15
4134         3.*  15
4135      Saxon  14
4136      Schema  48
4137      sec-no-trailing-dots PI pseudo-attribute  10
4138      section V3 Extension Element  33
4139      slides PI pseudo-attribute  9
4140
4141
4142
4143Reschke                                                        [Page 74]
4144
4145Documentation             RFC2629 through XSLT                March 2016
4146
4147
4148      sortrefs PI pseudo-attribute  7
4149      source Extension Element  28, 48
4150      sourcecode V3 Extension Element  33, 48
4151      span Extension Element  48
4152      strict PI pseudo-attribute  9
4153      strong V3 Extension Element  33, 48
4154      sub V3 Extension Element  34, 48
4155      subcompact PI pseudo-attribute  9
4156      sup Extension Element  29, 48
4157      sup V3 Extension Element  34, 48
4158      support-rfc2731 PI pseudo-attribute  10
4159      svg V3 Extension Element  34, 48
4160      symrefs PI pseudo-attribute  7
4161
4162   T
4163      toc PI pseudo-attribute  7
4164      tocdepth PI pseudo-attribute  7
4165      tocindent PI pseudo-attribute  9
4166      tocompact PI pseudo-attribute  9
4167      topblock PI pseudo-attribute  7
4168      tt V3 Extension Element  34, 48
4169
4170   U
4171      ul V3 Extension Element  34, 48
4172
4173   V
4174      V3 Extension Elements
4175         aside  32, 48
4176         bcp14  32, 48
4177         blockquote  32, 48
4178         boilerplate  32, 48
4179         dd  32, 48
4180         displayreference  32, 48
4181         dl  32, 48
4182         dt  32, 48
4183         em  32, 48
4184         li  32, 48
4185         name  33, 48
4186         ol  33, 48
4187         postalLine  33, 48
4188         refcontent  33, 48
4189         reference  33
4190         section  33
4191         sourcecode  33, 48
4192         strong  33, 48
4193         sub  34, 48
4194         sup  34, 48
4195         svg  34, 48
4196
4197
4198
4199Reschke                                                        [Page 75]
4200
4201Documentation             RFC2629 through XSLT                March 2016
4202
4203
4204         tt  34, 48
4205         ul  34, 48
4206
4207   X
4208      x Extension Element  48
4209      Xalan  14
4210      xi:include Extension Element  48
4211      XInclude Extension Elements
4212         include  48
4213      xml-stylesheet PI  16
4214      xml2rfc-background parameter  7
4215      xml2rfc-comments parameter  7
4216      xml2rfc-editing parameter  7
4217      xml2rfc-ext-allow-markup-in-artwork parameter  10
4218      xml2rfc-ext-authors-section parameter  10
4219      xml2rfc-ext-duplex  10
4220      xml2rfc-ext-html-pretty-print  10
4221      xml2rfc-ext-include-index parameter  10
4222      xml2rfc-ext-include-references-in-index parameter  10
4223      xml2rfc-ext-insert-metadata parameter  10
4224      xml2rfc-ext-justification parameter  10
4225      xml2rfc-ext-parse-xml-in-artwork parameter  10
4226      xml2rfc-ext-sec-no-trailing-dots parameter  10
4227      xml2rfc-ext-support-rfc2731 parameter  10
4228      xml2rfc-footer parameter  7
4229      xml2rfc-header parameter  7
4230      xml2rfc-inline parameter  7
4231      xml2rfc-iprnotified parameter  7
4232      xml2rfc-linkmailto parameter  7
4233      xml2rfc-private parameter  7
4234      xml2rfc-refparent parameter  7
4235      xml2rfc-rfcedstyle parameter  7
4236      xml2rfc-sortrefs parameter  7
4237      xml2rfc-symrefs parameter  7
4238      xml2rfc-toc parameter  7
4239      xml2rfc-tocdepth parameter  7
4240      xml2rfc-topblock parameter  7
4241      xsltproc  14
4242         passing parameters  6
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255Reschke                                                        [Page 76]
4256
4257Documentation             RFC2629 through XSLT                March 2016
4258
4259
4260Author's Address
4261
4262   Julian F. Reschke
4263   greenbytes GmbH
4264   Hafenweg 16
4265   Muenster, NW  48155
4266   Germany
4267
4268   Email: julian.reschke@greenbytes.de
4269   URI:   http://greenbytes.de/tech/webdav/
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311Reschke                                                        [Page 77]
4312
Note: See TracBrowser for help on using the repository browser.