source: rfc2629xslt/rfc2629xslt.txt @ 2735

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

XSLT update

  • Property svn:eol-style set to native
File size: 118.8 KB
Line 
1
2
3
4RFC2629 through XSLT                                          J. Reschke
5                                                              greenbytes
6                                                       February 19, 2015
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  . . . . . . . . . . .  8
21     3.3.   Extension PIs . . . . . . . . . . . . . . . . . . . . . .  9
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 . . . . . . . . . . . . . . . 16
29     6.3.   Standard HTML metadata  . . . . . . . . . . . . . . . . . 17
30     6.4.   Dublin Core (RFC2731) metadata  . . . . . . . . . . . . . 17
31   7.  Transforming to XHTML  . . . . . . . . . . . . . . . . . . . . 18
32   8.  Transforming to CHM (Microsoft Compiled Help)  . . . . . . . . 19
33   9.  Transforming to PDF  . . . . . . . . . . . . . . . . . . . . . 20
34     9.1.   Via XSL-FO  . . . . . . . . . . . . . . . . . . . . . . . 20
35       9.1.1.   Example: producing output for Apache FOP  . . . . . . 20
36     9.2.   Via X(HTML) . . . . . . . . . . . . . . . . . . . . . . . 20
37   10. Transforming to ePub . . . . . . . . . . . . . . . . . . . . . 21
38   11. Generic Extensions . . . . . . . . . . . . . . . . . . . . . . 22
39     11.1.  <abnf-char-sequence> element  . . . . . . . . . . . . . . 22
40     11.2.  <anchor-alias> element  . . . . . . . . . . . . . . . . . 22
41     11.3.  <bcp14> element . . . . . . . . . . . . . . . . . . . . . 22
42     11.4.  <bb> element  . . . . . . . . . . . . . . . . . . . . . . 23
43     11.5.  <bc> element  . . . . . . . . . . . . . . . . . . . . . . 23
44     11.6.  <blockquote> element  . . . . . . . . . . . . . . . . . . 23
45     11.7.  <boilerplate> element . . . . . . . . . . . . . . . . . . 23
46     11.8.  <bt> element  . . . . . . . . . . . . . . . . . . . . . . 24
47     11.9.  <dfn> element . . . . . . . . . . . . . . . . . . . . . . 24
48     11.10. <feedback> element  . . . . . . . . . . . . . . . . . . . 24
49     11.11. <h> element . . . . . . . . . . . . . . . . . . . . . . . 24
50     11.12. <highlight> element . . . . . . . . . . . . . . . . . . . 24
51     11.13. <length-of> element . . . . . . . . . . . . . . . . . . . 24
52
53
54
55Reschke                                                         [Page 1]
56
57Documentation             RFC2629 through XSLT             February 2015
58
59
60     11.14. <link> element  . . . . . . . . . . . . . . . . . . . . . 25
61     11.15. <lt> element  . . . . . . . . . . . . . . . . . . . . . . 25
62     11.16. <note> element  . . . . . . . . . . . . . . . . . . . . . 26
63     11.17. <parse-xml> element . . . . . . . . . . . . . . . . . . . 26
64     11.18. <prose> element . . . . . . . . . . . . . . . . . . . . . 26
65     11.19. <q> element . . . . . . . . . . . . . . . . . . . . . . . 26
66     11.20. <ref> element . . . . . . . . . . . . . . . . . . . . . . 26
67     11.21. <source> element  . . . . . . . . . . . . . . . . . . . . 27
68     11.22. <sup> element . . . . . . . . . . . . . . . . . . . . . . 27
69     11.23. Extensions to Xml2rfc <artwork> element . . . . . . . . . 27
70     11.24. Extensions to Xml2rfc <iref> element  . . . . . . . . . . 27
71     11.25. Extensions to Xml2rfc <list> element  . . . . . . . . . . 28
72     11.26. Extensions to Xml2rfc <rfc> element . . . . . . . . . . . 28
73     11.27. Extensions to Xml2rfc <section> element . . . . . . . . . 28
74     11.28. Extensions to Xml2rfc <xref> element  . . . . . . . . . . 28
75   12. Experimental Support for XML2RFCv3 Vocabulary  . . . . . . . . 30
76     12.1.  aside Element . . . . . . . . . . . . . . . . . . . . . . 30
77     12.2.  b Element . . . . . . . . . . . . . . . . . . . . . . . . 30
78     12.3.  bcp14 Element . . . . . . . . . . . . . . . . . . . . . . 30
79     12.4.  blockquote Element  . . . . . . . . . . . . . . . . . . . 30
80     12.5.  displayreference Element  . . . . . . . . . . . . . . . . 30
81     12.6.  dd Element  . . . . . . . . . . . . . . . . . . . . . . . 30
82     12.7.  dl Element  . . . . . . . . . . . . . . . . . . . . . . . 30
83     12.8.  dt Element  . . . . . . . . . . . . . . . . . . . . . . . 30
84     12.9.  em Element  . . . . . . . . . . . . . . . . . . . . . . . 30
85     12.10. i Element . . . . . . . . . . . . . . . . . . . . . . . . 30
86     12.11. li Element  . . . . . . . . . . . . . . . . . . . . . . . 31
87     12.12. name Element  . . . . . . . . . . . . . . . . . . . . . . 31
88     12.13. postalLine Element  . . . . . . . . . . . . . . . . . . . 31
89     12.14. refcontent Element  . . . . . . . . . . . . . . . . . . . 31
90     12.15. section Element . . . . . . . . . . . . . . . . . . . . . 31
91       12.15.1. numbered attribute  . . . . . . . . . . . . . . . . . 31
92       12.15.2. removeInRFC attribute . . . . . . . . . . . . . . . . 31
93     12.16. strong Element  . . . . . . . . . . . . . . . . . . . . . 31
94     12.17. sub Element . . . . . . . . . . . . . . . . . . . . . . . 31
95     12.18. sup Element . . . . . . . . . . . . . . . . . . . . . . . 31
96     12.19. tt Element  . . . . . . . . . . . . . . . . . . . . . . . 31
97     12.20. Extensions to xref Element  . . . . . . . . . . . . . . . 32
98       12.20.1. relative attribute  . . . . . . . . . . . . . . . . . 32
99       12.20.2. section attribute . . . . . . . . . . . . . . . . . . 32
100       12.20.3. sectionFormat attribute . . . . . . . . . . . . . . . 32
101   13. Utilities  . . . . . . . . . . . . . . . . . . . . . . . . . . 33
102     13.1.  Checking References . . . . . . . . . . . . . . . . . . . 33
103     13.2.  Generating Graphs from References . . . . . . . . . . . . 35
104     13.3.  Producing reference entries for books . . . . . . . . . . 35
105     13.4.  Down-converting to RFC2629bis DTD . . . . . . . . . . . . 36
106     13.5.  Extracting artwork  . . . . . . . . . . . . . . . . . . . 37
107     13.6.  GRRDL . . . . . . . . . . . . . . . . . . . . . . . . . . 37
108
109
110
111Reschke                                                         [Page 2]
112
113Documentation             RFC2629 through XSLT             February 2015
114
115
116     13.7.  HTML Live Refresh . . . . . . . . . . . . . . . . . . . . 37
117   14. Informative References . . . . . . . . . . . . . . . . . . . . 39
118   Appendix A.  RELAX NG Compact Schema . . . . . . . . . . . . . . . 42
119   Appendix B.  Implementation Notes  . . . . . . . . . . . . . . . . 58
120     B.1.   Recognized type attributes for <artwork> element  . . . . 58
121   Appendix C.  Examples  . . . . . . . . . . . . . . . . . . . . . . 59
122     C.1.   Using the 'Internal Subset' . . . . . . . . . . . . . . . 59
123     C.2.   Customization . . . . . . . . . . . . . . . . . . . . . . 59
124   Appendix D.  Producing the IETF 'Boilerplate'  . . . . . . . . . . 61
125     D.1.   The /rfc/@ipr Attribute . . . . . . . . . . . . . . . . . 61
126       D.1.1.   Current Values: '*trust200902'  . . . . . . . . . . . 62
127       D.1.2.   Historic Values . . . . . . . . . . . . . . . . . . . 63
128     D.2.   The /rfc/@category Attribute  . . . . . . . . . . . . . . 64
129     D.3.   The /rfc/@submissionType Attribute  . . . . . . . . . . . 64
130     D.4.   The /rfc/@consensus Attribute . . . . . . . . . . . . . . 65
131     D.5.   The /rfc/@number Attribute  . . . . . . . . . . . . . . . 65
132     D.6.   The /rfc/@docName Attribute . . . . . . . . . . . . . . . 66
133     D.7.   The /rfc/@obsoletes Attribute . . . . . . . . . . . . . . 66
134     D.8.   The /rfc/@updates Attribute . . . . . . . . . . . . . . . 66
135   Appendix E.  License . . . . . . . . . . . . . . . . . . . . . . . 67
136   Index  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
137   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 78
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             February 2015
170
171
1721.  Introduction
173
174   This document describes a set of XSLT transformations that can be
175   used to transform "XML2RFC" XML ([XML2RFCV2], 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  various utilities (Section 13).
198
199   The full distribution is available at
200   <http://greenbytes.de/tech/webdav/rfc2629xslt.zip>.
201
202
203
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             February 2015
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             February 2015
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             February 2015
338
339
3403.1.  Supported xml2rfc-compatible PIs
341
342   +------+--------------+------------------+------------+-------------+
343   | PI   | PI           | XSLT parameter   | default    | comment     |
344   | targ | pseudo-attri | name             |            |             |
345   | et   | bute         |                  |            |             |
346   +------+--------------+------------------+------------+-------------+
347   | rfc  | background   | xml2rfc-backgrou | (not set)  |             |
348   |      |              | nd               |            |             |
349   |      |              |                  |            |             |
350   | rfc  | compact      | xml2rfc-compact  | "no"       | only        |
351   |      |              |                  |            | applies to  |
352   |      |              |                  |            | HTML output |
353   |      |              |                  |            | method when |
354   |      |              |                  |            | printing    |
355   |      |              |                  |            |             |
356   | rfc  | comments     | xml2rfc-comments | (not set)  |             |
357   |      |              |                  |            |             |
358   | rfc  | editing      | xml2rfc-editing  | "no"       |             |
359   |      |              |                  |            |             |
360   | rfc  | footer       | xml2rfc-footer   | (not set)  |             |
361   |      |              |                  |            |             |
362   | rfc  | header       | xml2rfc-header   | (not set)  |             |
363   |      |              |                  |            |             |
364   | rfc  | inline       | xml2rfc-inline   | (not set)  |             |
365   |      |              |                  |            |             |
366   | rfc  | iprnotified  | xml2rfc-iprnotif | "no"       |             |
367   |      |              | ied              |            |             |
368   |      |              |                  |            |             |
369   | rfc  | linkmailto   | xml2rfc-linkmail | "yes"      |             |
370   |      |              | to               |            |             |
371   |      |              |                  |            |             |
372   | rfc  | private      | xml2rfc-private  | (not set)  |             |
373   |      |              |                  |            |             |
374   | rfc  | refparent    | xml2rfc-private  | "Reference | Title for   |
375   |      |              |                  | s"         | References  |
376   |      |              |                  |            | sections    |
377   |      |              |                  |            | when        |
378   |      |              |                  |            | automatical |
379   |      |              |                  |            | ly inserted |
380   |      |              |                  |            |             |
381   | rfc  | rfcedstyle   | xml2rfc-rfcedsty | (not set)  | (limited    |
382   |      |              | le               |            | support)    |
383   |      |              |                  |            |             |
384   | rfc  | sortrefs     | xml2rfc-sortrefs | "no"       |             |
385   |      |              |                  |            |             |
386
387
388
389
390
391Reschke                                                         [Page 7]
392
393Documentation             RFC2629 through XSLT             February 2015
394
395
396   | rfc  | symrefs      | xml2rfc-symrefs  | "yes"      | The default |
397   |      |              |                  |            | has changed |
398   |      |              |                  |            | from "no"   |
399   |      |              |                  |            | to "yes" as |
400   |      |              |                  |            | of June 6,  |
401   |      |              |                  |            | 2007 and    |
402   |      |              |                  |            | xml2rfc     |
403   |      |              |                  |            | 1.33pre4.   |
404   |      |              |                  |            |             |
405   | rfc  | toc          | xml2rfc-toc      | "no"       |             |
406   |      |              |                  |            |             |
407   | rfc  | tocdepth     | xml2rfc-tocdepth | 99         |             |
408   |      |              |                  |            |             |
409   | rfc  | topblock     | xml2rfc-topblock | "yes"      |             |
410   +------+--------------+------------------+------------+-------------+
411
4123.2.  Unsupported xml2rfc-compatible PIs
413
414   +--------+------------------+---------------------------------------+
415   | PI     | PI               | comment                               |
416   | target | pseudo-attribute |                                       |
417   +--------+------------------+---------------------------------------+
418   | rfc    | include          | incompatible with XML/XSLT processing |
419   |        |                  | model, please use external entities   |
420   |        |                  | instead (see Appendix C.1)            |
421   |        |                  |                                       |
422   | rfc    | needLines        |                                       |
423   |        |                  |                                       |
424   | rfc    | slides           |                                       |
425   |        |                  |                                       |
426   | rfc    | strict           |                                       |
427   |        |                  |                                       |
428   | rfc    | subcompact       |                                       |
429   |        |                  |                                       |
430   | rfc    | tocindent        | (defaults to "yes")                   |
431   |        |                  |                                       |
432   | rfc    | tocompact        |                                       |
433   +--------+------------------+---------------------------------------+
434
435
436
437
438
439
440
441
442
443
444
445
446
447Reschke                                                         [Page 8]
448
449Documentation             RFC2629 through XSLT             February 2015
450
451
4523.3.  Extension PIs
453
454   +------+----------------+----------------------+------+-------------+
455   | PI   | PI             | XSLT parameter name  | defa | description |
456   | targ | pseudo-attribu |                      | ult  |             |
457   | et   | te             |                      |      |             |
458   +------+----------------+----------------------+------+-------------+
459   | rfc- | allow-markup-i | xml2rfc-allow-markup | "no" | Enables     |
460   | ext  | n-artwork      | -in-artwork          |      | support for |
461   |      |                |                      |      | specific    |
462   |      |                |                      |      | elements    |
463   |      |                |                      |      | inside      |
464   |      |                |                      |      | abstract    |
465   |      |                |                      |      | elements    |
466   |      |                |                      |      | (using this |
467   |      |                |                      |      | extension   |
468   |      |                |                      |      | makes the   |
469   |      |                |                      |      | document    |
470   |      |                |                      |      | incompatibl |
471   |      |                |                      |      | e to the    |
472   |      |                |                      |      | RFC2629bis  |
473   |      |                |                      |      | DTD; see    |
474   |      |                |                      |      | description |
475   |      |                |                      |      | of          |
476   |      |                |                      |      | conversion  |
477   |      |                |                      |      | XSLT in     |
478   |      |                |                      |      | Section 13. |
479   |      |                |                      |      | 4).         |
480   |      |                |                      |      |             |
481   | rfc- | authors-sectio | xml2rfc-ext-authors- | "end | When        |
482   | ext  | n              | section              | "    | "before-app |
483   |      |                |                      |      | endices",   |
484   |      |                |                      |      | place the   |
485   |      |                |                      |      | authors     |
486   |      |                |                      |      | section     |
487   |      |                |                      |      | between     |
488   |      |                |                      |      | references  |
489   |      |                |                      |      | and         |
490   |      |                |                      |      | appendices  |
491   |      |                |                      |      | (this       |
492   |      |                |                      |      | ordering    |
493   |      |                |                      |      | was used a  |
494   |      |                |                      |      | long time   |
495   |      |                |                      |      | ago).       |
496   |      |                |                      |      |             |
497
498
499
500
501
502
503Reschke                                                         [Page 9]
504
505Documentation             RFC2629 through XSLT             February 2015
506
507
508   | rfc- | duplex         | xml2rfc-ext-duplex   | "no" | When set to |
509   | ext  |                |                      |      | "yes",      |
510   |      |                |                      |      | format the  |
511   |      |                |                      |      | PDF output  |
512   |      |                |                      |      | for         |
513   |      |                |                      |      | doublesided |
514   |      |                |                      |      | printing.   |
515   |      |                |                      |      |             |
516   | rfc- | include-index  | xml2rfc-ext-include- | "yes | When set to |
517   | ext  |                | index                | "    | "no", no    |
518   |      |                |                      |      | index will  |
519   |      |                |                      |      | be          |
520   |      |                |                      |      | generated.  |
521   |      |                |                      |      |             |
522   | rfc- | include-refere | xml2rfc-ext-include- | "no" | When set to |
523   | ext  | nces-in-index  | references-in-index  |      | "yes",      |
524   |      |                |                      |      | index       |
525   |      |                |                      |      | entries are |
526   |      |                |                      |      | generated   |
527   |      |                |                      |      | for all     |
528   |      |                |                      |      | references. |
529   |      |                |                      |      |             |
530   | rfc- | insert-metadat | xml2rfc-ext-insert-m | "yes | When set to |
531   | ext  | a              | etadata              | "    | "yes",      |
532   |      |                |                      |      | include JS  |
533   |      |                |                      |      | code that   |
534   |      |                |                      |      | fetches     |
535   |      |                |                      |      | current RFC |
536   |      |                |                      |      | metadata    |
537   |      |                |                      |      | and inserts |
538   |      |                |                      |      | it into the |
539   |      |                |                      |      | front page  |
540   |      |                |                      |      | (standards  |
541   |      |                |                      |      | track,      |
542   |      |                |                      |      | obsoletion, |
543   |      |                |                      |      | updates,    |
544   |      |                |                      |      | errata).    |
545   |      |                |                      |      |             |
546
547
548
549
550
551
552
553
554
555
556
557
558
559Reschke                                                        [Page 10]
560
561Documentation             RFC2629 through XSLT             February 2015
562
563
564   | rfc- | justification  | xml2rfc-ext-justific | "nev | "never":    |
565   | ext  |                | ation                | er"  | never emit  |
566   |      |                |                      |      | justified   |
567   |      |                |                      |      | text,       |
568   |      |                |                      |      | "always":   |
569   |      |                |                      |      | always emit |
570   |      |                |                      |      | justified   |
571   |      |                |                      |      | text,       |
572   |      |                |                      |      | "print":    |
573   |      |                |                      |      | only emit   |
574   |      |                |                      |      | justified   |
575   |      |                |                      |      | text for    |
576   |      |                |                      |      | print       |
577   |      |                |                      |      | media.      |
578   |      |                |                      |      |             |
579   | rfc- | parse-xml-in-a | xml2rfc-parse-xml-in | "no" | May be used |
580   | ext  | rtwork         | -artwork             |      | to enable   |
581   |      |                |                      |      | parsing of  |
582   |      |                |                      |      | XML content |
583   |      |                |                      |      | in figures  |
584   |      |                |                      |      | (MSXML      |
585   |      |                |                      |      | only).      |
586   |      |                |                      |      |             |
587   | rfc- | sec-no-trailin | xml2rfc-ext-sec-no-t |      | When set to |
588   | ext  | g-dots         | railing-dots         |      | "yes", add  |
589   |      |                |                      |      | trailing    |
590   |      |                |                      |      | dots to     |
591   |      |                |                      |      | section     |
592   |      |                |                      |      | numbers.    |
593   |      |                |                      |      | This seems  |
594   |      |                |                      |      | to be the   |
595   |      |                |                      |      | preferred   |
596   |      |                |                      |      | format in   |
597   |      |                |                      |      | the newest  |
598   |      |                |                      |      | RFCs.       |
599   |      |                |                      |      |             |
600   | rfc- | support-rfc273 | xml2rfc-ext-support- | "yes | Decides     |
601   | ext  | 1              | rfc2731              | "    | whether the |
602   |      |                |                      |      | HTML        |
603   |      |                |                      |      | transformat |
604   |      |                |                      |      | ion should  |
605   |      |                |                      |      | generate    |
606   |      |                |                      |      | META tags   |
607   |      |                |                      |      | according   |
608   |      |                |                      |      | Section 6.4 |
609   |      |                |                      |      | .           |
610   +------+----------------+----------------------+------+-------------+
611
612
613
614
615Reschke                                                        [Page 11]
616
617Documentation             RFC2629 through XSLT             February 2015
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             February 2015
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             February 2015
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             February 2015
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             February 2015
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 the HTML 4.01
857   strict DTD [HTML].  This can be checked using the W3C's online
858   validator at <http://validator.w3.org>.
859
8606.2.  Standard HTML LINK elements
861
862   LINK elements exist since HTML 2.0.  They can be used to embed
863   content-independant links inside the document.  Unfortunately, only
864   few user agents support this element.  Firefox users may want to
865   check the Link Widgets [7] extension.
866
867                 The following LINK elements are produced:
868
869   +-----------+-------------------------------------------------------+
870   | LINK type | description                                           |
871   +-----------+-------------------------------------------------------+
872   | alternate | for RFCs, a link to the authorative ASCII version on  |
873   |           | the IETF web site                                     |
874   |           |                                                       |
875   | appendic  | pointer to all top-level appendics                    |
876   |           |                                                       |
877   | author    | pointer to "authors" section                          |
878   |           |                                                       |
879   | chapter   | pointer to all top-level sections                     |
880   |           |                                                       |
881   | contents  | pointer to table of contents                          |
882   |           |                                                       |
883   | copyright | pointer to copyright statement                        |
884   |           |                                                       |
885   | index     | pointer to index                                      |
886   +-----------+-------------------------------------------------------+
887
888   The figure below shows how Mozilla Firefox 1.0 displays the Site
889   Navigation Bar for rfc2396.xml.
890
891
892
893
894
895Reschke                                                        [Page 16]
896
897Documentation             RFC2629 through XSLT             February 2015
898
899
9006.3.  Standard HTML metadata
901
902          The following standard HTML META elements are produced:
903
904      +-----------+-------------------------------------------------+
905      | META name | description                                     |
906      +-----------+-------------------------------------------------+
907      | generator | from XSLT engine version and stylesheet version |
908      |           |                                                 |
909      | keywords  | from keyword elements in front section          |
910      +-----------+-------------------------------------------------+
911
9126.4.  Dublin Core (RFC2731) metadata
913
914   Unless turned off using the "rfc-ext support-rfc2731" processing
915   instruction, the transformation will generate metadata according to
916   [RFC2731] and [DC-HTML].
917
918                The following DCMI properties are produced:
919
920   +-------------------------+-----------------------------------------+
921   | META name               | description                             |
922   +-------------------------+-----------------------------------------+
923   | DC.Creator              | from author information in front        |
924   |                         | section                                 |
925   |                         |                                         |
926   | DC.Date.Issued          | from date information in front section  |
927   |                         |                                         |
928   | DC.Description.Abstract | from abstract                           |
929   |                         |                                         |
930   | DC.Identifier           | document URN [RFC2648] from "docName"   |
931   |                         | attribute                               |
932   |                         |                                         |
933   | DC.isPartOf             | RFC ISSN (for RFCs)                     |
934   |                         |                                         |
935   | DC.Relation.Replaces    | from "obsoletes" attribute              |
936   +-------------------------+-----------------------------------------+
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951Reschke                                                        [Page 17]
952
953Documentation             RFC2629 through XSLT             February 2015
954
955
9567.  Transforming to XHTML
957
958   Transforming to XHTML requires slightly different XSLT output options
959   and is implemented by the derived transformation script
960   "rfc2629toXHTML.xslt".
961
962      Note: Microsoft Internet Explorer does _not_ support XHTML.
963      Therefore it usually makes more sense to generate plain old HTML.
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007Reschke                                                        [Page 18]
1008
1009Documentation             RFC2629 through XSLT             February 2015
1010
1011
10128.  Transforming to CHM (Microsoft Compiled Help)
1013
1014   To generate a CHM file using Microsoft's HTML Help Compiler (hhc),
1015   three files are required in addition to the HTML file.
1016
1017   1.  hhc - table of contents file (HTML)
1018
1019   2.  hhk - index file (HTML)
1020
1021   3.  hhp - project file (plain text)
1022
1023   The three files are generated with three specific transformations,
1024   each requiring the additional XSLT parameter "basename" to specify
1025   the filename prefix.
1026
1027   Example:
1028
1029   saxon rfc2616.xml rfc2629toHhp.xslt basename=rfc2616  > rfc2616.hhp
1030   saxon rfc2616.xml rfc2629toHhc.xslt basename=rfc2616  > rfc2616.hhc
1031   saxon rfc2616.xml rfc2629toHhk.xslt basename=rfc2616  > rfc2616.hhk
1032   hhc rfc2616.hhp
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             February 2015
1066
1067
10689.  Transforming to PDF
1069
10709.1.  Via XSL-FO
1071
1072   Transformation to XSL-FO [XSL-FO] format is available through
1073   "rfc2629toFO.xslt" (which includes "rfc2629.xslt", so keep both in
1074   the same folder).
1075
1076   Compared to HTML user agents, XSL-FO engines unfortunately either
1077   come as open source (for instance, Apache FOP) or feature-complete
1078   (for instance, AntennaHouse XSL Formatter), but not both at the same
1079   time.
1080
1081   As Apache FOP needs special workarounds (index generation), and some
1082   popular extensions aren't standardized yet, the translation produces
1083   a generic output (hopefully) conforming to [XSL-FO].  Specific
1084   backends ("xsl11toFop.xslt", "xsl11toXep.xslt", "xsl11toAn.xslt")
1085   then provide post-processing for the individual processors.
1086
1087      Note: the output is currently targeted at Apache FOP 1.1.
1088
10899.1.1.  Example: producing output for Apache FOP
1090
1091   Example:
1092
1093   saxon rfc2616.xml rfc2629toFo.xslt > tmp.fo
1094   saxon tmp.fo xsl11toFop.xslt > rfc2629.fo
1095
10969.2.  Via X(HTML)
1097
1098   PDF output can also be produced directly from (X)HTML.  One simple
1099   approach is to rely on the browser's printing function, and to use a
1100   printer driver that produces PDF.  Depending on the brower's CSS
1101   capabilities, the output will behave properly with respect to table
1102   breaks etc.
1103
1104   An alternative is PrinceXML (see <http://www.princexml.com/>), which
1105   can produce PDF directly from (X)HTML input, based on the CSS
1106   printing information.
1107
1108   For instance, PDF output with text justification turned on can be
1109   produced with:
1110
1111   saxon input.xml rfc2629toXHTML.xslt xml2rfc-ext-justification=print \
1112     > output.xhtml
1113   prince output.xhtml output.pdf
1114
1115
1116
1117
1118
1119Reschke                                                        [Page 20]
1120
1121Documentation             RFC2629 through XSLT             February 2015
1122
1123
112410.  Transforming to ePub
1125
1126   Experimental transformation to ePub format is available through a set
1127   of stylesheets, and the Unix Shell script "mkepub.sh" (which requires
1128   that "zip" and either "saxon" or "xsltproc" are installed).
1129
1130   For instance, an epub version of rfc2616.xml can be generated like
1131   this:
1132
1133   mkepub.sh rfc2616.xml
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
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             February 2015
1178
1179
118011.  Generic Extensions
1181
1182   This section documents extensions implemented in "rfc2629.xslt",
1183   using the extension namespace "http://purl.org/net/xml2rfc/ext".
1184
118511.1.  <abnf-char-sequence> element
1186
1187   Converts the contained quoted string into a hex-encoded character
1188   sequence, for use in case-sensitive ABNF productions.
1189
1190   For instance, "<x:abnf-char-sequence>"HTTP"</x:abnf-char-sequence>"
1191   gets converted to "%x48.54.54.50".
1192
119311.2.  <anchor-alias> element
1194
1195   Using its "value" attribute, this element allows the definition of an
1196   internal link target alias for the enclosing element.  This alias can
1197   then be used with the <ref> element for intra-document references.
1198
1199   Note that the anchor alias is not subject to the naming constraints
1200   that apply to anchor elements (which are XML names).
1201
120211.3.  <bcp14> element
1203
1204   This element marks the content as being one of the normative keywords
1205   defined in [RFC2119].
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231Reschke                                                        [Page 22]
1232
1233Documentation             RFC2629 through XSLT             February 2015
1234
1235
1236   The DOCTYPE definition below allows using these keywords using XML
1237   entity expansion: such as in "...server &MUST; accept...".
1238
1239   <!DOCTYPE rfc [
1240    <!ENTITY MAY "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1241      >MAY</bcp14>">
1242    <!ENTITY MUST "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1243      >MUST</bcp14>">
1244    <!ENTITY MUST-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1245      >MUST NOT</bcp14>">
1246    <!ENTITY OPTIONAL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1247      >OPTIONAL</bcp14>">
1248    <!ENTITY RECOMMENDED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1249      >RECOMMENDED</bcp14>">
1250    <!ENTITY REQUIRED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1251      >REQUIRED</bcp14>">
1252    <!ENTITY SHALL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1253      >SHALL</bcp14>">
1254    <!ENTITY SHALL-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1255      >SHALL NOT</bcp14>">
1256    <!ENTITY SHOULD "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1257      >SHOULD</bcp14>">
1258    <!ENTITY SHOULD-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1259      >SHOULD NOT</bcp14>">]>
1260
126111.4.  <bb> element
1262
1263   Marking up a string as <bb> indicates that it represents the bottom
1264   line of a box drawing, replacing the "+" and "-" characters
1265   accordingly.
1266
126711.5.  <bc> element
1268
1269   Marking up a string as <bc> indicates that it represents a center
1270   line of a box drawing, replacing the "|" character accordingly.
1271
127211.6.  <blockquote> element
1273
1274   This element is like the <blockquote> element defined in Section
1275   9.2.2 of [HTML] (note this is a block-level element!).  It should
1276   contain one or more <t> child elements.
1277
127811.7.  <boilerplate> element
1279
1280   Can be used to include boilerplate (status, copyright, ...) into the
1281   front or back section. <section> elements within <x:boilerplate>
1282   appear as unnumbered sections in the output.
1283
1284
1285
1286
1287Reschke                                                        [Page 23]
1288
1289Documentation             RFC2629 through XSLT             February 2015
1290
1291
1292   _This element currently can not be "down-translated" for use in
1293   xml2rfc!_
1294
129511.8.  <bt> element
1296
1297   Marking up a string as <bt> indicates that it represents the top line
1298   of a box drawing, replacing the "+" and "-" characters accordingly.
1299
130011.9.  <dfn> element
1301
1302   This element is like the <dfn> element defined in Section 9.2.1 of
1303   [HTML].
1304
130511.10.  <feedback> element
1306
1307   This elements allows declaring a feedback link for document
1308   reviewers.  The template string takes the form of a URI template,
1309   such as:
1310
1311<x:feedback template="mailto:ietf-http-wg@w3.org?subject={docname},%20%22{section}%22&amp;body=&lt;{ref}&gt;:"/>
1312
1313   where "docname" is substituted by the document name, "section" is
1314   substituted by section title (number and name), and "ref" is
1315   substituted by a URI pointing to the section being referenced.
1316
131711.11.  <h> element
1318
1319   This element is like the "h" element in [XHTML2].
1320
132111.12.  <highlight> element
1322
1323   Used to highlight text passages, currently only allowed in <artwork>.
1324
1325   Note: this is stripped when generating input for xml2rfc, so please
1326   use with care.
1327
132811.13.  <length-of> element
1329
1330   This element can be used to insert the length of another formatted
1331   section (in decimal).
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343Reschke                                                        [Page 24]
1344
1345Documentation             RFC2629 through XSLT             February 2015
1346
1347
1348   Example: computing the Content-Length header value
1349
1350   <artwork>
1351   ...
1352   Content-Length: <x:length-of target="req"/>
1353
1354   <x:span anchor="req">123456789
1355   <x:span><artwork/>
1356
1357   The lenght computation counts line ends as two characters (CRLF).
1358
1359   Note that indentation characters in artwork _will_ be counted.  The
1360   "indented" attribute allows to specify the amount of indentation to
1361   be substracted from the computed length.
1362
136311.14.  <link> element
1364
1365   This element can be added as a top-level child element below <rfc> to
1366   indicate additional link information.  It's currently used only when
1367   generating HTML output, in which case an HTML <link> element with
1368   identical attributes gets generated.
1369
1370   Example: generating HTML link element
1371
1372           <x:link xmlns:x="http://purl.org/net/xml2rfc/ext"
1373               rel="Bookmark"
1374               title="IETF WEBDAV Working Group"
1375               href="http://ftp.ics.uci.edu/pub/ietf/webdav/"/>
1376
1377   If the attribute "basename" is present, it is used to compute the
1378   target href based on the output format being generated (this is handy
1379   for "next"/"prev" links in a series of documents.  In this case, the
1380   href attribute is not required.
1381
1382   For instance:
1383
1384           <x:link xmlns:x="http://purl.org/net/xml2rfc/ext"
1385               rel="next"
1386               title="Part2"
1387               basename="draft-foobar-protocol-p2-latest"/>
1388
138911.15.  <lt> element
1390
1391   Used for grouping multiple <t> elements into a single list item.
1392
1393
1394
1395
1396
1397
1398
1399Reschke                                                        [Page 25]
1400
1401Documentation             RFC2629 through XSLT             February 2015
1402
1403
140411.16.  <note> element
1405
1406   Can be used to add a note, usually indented by a few characters.  It
1407   should contain one or more <t> child elements.
1408
140911.17.  <parse-xml> element
1410
1411   This element instructs the processor to parse the contents as XML and
1412   to warn when there's a problem (requires either MSXML or Saxon8 or
1413   newer).
1414
141511.18.  <prose> element
1416
1417   This element can be used inside <reference> to add plain text (before
1418   the date, when present).
1419
1420   See also <refcontent> (Section 12.14).
1421
142211.19.  <q> element
1423
1424   This element is like the <q> element defined in Section 9.2.2 of
1425   [HTML].
1426
142711.20.  <ref> element
1428
1429   This element is a simplified variant of the <xref> element, in that
1430   no "target" attribute needs to be specified, instead the text
1431   contents acts as identifier.  That in itself wouldn't be terribly
1432   useful, but together with the <anchor-alias>, it allows referring to
1433   other parts of the document with minimal additional markup.
1434
1435   For instance, given an alias definition such as
1436
1437         <section title="Test" anchor="test">
1438           <x:anchor-alias value="alias1"/>
1439           <x:anchor-alias value="alias 2"/>
1440           ...
1441         </section>
1442
1443   the following simple references
1444
1445         <x:ref>test</x:ref>
1446         <x:ref>alias1</x:ref>
1447         <x:ref>alias 2</x:ref>
1448
1449   are equivalent to...:
1450
1451
1452
1453
1454
1455Reschke                                                        [Page 26]
1456
1457Documentation             RFC2629 through XSLT             February 2015
1458
1459
1460         <xref target="test">test</xref>
1461         <xref target="test">alias1</xref>
1462         <xref target="test">alias 2</xref>
1463
146411.21.  <source> element
1465
1466   Can be used to enhance a <reference> with information about the
1467   location for the XML source.  This can be used by the <xref>
1468   processing code to automatically extract the target section number.
1469
1470   For example:
1471
1472         ...
1473         <xref target="RFC2616" x:fmt="of" x:rel="#PUT" />
1474         ...
1475
1476         <reference target="RFC2616"/>
1477           ...
1478           <x:source href="rfc2616.xml"/>
1479           ...
1480
148111.22.  <sup> element
1482
1483   This element is like the <sup> element in Section 9.2.3 of [HTML].
1484
1485   Note: the down conversion to RFC2629 format replaces "x^y" by "x^y".
1486
1487   See also <refcontent> (Section 12.18).
1488
148911.23.  Extensions to Xml2rfc <artwork> element
1490
1491   Sometimes, artwork occurs inside lists.  To get it indent properly in
1492   xml2rfc's text output, it needs to be indented in the source.  This
1493   is sub-optimal, as this whitespace will also appear in the HTML
1494   output, where it's already indented due to HTML's semantics.  As a
1495   workaround, a "x:indent-with" attribute can be specified, containing
1496   a string that will be prepended to each line when
1497   "clean-for-DTD.xslt" is run (see Section 13.4).
1498
1499   Furthermore, documents can contain code that might need to be marked
1500   as "code component"
1501   (<http://www.ietf.org/iesg/statement/copyright.html>).  This can be
1502   done using "x:is-code-component".
1503
150411.24.  Extensions to Xml2rfc <iref> element
1505
1506   The extension attribute below is allowed on the standard <iref>
1507   element:
1508
1509
1510
1511Reschke                                                        [Page 27]
1512
1513Documentation             RFC2629 through XSLT             February 2015
1514
1515
1516   o  x:for-anchor specifies that the <iref> will also be automatically
1517      inserted whenever the specified anchor is cross-referenced -- this
1518      may save entering lots of <iref> instances.  As a special case, a
1519      value of "" (empty string) refers to the anchor attribute of the
1520      closest ancestor.
1521
152211.25.  Extensions to Xml2rfc <list> element
1523
1524   The extension attribute below is allowed on the standard <list>
1525   element:
1526
1527   o  x:indent specifies the amount of indentation for list items in
1528      hanging lists.  This can be useful when the output format, such as
1529      XSL-FO, does not support automatical formatting.  The value takes
1530      an XSL-FO width, such as "5em".  The default is _length of longest
1531      label in characters_ times _0.8em_.
1532
1533   Also, the <list> element can take <x:lt> child elements instead of
1534   <t>, allowing to insert multiple paragraphs into a single list item.
1535
153611.26.  Extensions to Xml2rfc <rfc> element
1537
1538   The extension attributes below are allowed on the standard <rfc>
1539   element:
1540
1541   o  grddl:transformation can be used to reference a GRDDL transform.
1542
1543   o  x:maturity-level can be used to specify the IETF Standards Track
1544      Maturity Level of "proposed", "draft" or "internet" (see Section
1545      4.1 of [RFC2026]).
1546
154711.27.  Extensions to Xml2rfc <section> element
1548
1549   The extension attribute below is allowed on the standard <list>
1550   element:
1551
1552   o  x:fixed-section-number can be used to specify a fixed section
1553      number.  This can be useful when formatting historic documents
1554      that used a different numbering style.
1555
155611.28.  Extensions to Xml2rfc <xref> element
1557
1558   Three extension attributes are allowed on the standard <xref>
1559   element:
1560
1561   1.  x:sec can be specified to point to a specific section of the
1562       referenced document,
1563
1564
1565
1566
1567Reschke                                                        [Page 28]
1568
1569Documentation             RFC2629 through XSLT             February 2015
1570
1571
1572   2.  x:rel may specify a relative reference to use when linking into
1573       the referenced document (if linking by section number is not
1574       available),
1575
1576   3.  x:fmt defines the text format to be used.
1577
1578   The following formats are defined for the x:fmt attribute:
1579
1580   , (Comma)  [_reference_], Section _sec_
1581
1582   () [_reference_] (Section _sec_)
1583
1584   of Section _sec_ of [_reference_]
1585
1586   number  _sec_
1587
1588   none  No output (can be used to have xrefs to references without
1589      having them rendered as such)
1590
1591   sec  Section _sec_
1592
1593   These extensions are currently only supported for <xref> elements
1594   without child nodes.
1595
1596   If the processor knows how to reference the target section, it will
1597   generate a link directly to the target section, such as in [RFC2119],
1598   Section 5.
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623Reschke                                                        [Page 29]
1624
1625Documentation             RFC2629 through XSLT             February 2015
1626
1627
162812.  Experimental Support for XML2RFCv3 Vocabulary
1629
1630   "rfc2629.xslt" experimentally supports some elements from the "V3"
1631   vocabulary, defined in [XML2RFCV3]. _This support is experimental, as
1632   the "v3" vocabulary is still being developed._
1633
163412.1.  aside Element
1635
1636   See Section 2.6 of [XML2RFCV3].
1637
163812.2.  b Element
1639
1640   See Section 2.8 of [XML2RFCV3].
1641
164212.3.  bcp14 Element
1643
1644   See Section 2.10 of [XML2RFCV3].
1645
164612.4.  blockquote Element
1647
1648   See Section 2.11 of [XML2RFCV3].
1649
165012.5.  displayreference Element
1651
1652   See Section 2.20 of [XML2RFCV3].
1653
165412.6.  dd Element
1655
1656   See Section 2.19 of [XML2RFCV3].
1657
165812.7.  dl Element
1659
1660   See Section 2.21 of [XML2RFCV3].
1661
166212.8.  dt Element
1663
1664   See Section 2.22 of [XML2RFCV3].
1665
166612.9.  em Element
1667
1668   See Section 2.23 of [XML2RFCV3].
1669
167012.10.  i Element
1671
1672   See Section 2.28 of [XML2RFCV3].
1673
1674
1675
1676
1677
1678
1679Reschke                                                        [Page 30]
1680
1681Documentation             RFC2629 through XSLT             February 2015
1682
1683
168412.11.  li Element
1685
1686   See Section 2.31 of [XML2RFCV3].
1687
168812.12.  name Element
1689
1690   See Section 2.34 of [XML2RFCV3]. _Currently only supported inside
1691   <references> and <section>_.
1692
169312.13.  postalLine Element
1694
1695   See Section 2.40 of [XML2RFCV3].
1696
169712.14.  refcontent Element
1698
1699   See Section 2.41 of [XML2RFCV3].
1700
170112.15.  section Element
1702
1703   See Section 2.47 of [XML2RFCV3].
1704
170512.15.1.  numbered attribute
1706
1707   See Section 2.47.2 of [XML2RFCV3].
1708
170912.15.2.  removeInRFC attribute
1710
1711   See Section 2.47.4 of [XML2RFCV3].
1712
171312.16.  strong Element
1714
1715   See Section 2.51 of [XML2RFCV3].
1716
171712.17.  sub Element
1718
1719   See Section 2.52 of [XML2RFCV3].
1720
172112.18.  sup Element
1722
1723   See Section 2.53 of [XML2RFCV3].
1724
172512.19.  tt Element
1726
1727   See Section 2.63 of [XML2RFCV3].
1728
1729
1730
1731
1732
1733
1734
1735Reschke                                                        [Page 31]
1736
1737Documentation             RFC2629 through XSLT             February 2015
1738
1739
174012.20.  Extensions to xref Element
1741
174212.20.1.  relative attribute
1743
1744   See Section 2.67.3 of [XML2RFCV3].
1745
174612.20.2.  section attribute
1747
1748   See Section 2.67.4 of [XML2RFCV3].
1749
175012.20.3.  sectionFormat attribute
1751
1752   See Section 2.67.5 of [XML2RFCV3].
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791Reschke                                                        [Page 32]
1792
1793Documentation             RFC2629 through XSLT             February 2015
1794
1795
179613.  Utilities
1797
179813.1.  Checking References
1799
1800   "check-references.xslt" can be used to check all references to RFC-
1801   and ID-series IETF publications and to W3C publications (note this
1802   script requires local copies of
1803   <ftp://ftp.isi.edu/in-notes/rfc-index.xml> and
1804   <http://www.w3.org/2002/01/tr-automation/tr.rdf> and will use the XML
1805   status information provided at <http://tools.ietf.org/>).
1806
1807   If the document is supposed to be published on the IETF standards
1808   track, the desired level can be specified using the parameter
1809   "intended-level" as 'proposed', 'draft' or 'internet'.
1810   Alternatively, it can be specified inside the document using the
1811   attribute x:maturity-level on the <rfc> element (see Section 11.26).
1812
1813   Note: Downward references should be annotated using the <annotate>
1814   element, containing an <xref> to [BCP97].
1815
1816   When an XSLT 2.0 processor is used, links in the document can be
1817   checked as well using the "link-check" parameter ('yes' or 'no').
1818   Note that this only works for http links to documents of type text/*.
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847Reschke                                                        [Page 33]
1848
1849Documentation             RFC2629 through XSLT             February 2015
1850
1851
1852   For instance, as of 2008-07-12, the script produces for
1853   <http://greenbytes.de/tech/webdav/rfc2518.xml>:
1854
1855   > saxon rfc2518.xml check-references.xslt intended-status=PROPOSED \
1856     link-check=yes
1857
1858   Normative References:
1859   ISO-11578: not checked
1860   ISO-639: not checked
1861   ISO-8601: not checked
1862   REC-xml-19980210: [FirstEdition] obsoleted by REC-xml-20001006
1863   REC-xml-names-19990114: [FirstEdition] obsoleted by
1864    REC-xml-names-20060816
1865   RFC1766: [PROPOSED STANDARD] obsoleted by RFC3066 RFC3282
1866   RFC2068: [PROPOSED STANDARD] obsoleted by RFC2616
1867   RFC2069: [PROPOSED STANDARD] obsoleted by RFC2617
1868   RFC2119: [BEST CURRENT PRACTICE] (-> BCP0014) ok
1869   RFC2141: [PROPOSED STANDARD] ok
1870   RFC2277: [BEST CURRENT PRACTICE] (-> BCP0018) ok
1871   RFC2396: [DRAFT STANDARD] obsoleted by RFC3986
1872   RFC2279: [DRAFT STANDARD] obsoleted by RFC3629
1873
1874   Informational References:
1875   REC-PICS-labels-961031: [REC] ok
1876   RFC1807: [INFORMATIONAL] ok
1877   RFC2026: [BEST CURRENT PRACTICE] (-> BCP0009) ok
1878   RFC2291: [INFORMATIONAL] ok
1879   RFC2376: [INFORMATIONAL] obsoleted by RFC3023
1880   RFC2413: [INFORMATIONAL] obsoleted by RFC5013
1881   USMARC: not checked
1882   WF: not checked
1883
1884   Link Targets
1885   <http://www.w3.org/TR/1998/REC-xml-19980210>: ok
1886   <http://www.w3.org/TR/1999/REC-xml-names-19990114>: ok
1887   <http://www.dlib.org/dlib/july96/lagoze/07lagoze.html>: ok
1888   <http://www.w3.org/pub/WWW/TR/REC-PICS-labels-961031.html>: ok
1889
1890   Recognized formats in the <seriesInfo> element are:
1891
1892   o  for RFCs, the name attribute must be "RFC", and the value
1893      attribute must be the number of the RFC,
1894
1895   o  for Internet Drafs, the name attribute must be "ID" or "Internet-
1896      Draft", and the value attribute must be the file name of the draft
1897      (including the two-digit running number, but excluding a file
1898      extension),
1899
1900
1901
1902
1903Reschke                                                        [Page 34]
1904
1905Documentation             RFC2629 through XSLT             February 2015
1906
1907
1908   o  for W3C documents, the name attribute must be "W3C", must start
1909      with "W3C ", or must start with "World Wide Web Consortium ", and
1910      the value attribute must be the "shorthand" name of the
1911      specification, such as "REC-xml-19980210".
1912
1913      Note: this stylesheet will need network access to check links and
1914      status of Internet Drafts.  When running a Java-based XSLT engine,
1915      you may have to supply Java system properties specifying the HTTP
1916      proxy to be used, such as "-Dhttp.proxyHost=hostname
1917      -Dhttp.proxyPort=80".
1918
191913.2.  Generating Graphs from References
1920
1921   "gen-reference-graph.xslt" generates a graph of RFC dependencies,
1922   using the same base data as in "check-references.xslt" (see
1923   Section 13.1).  Its output is a "dot" file, to be processed by
1924   GraphViz (see <http://www.graphviz.org/>).
1925
1926   The picture below shows the RFC dependencies in RFC2629.
1927
1928
192913.3.  Producing reference entries for books
1930
1931   "amazon-asin.xslt" uses the Amazon web services to generate a
1932   <reference> element for a given ASIN (ISBN).
1933
1934   For instance:
1935
1936   <?xml version="1.0" encoding="utf-8"?>
1937   <references>
1938    <reference target="urn:isbn:0134516591">
1939      <front>
1940        <title>Simple Book, The: An Introduction to Internet Management,
1941                  Revised Second Edition</title>
1942        <author surname="Rose"
1943                   fullname="Marshall T. Rose" initials="M. T. ">
1944          <organization/>
1945        </author>
1946        <author surname="Marshall"
1947                   fullname="Rose T. Marshall" initials="R. T.">
1948          <organization/>
1949        </author>
1950        <date year="1996" month="March"/>
1951      </front>
1952      <seriesInfo name="Prentice Hall" value=""/>
1953    </reference>
1954   </references>
1955
1956
1957
1958
1959Reschke                                                        [Page 35]
1960
1961Documentation             RFC2629 through XSLT             February 2015
1962
1963
1964   Note that the resulting XML usually requires checking, in this case
1965   Amazon's database is playing tricks with Marshall's name...
1966
196713.4.  Down-converting to RFC2629bis DTD
1968
1969   "clean-for-DTD.xslt" can be used to down-convert some extensions to a
1970   format that is supported by the base xml2rfc distribution.  Note that
1971   these extensions are experimental (feedback appreciated).
1972
1973   The following mappings are done:
1974
1975   o  <iref> elements inside <artwork> elements are moved in front of
1976      the enclosing <figure> element.
1977
1978   o  <xref> elements inside <artwork> are expanded just like in regular
1979      text (that is, the markup is stripped, but the element is replaced
1980      by the applicable replacement text).
1981
1982   o  <x:anchor-alias> elements get stripped.
1983
1984   o  <x:bcp14> elements get stripped.
1985
1986   o  <x:bb>, <x:bc> and <x:bt> elements get stripped.
1987
1988   o  <x:blockquote> elements get converted to indented text (through a
1989      <list> element).
1990
1991   o  <x:dfn> elements get stripped.
1992
1993   o  <x:h> elements get stripped.
1994
1995   o  <x:link> elements get stripped.
1996
1997   o  <x:lt> elements get collapsed into a single <lt> element with
1998      added <vspace> added to simulate paragraph breaks.
1999
2000   o  <x:note> elements get converted to indented text (through a <list>
2001      element).
2002
2003   o  <x:q> elements get stripped, with apostrophes added around the
2004      text.
2005
2006   o  <x:prose> elements are transformed into <seriesInfo> elements
2007      (which is an abuse of the element and only a workaround until
2008      xml2rfc gets a matching extension).
2009
2010   o  <x:ref> elements get replaced by <xref> elements, targetting
2011      either the anchor or another anchor with matching <x:anchor-alias>
2012
2013
2014
2015Reschke                                                        [Page 36]
2016
2017Documentation             RFC2629 through XSLT             February 2015
2018
2019
2020      child element.
2021
202213.5.  Extracting artwork
2023
2024   With "extract-artwork.xslt", artwork elements named through the
2025   "name" attribute can be extracted.  This can be used to automatically
2026   check their syntax (for instance, when ABNFs appear within a figure
2027   element).
2028
2029   For instance:
2030   saxon rfc3986.xml extract-artwork.xslt name=uri.abnf
2031
2032   In addition, artwork of a specific type can be extracted, such as
2033   with:
2034   saxon rfc3986.xml extract-artwork.xslt type=abnf
2035
2036   When extracting by type, artwork elements with a specified name can
2037   be excluded; this can be handy when the document uses some kind of
2038   schema language, and an appendix contains the collected schema,
2039   repeating definitions from earlier on.  Example:
2040   saxon rfc3986.xml extract-artwork.xslt type=abnf except-name=clschm
2041
204213.6.  GRRDL
2043
2044   "rfc2629grddl.xslt" extracts RDF information.  This is experimental
2045   work-in-progress.  See <http://www.w3.org/TR/grddl/> for more
2046   information.
2047
204813.7.  HTML Live Refresh
2049
2050   _Experimental_
2051
2052   The "HTML Live Refresh" mode allows to run a text editor and a
2053   browser side-by-side, with the browser auto-updating every few
2054   seconds, displaying the updated HTML, and automatically navigating to
2055   the part of the page that changed last.
2056
2057   The requirements for this mode are:
2058
2059   1.  A browser that supports the "DOMParser" and "XSLTProcessor" APIs.
2060
2061   2.  The ability to reload the source code and the XSLT code from
2062       within Javascript; in some browsers this is forbidden for "file:"
2063       URIs due to perceived security problems.
2064
2065   This feature is currently tested with:
2066
2067
2068
2069
2070
2071Reschke                                                        [Page 37]
2072
2073Documentation             RFC2629 through XSLT             February 2015
2074
2075
2076   1.  Mozilla Firefox, and
2077
2078   2.  Google Chome (where, to be able to reload from the local
2079       filesystem, Chrome needs to be started with the command line
2080       option "--allow-file-access-from-files").
2081
2082   Use of this feature requires the inclusion of a processing
2083   instruction that holds the name of the XML source, such as:
2084
2085   <?rfc-ext refresh-from="draft-foo-bar-00.xml"?>
2086
2087   The optional parameters "refresh-interval" and "refresh-xslt" support
2088   changing the refresh interval (in seconds, defaulting to 10), and the
2089   name of the XSLT file to use (defaulting to "rfc2629.xslt").
2090
2091   To test this feature, start with a minimal source file like this:
2092
2093   <?xml-stylesheet type='text/xsl' href='rfc2629.xslt'?>
2094   <?rfc-ext refresh-from="draft-foo-bar-00.xml"?>
2095   <rfc docName="draft-foo-bar-00" ipr="trust200902">
2096     <front>
2097       <title>Title Goes Here</title>
2098       <abstract>
2099         <t>Abstract</t>
2100       </abstract>
2101     </front>
2102   </rfc>
2103   ...open it in both text editor and browser, start editing and of
2104   course ocasionally save.
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127Reschke                                                        [Page 38]
2128
2129Documentation             RFC2629 through XSLT             February 2015
2130
2131
213214.  Informative References
2133
2134   [BCP97]    Klensin, J. and S. Hartman, "Handling Normative References
2135              to Standards-Track Documents", BCP 97, RFC 4897,
2136              June 2007.
2137
2138   [DC-HTML]  Johnston, P. and A. Powell, "Expressing Dublin Core
2139              metadata using HTML/XHTML meta and link elements", Dublin
2140              Core Metadata Initiative , August 2008,
2141              <http://dublincore.org/documents/2008/08/04/dc-html/>.
2142
2143   [HTML]     Raggett, D., Le Hors, A., and I. Jacobs, "HTML 4.01
2144              Specification", W3C Recommendation REC-html401-19991224,
2145              December 1999,
2146              <http://www.w3.org/TR/1999/REC-html401-19991224>.
2147
2148              Latest version available at
2149              <http://www.w3.org/TR/html401>.
2150
2151   [RFC2026]  Bradner, S., "The Internet Standards Process -- Revision
2152              3", BCP 9, RFC 2026, October 1996.
2153
2154   [RFC2045]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
2155              Extensions (MIME) Part One: Format of Internet Message
2156              Bodies", RFC 2045, November 1996.
2157
2158   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
2159              Requirement Levels", BCP 14, RFC 2119, March 1997.
2160
2161   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Nielsen, H.,
2162              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
2163              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
2164
2165   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
2166              June 1999.
2167
2168   [RFC2648]  Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
2169              August 1999.
2170
2171   [RFC2731]  Kunze, J., "Encoding Dublin Core Metadata in HTML",
2172              RFC 2731, December 1999.
2173
2174   [RFC5234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
2175              Specifications: ABNF", STD 68, RFC 5234, January 2008.
2176
2177   [RFC5741]  Daigle, L. and O. Kolkman, "RFC Streams, Headers, and
2178              Boilerplates", RFC 5741, December 2009.
2179
2180
2181
2182
2183Reschke                                                        [Page 39]
2184
2185Documentation             RFC2629 through XSLT             February 2015
2186
2187
2188   [RNC]      Clark, J., "RELAX NG Compact Syntax", OASIS , Nov 2002, <h
2189              ttp://www.oasis-open.org/committees/relax-ng/
2190              compact-20021121.html>.
2191
2192   [XHTML2]   Birbeck, M., Gylling, M., McCarron, S., Pemberton, S.,
2193              Axelsson, J., Dubinko, M., Epperson, B., Ishikawa, M., and
2194              A. Navarro, "XHTML(tm) 2.0", W3C Group Note NOTE-xhtml2-
2195              20101216, December 2010,
2196              <http://www.w3.org/TR/2010/NOTE-xhtml2-20101216>.
2197
2198              Latest version available at <http://www.w3.org/TR/xhtml2>.
2199
2200   [XML]      Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and
2201              F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth
2202              Edition)", W3C Recommendation REC-xml-20081126,
2203              November 2008,
2204              <http://www.w3.org/TR/2008/REC-xml-20081126/>.
2205
2206              Latest version available at <http://www.w3.org/TR/xml>.
2207
2208   [XML2RFCV2]
2209              Reschke, J., "The 'XML2RFC' version 2 Vocabulary",
2210              draft-reschke-xml2rfc-13 (work in progress), October 2014.
2211
2212   [XML2RFCV3]
2213              Hoffman, P., "The 'XML2RFC' version 3 Vocabulary",
2214              draft-hoffman-xml2rfc-14 (work in progress),
2215              December 2014.
2216
2217   [XSL-FO]   Berglund, A., "Extensible Stylesheet Language (XSL)
2218              Version 1.1", W3C Recommendation REC-xsl11-20061205,
2219              December 2006,
2220              <http://www.w3.org/TR/2006/REC-xsl11-20061205/>.
2221
2222              Latest version available at <http://www.w3.org/TR/xsl11/>.
2223
2224   [1]  <http://www.exslt.org/exsl/functions/node-set/index.html>
2225
2226   [2]  <http://www.exslt.org/date/functions/date-time/>
2227
2228   [3]  <http://www.microsoft.com/downloads/
2229        details.aspx?FamilyID=2FB55371-C94E-4373-B0E9-DB4816552E41>
2230
2231   [4]  <https://addons.mozilla.org/de/firefox/addon/722>
2232
2233   [5]  <https://bugzilla.mozilla.org/show_bug.cgi?id=22942>
2234
2235   [6]  <http://bugzilla.mozilla.org/show_bug.cgi?id=193678>
2236
2237
2238
2239Reschke                                                        [Page 40]
2240
2241Documentation             RFC2629 through XSLT             February 2015
2242
2243
2244   [7]  <https://addons.mozilla.org/firefox/2933/>
2245
2246   [8]  <http://www.thaiopensource.com/relaxng/jing.html>
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295Reschke                                                        [Page 41]
2296
2297Documentation             RFC2629 through XSLT             February 2015
2298
2299
2300Appendix A.  RELAX NG Compact Schema
2301
2302   The RelaxNG schema ([RNC]) below can be used to validate input
2303   documents (for instance, with Jing [8]).
2304
2305   _Note that this is work in progress, and doesn't yet cover all
2306   extensions completely._
2307
2308   # WORK IN PROGRESS! PLEASE REPORT PROBLEMS TO THE AUTHOR.
2309
2310   # Define our extension namespace
2311   namespace x = "http://purl.org/net/xml2rfc/ext"
2312
2313   # Define GRDDL namespace
2314   namespace grddl = "http://www.w3.org/2003/g/data-view#"
2315
2316   # Define RDF namespace
2317   namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
2318
2319   # Include rfc2629bis RNC grammar
2320   include "rfc2629.rnc" {
2321
2322     # Redefine <annotation> to allow more markup
2323     annotation =
2324       element annotation {
2325         attlist.annotation,
2326         (TEXT
2327           | xref
2328           | eref
2329           | iref
2330           | cref
2331           | spanx
2332           | v3_tt
2333           )*
2334       }
2335
2336     # Redefine <artwork> to allow markup
2337     artwork =
2338       element artwork {
2339         attlist.artwork,
2340         (TEXT
2341           | eref
2342           | iref
2343           | spanx
2344           | xref
2345           | v3_b
2346           | v3_em
2347           | v3_i
2348
2349
2350
2351Reschke                                                        [Page 42]
2352
2353Documentation             RFC2629 through XSLT             February 2015
2354
2355
2356           | v3_strong
2357           | x_abnf-char-sequence
2358           | x_bb
2359           | x_bc
2360           | x_bcp14
2361           | x_bt
2362           | x_highlight
2363           | x_length-of
2364           | x_parse-xml
2365           | x_ref
2366           | x_span
2367           | x_x)*
2368       }
2369
2370     # Redefine <back> to allow boilerplate
2371     back =
2372       element back {
2373         attlist.back,
2374         v3_displayreference*,
2375         references*,
2376         section*,
2377         x_boilerplate?
2378       }
2379
2380     # Redefine <c> to allow our extension elements
2381     c =
2382       element c {
2383         attlist.c,
2384         (TEXT
2385           | xref
2386           | eref
2387           | iref
2388           | cref
2389           | spanx
2390           | v3_b
2391           | v3_em
2392           | v3_i
2393           | v3_strong
2394           | v3_tt
2395           | x_ref)*
2396       }
2397
2398     # Redefine <cref> to allow more child elements
2399     cref =
2400       element cref {
2401         attlist.cref,
2402         (TEXT
2403           | eref
2404
2405
2406
2407Reschke                                                        [Page 43]
2408
2409Documentation             RFC2629 through XSLT             February 2015
2410
2411
2412           | xref)*
2413       }
2414
2415     # Redefine <front> to allow boilerplate
2416     front =
2417       element front {
2418         attlist.front,
2419         title,
2420         author+,
2421         date,
2422         area*,
2423         workgroup*,
2424         keyword*,
2425         x_boilerplate?,
2426         abstract?,
2427         note*
2428       }
2429
2430     # Redefine <list> element to allow <x:lt> child elements
2431     \list =
2432       element list {
2433         attlist.list,
2434         (t+ | x_lt+)
2435       }
2436
2437     # Redefine <preamble> to allow our extension elements
2438     preamble =
2439       element preamble {
2440         attlist.preamble,
2441         (TEXT
2442           | xref
2443           | eref
2444           | iref
2445           | cref
2446           | spanx
2447           | v3_b
2448           | v3_em
2449           | v3_i
2450           | v3_strong
2451           | v3_tt
2452           | x_anchor-alias
2453           | x_bcp14)*
2454     }
2455
2456     # Redefine <postal> to allow <postalLine>
2457     postal =
2458       element postal {
2459         (
2460
2461
2462
2463Reschke                                                        [Page 44]
2464
2465Documentation             RFC2629 through XSLT             February 2015
2466
2467
2468           (city
2469             | code
2470             | country
2471             | region
2472             | street)*
2473           | v3_postalLine+)
2474       }
2475
2476     # Redefine <postamble> to allow our extension elements
2477     postamble =
2478       element postamble {
2479         attlist.postamble,
2480         (TEXT
2481           | xref
2482           | eref
2483           | iref
2484           | cref
2485           | spanx
2486           | v3_b
2487           | v3_em
2488           | v3_i
2489           | v3_strong
2490           | v3_tt
2491           | x_bcp14)*
2492       }
2493
2494     # Redefine <reference> to allow our extension elements
2495     reference =
2496       element reference {
2497         attlist.reference,
2498         front,
2499         seriesInfo*,
2500         x_prose?,
2501         v3_refcontent?,
2502         format*,
2503         annotation*,
2504         x_source?
2505       }
2506
2507     # Redefine <references> to allow our <name>
2508     references =
2509       element references {
2510         attribute title { text }?,
2511         v3_name?,
2512         reference+
2513       }
2514
2515     # Redefine <rfc> to allow our extension elements
2516
2517
2518
2519Reschke                                                        [Page 45]
2520
2521Documentation             RFC2629 through XSLT             February 2015
2522
2523
2524     rfc =
2525       element rfc {
2526         attlist.rfc,
2527         x_link*,
2528         x_feedback?,
2529         x_assign-section-number*,
2530         front,
2531         middle,
2532         back?
2533       }
2534
2535     # Redefine <section> to allow our extension elements
2536     section =
2537       element section {
2538         attlist.x_section,
2539         (t
2540          | figure
2541          | texttable
2542          | iref
2543          | section
2544          | v3_aside
2545          | v3_blockquote
2546          | v3_dl
2547          | v3_name
2548          | v3_ol
2549          | x_anchor-alias
2550          | x_blockquote
2551          | x_include-author
2552          | x_note
2553          | rdf_Description)*
2554       }
2555
2556     # Redefine <spanx> to allow some markup
2557     spanx =
2558       element spanx {
2559         attlist.spanx,
2560         (TEXT
2561           | iref
2562           | xref
2563           | x_ref)*
2564       }
2565
2566     # Redefine <t> to allow our extension elements
2567     t =
2568       element t {
2569         attlist.t,
2570         (TEXT
2571          | \list
2572
2573
2574
2575Reschke                                                        [Page 46]
2576
2577Documentation             RFC2629 through XSLT             February 2015
2578
2579
2580          | figure
2581          | xref
2582          | eref
2583          | iref
2584          | cref
2585          | spanx
2586          | vspace
2587          | v3_b
2588          | v3_bcp14
2589          | v3_em
2590          | v3_i
2591          | v3_strong
2592          | v3_sub
2593          | v3_sup
2594          | v3_tt
2595          | x_abnf-char-sequence
2596          | x_anchor-alias
2597          | x_bcp14
2598          | x_dfn
2599          | x_h
2600          | x_q
2601          | x_ref
2602          | x_span
2603          | x_sup)*
2604       }
2605   }
2606
2607   # Allow x:indent-with attribute on <artwork>
2608   attlist.artwork &=
2609     attribute x:indent-with { ATEXT }?,
2610     attribute x:is-code-component { "no" | "yes" }?
2611
2612   # Allow anchor and x:annotation attributes on <author>
2613   attlist.author &=
2614     attribute anchor { xsd:ID }?,
2615     attribute x:annotation { ATEXT }?
2616
2617   # Extend attribute set for <c> (see Section 11.24)
2618   attlist.c &=
2619     attribute anchor { xsd:ID }?
2620
2621   # Extend attribute set for <iref> (see Section 11.24)
2622   attlist.iref &=
2623     attribute x:for-anchor { ATEXT }?
2624
2625   # Extend attribute set for <list> (see Section 11.25)
2626   attlist.list &=
2627     attribute x:indent { ATEXT }?
2628
2629
2630
2631Reschke                                                        [Page 47]
2632
2633Documentation             RFC2629 through XSLT             February 2015
2634
2635
2636   # Extend attribute set for <preamble>
2637   attlist.preamble &=
2638     attribute anchor { xsd:ID }?
2639
2640   # Extend attribute set for <rfc>
2641   attlist.rfc &=
2642     attribute grddl:transformation { ATEXT }?,
2643     attribute x:maturity-level { "proposed" | "draft" | "internet" }?
2644
2645   # Extend/Relax attribute set for <section> (see Section 11.27)
2646   attlist.x_section &=
2647     attribute anchor { xsd:ID }?,
2648     attribute title { ATEXT }?,
2649     attribute toc { "include" | "exclude" | "default" }?,
2650     attribute numbered { "no" | "yes" }?, # see Section 12.15.1
2651     attribute removeInRFC { "no" | "yes" }?, # see Section 12.15.2
2652     attribute x:fixed-section-number { ATEXT }?
2653
2654   # Allow anchor attribute on <spanx>
2655   attlist.spanx &=
2656     attribute anchor { xsd:ID }?
2657
2658   # Allow x:quotes attribute on <title>
2659   attlist.title &=
2660     attribute x:quotes { "true" | "false" }?
2661
2662   # Allow annotation attribute on <uri>
2663   attlist.uri &=
2664     attribute x:annotation { ATEXT }?
2665
2666   # Extend attribute set for <xref> (see Section 11.28)
2667   attlist.xref &=
2668     attribute x:fmt  { "()" | "," | "of" | "number" | "sec" |
2669                        "none" }?,
2670     attribute x:rel  { ATEXT }?,
2671     attribute x:sec  { ATEXT }?,
2672     attribute relative { ATEXT }?,      # Section 12.20.1
2673     attribute section { ATEXT }?,       # Section 12.20.2
2674     attribute sectionFormat { ATEXT }?  # Section 12.20.3
2675
2676   # Side Note (see Section 12.1)
2677   v3_aside =
2678     element aside {
2679       attribute anchor { xsd:ID }?,
2680       t+
2681     }
2682
2683   # Strongly Emphasized Text (see Section 12.2)
2684
2685
2686
2687Reschke                                                        [Page 48]
2688
2689Documentation             RFC2629 through XSLT             February 2015
2690
2691
2692   v3_b =
2693     element b {
2694       (TEXT
2695         | xref
2696         | v3_i
2697         | x_ref)*
2698     }
2699
2700   # BCP14/RFC2119 keywords (see Section 12.3)
2701   v3_bcp14 =
2702     element bcp14 {
2703       "MAY"
2704       | "MUST"
2705       | "MUST NOT"
2706       | "NOT RECOMMENDED"
2707       | "OPTIONAL"
2708       | "RECOMMENDED"
2709       | "REQUIRED"
2710       | "SHALL"
2711       | "SHALL NOT"
2712       | "SHOULD"
2713       | "SHOULD NOT"
2714     }
2715
2716   # Blockquote (see Section 12.4)
2717   v3_blockquote =
2718     element blockquote {
2719       attribute anchor { xsd:ID }?,
2720       attribute cite { URI }?,
2721       t+
2722     }
2723
2724   # Mapping of reference names to display names (see Section 12.5)
2725   v3_displayreference =
2726     element displayreference {
2727       attribute target { xsd:IDREF },
2728       attribute to { ATEXT }
2729     }
2730
2731   # Definition List Description Element (see Section 12.6)
2732   v3_dd =
2733     element dd {
2734       (t
2735         | v3_dl)+ |
2736       (TEXT
2737         | cref
2738         | eref
2739         | iref
2740
2741
2742
2743Reschke                                                        [Page 49]
2744
2745Documentation             RFC2629 through XSLT             February 2015
2746
2747
2748         | xref
2749         | v3_b
2750         | v3_em
2751         | v3_i
2752         | v3_tt
2753         | v3_strong)*
2754     }
2755
2756   # Definition List (see Section 12.7)
2757   v3_dl =
2758     element dl {
2759          attribute spacing { "normal" | "compact" }?,
2760          attribute hanging { "false" | "true" }?,
2761          (v3_dt, v3_dd)+
2762     }
2763
2764   # Definition List Description Term (see Section 12.8)
2765   v3_dt =
2766     element dt {
2767       attribute anchor { xsd:ID }?,
2768       (TEXT
2769         | cref
2770         | eref
2771         | iref
2772         | xref
2773         | v3_b
2774         | v3_em
2775         | v3_i
2776         | v3_tt
2777         | v3_strong)*
2778     }
2779
2780   # Emphasized Text (see Section 12.9)
2781   v3_em =
2782     element em {
2783       (TEXT
2784         | xref
2785         | v3_strong
2786         | x_ref)*
2787     }
2788
2789   # Emphasized Text (see Section 12.10)
2790   v3_i =
2791     element i {
2792       (TEXT
2793         | cref
2794         | eref
2795         | iref
2796
2797
2798
2799Reschke                                                        [Page 50]
2800
2801Documentation             RFC2629 through XSLT             February 2015
2802
2803
2804         | xref
2805         | v3_b
2806         | v3_em
2807         | v3_i
2808         | v3_strong
2809         | v3_sub
2810         | v3_sup
2811         | v3_tt
2812         | x_ref)*
2813     }
2814
2815   # Definition List (see Section 12.11)
2816   v3_li =
2817     element li {
2818       attribute anchor { xsd:ID }?,
2819       (t+
2820         |
2821       (TEXT
2822         | cref
2823         | eref
2824         | iref
2825         | xref
2826         | v3_b
2827         | v3_em
2828         | v3_i
2829         | v3_strong
2830         | v3_sub
2831         | v3_sup
2832         | v3_tt
2833         | x_ref)*
2834       )
2835     }
2836
2837   # Section/Figure/Table Name (see Section 12.12)
2838   v3_name =
2839     element name {
2840       (TEXT
2841         | v3_tt
2842         | xref)*
2843     }
2844
2845   # Definition List (see Section 12.7)
2846   v3_ol =
2847     element ol {
2848       attribute anchor { xsd:ID }?,
2849       attribute start { TEXT }?,
2850       v3_li+
2851     }
2852
2853
2854
2855Reschke                                                        [Page 51]
2856
2857Documentation             RFC2629 through XSLT             February 2015
2858
2859
2860   # Line in postal address (see Section 12.13)
2861   v3_postalLine =
2862     element postalLine {
2863       TEXT
2864     }
2865
2866   # additional content for references (see Section 12.14)
2867   v3_refcontent =
2868     element refcontent {
2869       (TEXT
2870         | v3_em)*
2871     }
2872
2873   # Emphasized Text (see Section 12.16)
2874   v3_strong =
2875     element strong {
2876       (TEXT
2877         | xref
2878         | v3_em
2879         | x_ref)*
2880     }
2881
2882   # Subscript (see Section 12.17)
2883   v3_sub =
2884     element sub {
2885       (TEXT)*
2886     }
2887
2888   # Superscript (see Section 12.18)
2889   v3_sup =
2890     element sup {
2891       (TEXT)*
2892     }
2893
2894   # Monospaced Text (see Section 12.19)
2895   v3_tt =
2896     element tt {
2897       (TEXT
2898         | xref
2899         | v3_em
2900         | x_ref)*
2901     }
2902
2903   # Conversion to ABNF char sequence (see Section 11.1)
2904   x_abnf-char-sequence =
2905     element x:abnf-char-sequence {
2906       TEXT
2907     }
2908
2909
2910
2911Reschke                                                        [Page 52]
2912
2913Documentation             RFC2629 through XSLT             February 2015
2914
2915
2916   # Aliasing of anchors (see Section 11.2)
2917   x_anchor-alias =
2918     element x:anchor-alias {
2919       attribute value { TEXT },
2920       empty
2921     }
2922
2923   # Supply feedback links (see Section 11.10)
2924   x_feedback =
2925     element x:feedback {
2926       attribute template { TEXT },
2927       empty
2928     }
2929
2930   # Including Author information
2931   # (experimental)
2932   x_include-author =
2933     element x:include-author {
2934       attribute target { xsd:IDREF }
2935     }
2936
2937   # Setting section numbers for internally generated sections
2938   # (experimental)
2939   x_assign-section-number =
2940     element x:assign-section-number {
2941       attribute builtin-target { "authors" },
2942       attribute number { TEXT },
2943       empty
2944     }
2945
2946   # Bottom line of box drawing (see Section 11.4)
2947   x_bb =
2948     element x:bb {
2949       (TEXT
2950         | iref
2951         | xref
2952         | x_bb
2953         | x_bc
2954         | x_bt
2955         | x_ref)*
2956     }
2957
2958   # Center line of box drawing (see Section 11.5)
2959   x_bc =
2960     element x:bc {
2961       (TEXT
2962         | iref
2963         | spanx
2964
2965
2966
2967Reschke                                                        [Page 53]
2968
2969Documentation             RFC2629 through XSLT             February 2015
2970
2971
2972         | xref
2973         | x_bb
2974         | x_bc
2975         | x_bt
2976         | x_ref)*
2977     }
2978
2979   # BCP14/RFC2119 keywords (see Section 11.3)
2980   x_bcp14 =
2981     element x:bcp14 {
2982       "MAY"
2983       | "MUST"
2984       | "MUST NOT"
2985       | "NOT RECOMMENDED"
2986       | "OPTIONAL"
2987       | "RECOMMENDED"
2988       | "REQUIRED"
2989       | "SHALL"
2990       | "SHALL NOT"
2991       | "SHOULD"
2992       | "SHOULD NOT"
2993     }
2994
2995   # Blockquote (see Section 11.6)
2996   x_blockquote =
2997     element x:blockquote {
2998       attribute anchor { xsd:ID }?,
2999       attribute cite { URI }?,
3000       t+
3001     }
3002
3003   # Boilerplate (see Section 11.6)
3004   x_boilerplate =
3005     element x:boilerplate {
3006       section+
3007     }
3008
3009   # Top line of box drawing (see Section 11.8)
3010   x_bt =
3011     element x:bt {
3012       (TEXT
3013         | iref
3014         | xref
3015         | x_bb
3016         | x_bc
3017         | x_bt
3018         | x_ref)*
3019     }
3020
3021
3022
3023Reschke                                                        [Page 54]
3024
3025Documentation             RFC2629 through XSLT             February 2015
3026
3027
3028   # Definition (see Section 11.9)
3029   x_dfn =
3030     element x:dfn {
3031       attribute anchor { xsd:ID }?,
3032       (TEXT
3033         | iref)*
3034     }
3035
3036   # Heading (see Section 11.11)
3037   x_h =
3038     element x:h {
3039       TEXT
3040     }
3041
3042   # Heading (see Section 11.12)
3043   x_highlight =
3044     element x:highlight {
3045       TEXT
3046     }
3047
3048   # Length Measurement (see Section 11.13)
3049   x_length-of =
3050     element x:length-of {
3051       attribute indented { NUMBER }?,
3052       attribute target { xsd:IDREF },
3053       empty
3054     }
3055
3056   # Link (see Section 11.14)
3057   x_link =
3058     element x:link {
3059       attribute basename { URI }?,
3060       attribute href { URI }?,
3061       attribute title { TEXT }?,
3062       attribute rel { TEXT },
3063       empty
3064     }
3065
3066   # Extended list item (see Section 11.15)
3067   x_lt =
3068     element x:lt {
3069       attribute anchor { xsd:ID }?,
3070       attribute hangText { TEXT }?,
3071       t+
3072     }
3073
3074   # Note (see Section 11.16)
3075   x_note =
3076
3077
3078
3079Reschke                                                        [Page 55]
3080
3081Documentation             RFC2629 through XSLT             February 2015
3082
3083
3084     element x:note {
3085       attribute anchor { xsd:ID }?,
3086       t+
3087     }
3088
3089   # Signal XML content (see Section 11.17)
3090   x_parse-xml =
3091     element x:parse-xml {
3092       (TEXT
3093         | xref)*
3094     }
3095
3096   # Inline prose in a reference (see Section 11.18)
3097   x_prose =
3098     element x:prose {
3099       TEXT
3100     }
3101
3102   # Inline quote (see Section 11.19)
3103   x_q =
3104     element x:q {
3105       TEXT
3106     }
3107
3108   # Anchor reference (see Section 11.20)
3109   x_ref =
3110     element x:ref {
3111       attribute anchor { xsd:ID }?,
3112       TEXT
3113     }
3114
3115   # source information (see Section 11.21)
3116   x_source =
3117     element x:source {
3118       attribute basename { ATEXT }?,
3119       attribute href { URI },
3120       empty
3121     }
3122
3123   # superscript (see Section 11.22)
3124   x_sup =
3125     element x:sup {
3126       TEXT
3127     }
3128
3129   # Inline Span
3130   x_span =
3131     element x:span {
3132
3133
3134
3135Reschke                                                        [Page 56]
3136
3137Documentation             RFC2629 through XSLT             February 2015
3138
3139
3140       attribute anchor { xsd:ID }?,
3141       (TEXT
3142         | x_parse-xml)*
3143     }
3144
3145   # Nop (for alignment in source)
3146   x_x =
3147     element x:x {
3148       empty
3149     }
3150
3151   # Embed RDF statements
3152   rdf_Description =
3153     element rdf:Description {
3154       rdf_content
3155     }
3156
3157   rdf_content =
3158     ( TEXT | element * { rdf_content })*
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191Reschke                                                        [Page 57]
3192
3193Documentation             RFC2629 through XSLT             February 2015
3194
3195
3196Appendix B.  Implementation Notes
3197
3198B.1.  Recognized type attributes for <artwork> element
3199
3200   Specific values in the <artwork> element's "type" attribute are
3201   recognized and cause a different visual style to be used:
3202
3203   +-------------------------------------+-----------------------------+
3204   | Type                                | Comment                     |
3205   +-------------------------------------+-----------------------------+
3206   | abnf                                | ABNF as per [RFC5234]       |
3207   |                                     |                             |
3208   | abnf2045                            | ABNF as per [RFC2045]       |
3209   |                                     |                             |
3210   | abnf2616                            | ABNF as per [RFC2616],      |
3211   |                                     | Section 2.1                 |
3212   |                                     |                             |
3213   | application/relax-ng-compact-syntax | Relax NG Compact Syntax as  |
3214   |                                     | per [RNC]                   |
3215   |                                     |                             |
3216   | application/xml-dtd                 | XML DTD                     |
3217   |                                     |                             |
3218   | code                                | monospaced text (with       |
3219   |                                     | outline)                    |
3220   |                                     |                             |
3221   | drawing                             | drawing (with outline)      |
3222   |                                     |                             |
3223   | example                             | monospaced text (with       |
3224   |                                     | outline)                    |
3225   |                                     |                             |
3226   | inline                              | monospaced text (no         |
3227   |                                     | outline)                    |
3228   |                                     |                             |
3229   | message/http; msgtype="request"     | HTTP message, as per        |
3230   |                                     | [RFC2616], Section 19.1     |
3231   |                                     |                             |
3232   | message/http; msgtype="response"    | HTTP message, as per        |
3233   |                                     | [RFC2616], Section 19.1     |
3234   +-------------------------------------+-----------------------------+
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247Reschke                                                        [Page 58]
3248
3249Documentation             RFC2629 through XSLT             February 2015
3250
3251
3252Appendix C.  Examples
3253
3254C.1.  Using the 'Internal Subset'
3255
3256   The prolog of the XML document can both be used to refer to an
3257   external DTD, and also to define internal entities (Section 2.8 of
3258   [XML]):
3259
3260   <?xml version="1.0"?>
3261   <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
3262
3263   <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
3264
3265     <!-- use "&MAY;" for a BCP 14 "MAY", see Section 11.3 -->
3266     <!ENTITY MAY
3267     "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>MAY</bcp14>">
3268
3269     <!-- re-declare "&nbsp;" as code point 160 (non-breaking space) -->
3270     <!-- you may need this for UAs that do not read external DTDs -->
3271     <!ENTITY nbsp
3272     "&#160;">
3273
3274     <!-- allow later RFC2616 reference using "&rfc2616;" -->
3275     <!-- the data will be fetched from xml.resource.org -->
3276     <!ENTITY rfc2616 PUBLIC
3277     "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
3278
3279     <!-- allow a custom reference using "&mydraft;" -->
3280     <!-- the data will be fetched from the same location as the
3281          source file -->
3282     <!ENTITY mydraft PUBLIC "reference.mydraft.xml">
3283   ]>
3284
3285   Note: including entities from a remote site will not work in Firefox,
3286   see <https://bugzilla.mozilla.org/show_bug.cgi?id=22942>.
3287
3288C.2.  Customization
3289
3290   The XSLT code can be customized by creating a custom XSLT file that
3291   uses <xsl:import> to include the original code, and just overrides
3292   particular rules.
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303Reschke                                                        [Page 59]
3304
3305Documentation             RFC2629 through XSLT             February 2015
3306
3307
3308   For instance, the code below overrides several attributes in
3309   "rfc2629toFO.xslt", changing the color, spacing and font family for
3310   headers.
3311
3312   <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3313                  version="1.0">
3314
3315     <xsl:import href="rfc2629toFO.xslt"/>
3316
3317     <xsl:attribute-set name="h1">
3318       <xsl:attribute name="color">darkblue</xsl:attribute>
3319       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
3320       <xsl:attribute name="space-before">24pt</xsl:attribute>
3321     </xsl:attribute-set>
3322
3323     <xsl:attribute-set name="h2">
3324       <xsl:attribute name="color">darkblue</xsl:attribute>
3325       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
3326       <xsl:attribute name="space-before">18pt</xsl:attribute>
3327       <xsl:attribute name="space-after">3pt</xsl:attribute>
3328     </xsl:attribute-set>
3329
3330     <xsl:attribute-set name="h3">
3331       <xsl:attribute name="color">darkblue</xsl:attribute>
3332       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
3333       <xsl:attribute name="space-before">16pt</xsl:attribute>
3334       <xsl:attribute name="space-after">2pt</xsl:attribute>
3335     </xsl:attribute-set>
3336
3337   </xsl:transform>
3338
3339      Note: the name for the attribute sets may change in the future as
3340      more working is done with respect to customizability.  In any
3341      case, overriding the settings in a separate file will be easier to
3342      maintain.  Please contact the author if you find yourself trying
3343      to override style definitions that currently do not use attribute
3344      sets.
3345
3346      Note: the CSS style information used in "rfc2629.xslt" can be
3347      overriden in a similar (but less granular) way: just overwrite the
3348      template called "insertCss".  As for XSL-FO, the class names may
3349      change in future.
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359Reschke                                                        [Page 60]
3360
3361Documentation             RFC2629 through XSLT             February 2015
3362
3363
3364Appendix D.  Producing the IETF 'Boilerplate'
3365
3366   Various attributes of the "<rfc>" element plus some child elements of
3367   "<front>" affect the automatically generated parts of the front page,
3368   such as the tabular information at the beginning, the "Status Of This
3369   Memo", and the "Copyright Notice".
3370
3371   When submitting an Internet Draft, this "boilerplate" is checked by
3372   "Idnits" (<http://tools.ietf.org/tools/idnits/>) for compliance with
3373   the current Intellectual Property rules, and thus it is important to
3374   set the correct values.
3375
3376   Furthermore, the RFC Production Center uses RFC2629-based tools to
3377   generate the final RFC text, so the more accurate the supplied
3378   information is, the less additional work is left, and the risk for
3379   errors in producing the final (and immutable!) document is reduced.
3380
3381      Note: this only applies to the case when IETF documents are
3382      produced.  The "private" processing instruction allows to switch
3383      off most of the autogeneration logic.
3384
3385D.1.  The /rfc/@ipr Attribute
3386
3387   As of the time of this writing, this attribute value can take a long
3388   list of values.  As frequently, this is not the result of a grand
3389   plan, but simply for historic reasons.  Of these values, only a few
3390   are currently in use; all others are supported by the various tools
3391   for backwards compatibility with old source files.
3392
3393      Note: some variations of the boilerplate are selected based on the
3394      document's date; therefore it is important to specify the "year",
3395      "month" and "day" attributes of the "<date>" element when
3396      archiving the XML source of an Internet Draft on the day of
3397      submission.
3398
3399   _Disclaimer: THIS ONLY PROVIDES IMPLEMENTATION INFORMATION.  IF YOU
3400   NEED LEGAL ADVICE, PLEASE CONTACT A LAWYER._ For further information,
3401   refer to <http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf>.
3402
3403   Finally, for the current "Status Of This Memo" text, the
3404   "submissionType" attribute determines whether a statement about "Code
3405   Components" is inserted (this is the case for the value "IETF", which
3406   also happens to be the default).  Other values, such as
3407   "independent", suppress this part of the text.
3408
3409
3410
3411
3412
3413
3414
3415Reschke                                                        [Page 61]
3416
3417Documentation             RFC2629 through XSLT             February 2015
3418
3419
3420D.1.1.  Current Values: '*trust200902'
3421
3422   The name for these values refers to the "TLP" ("IETF TRUST Legal
3423   Provisions Relating to IETF Documents"), on effect February 15, 2009
3424   (see <http://trustee.ietf.org/license-info/archive/
3425   IETF-Trust-License-Policy-20090215.pdf>).  Updates to this document
3426   were published on September 12, 2009 (TLP 3.0, <http://
3427   trustee.ietf.org/license-info/archive/
3428   IETF-Trust-License-Policy-20090912.pdf>) and on December 28, 2009
3429   (TLP 4.0, <http://trustee.ietf.org/license-info/archive/
3430   IETF-Trust-License-Policy-20091228.pdf>), modifying the license for
3431   code components.  The actual text is located in Section 6 ("Text To
3432   Be Included in IETF Documents") of these documents.
3433
3434   The tools will automatically produce the "right" text depending on
3435   the document's date information (see above):
3436
3437   +----+----------------------------------------------------+---------+
3438   | TL | URI                                                | startin |
3439   | P  |                                                    | g with  |
3440   |    |                                                    | publica |
3441   |    |                                                    | tion    |
3442   |    |                                                    | date    |
3443   +----+----------------------------------------------------+---------+
3444   | 3. | <http://trustee.ietf.org/license-info/archive/IETF | 2009-11 |
3445   | 0  | -Trust-License-Policy-20090912.pdf>                | -01     |
3446   |    |                                                    |         |
3447   | 4. | <http://trustee.ietf.org/license-info/archive/IETF | 2010-04 |
3448   | 0  | -Trust-License-Policy-20091228.pdf>                | -01     |
3449   +----+----------------------------------------------------+---------+
3450
3451D.1.1.1.  trust200902
3452
3453   This should be the default, unless one of the more specific
3454   '*trust200902' values is a better fit.  It produces the text in
3455   Sections 6.a and 6.b of the TLP.
3456
3457D.1.1.2.  noModificationTrust200902
3458
3459   This produces the additional text from Section 6.c.i of the TLP:
3460
3461      This document may not be modified, and derivative works of it may
3462      not be created, except to format it for publication as an RFC or
3463      to translate it into languages other than English.
3464
3465      Note: this clause is incompatible with RFCs to be published on the
3466      Standards Track.
3467
3468
3469
3470
3471Reschke                                                        [Page 62]
3472
3473Documentation             RFC2629 through XSLT             February 2015
3474
3475
3476D.1.1.3.  noDerivativesTrust200902
3477
3478   This produces the additional text from Section 6.c.ii of the TLP:
3479
3480      This document may not be modified, and derivative works of it may
3481      not be created, and it may not be published except as an Internet-
3482      Draft.
3483
3484      Note: this clause is incompatible with RFCs.
3485
3486D.1.1.4.  pre5378Trust200902
3487
3488   This produces the additional text from Section 6.c.iii of the TLP,
3489   frequently called the "pre-5378 escape clause":
3490
3491      This document may contain material from IETF Documents or IETF
3492      Contributions published or made publicly available before November
3493      10, 2008.  The person(s) controlling the copyright in some of this
3494      material may not have granted the IETF Trust the right to allow
3495      modifications of such material outside the IETF Standards Process.
3496      Without obtaining an adequate license from the person(s)
3497      controlling the copyright in such materials, this document may not
3498      be modified outside the IETF Standards Process, and derivative
3499      works of it may not be created outside the IETF Standards Process,
3500      except to format it for publication as an RFC or to translate it
3501      into languages other than English.
3502
3503   See Section 4 of
3504   <http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf> for further
3505   information about when to use this value.
3506
3507      Note: this text appears under "Copyright Notice", unless the
3508      document was published before November 2009, in which case it
3509      appears under "Status Of This Memo".
3510
3511D.1.2.  Historic Values
3512
3513D.1.2.1.  Historic Values: '*trust200811'
3514
3515   The attribute values "trust200811", "noModificationTrust200811" and
3516   "noDerivativesTrust200811" are similar to their "trust200902"
3517   counterparts, except that they use text specified in <http://
3518   trustee.ietf.org/license-info/archive/
3519   IETF-Trust-License-Policy_11-10-08.pdf>.
3520
3521
3522
3523
3524
3525
3526
3527Reschke                                                        [Page 63]
3528
3529Documentation             RFC2629 through XSLT             February 2015
3530
3531
3532D.1.2.2.  Historic Values: '*3978'
3533
3534   The attribute values "full3978", "noModification3978" and
3535   "noDerivatives3978" are similar to their counterparts above, except
3536   that they use text specified in RFC 3978 (March 2005).
3537
3538D.1.2.3.  Historic Values: '*3667'
3539
3540   The attribute values "full3667", "noModification3667" and
3541   "noDerivatives3667" are similar to their counterparts above, except
3542   that they use text specified in RFC 3667 (February 2004).
3543
3544D.1.2.4.  Historic Values: '*2026'
3545
3546   The attribute values "full2026" and "noDerivativeWorks2026" are
3547   similar to their counterparts above, except that they use text
3548   specified in RFC 2026 (October 1996).
3549
3550   The special value "none" was also used back then, and denied the IETF
3551   any rights beyond publication as Internet Draft.
3552
3553D.2.  The /rfc/@category Attribute
3554
3555   For RFCs, the "category" determines the "maturity level" (see Section
3556   4 of [RFC2026]).  The allowed values are "std" for "Standards Track",
3557   "bcp" for "BCP", "info" for "Informational", "exp" for
3558   "Experimental", and "historic" for - surprise - "Historic".
3559
3560   For Internet Drafts, the category attribute is not needed, but _will_
3561   appear on the front page ("Intended Status").  Supplying this
3562   information can be useful, because reviewers may want to know.
3563
3564      Note: the Standards Track consists of "Proposed Standard", "Draft
3565      Standards", and "Internet Standard".  These do not appear in the
3566      boilerplate, thus the category attribute doesn't handle them.
3567      However, this information can be useful for validity checkers, and
3568      thus "rfc2629.xslt" supports an extension attribute for that
3569      purpose (see Section 11.26 for details).
3570
3571D.3.  The /rfc/@submissionType Attribute
3572
3573   The RFC Editor publishes documents from different "document streams",
3574   of which the "IETF stream" of course is the most prominent one.
3575   Other streams are the "independent stream" (used for things like
3576   administrative information or April 1st RFCs), the "IAB stream"
3577   (Internet Architecture Board) and the "IRTF stream" (Internet
3578   Research Task Force).
3579
3580
3581
3582
3583Reschke                                                        [Page 64]
3584
3585Documentation             RFC2629 through XSLT             February 2015
3586
3587
3588   Not surprisingly, the values for the attribute are "IETF" (the
3589   default value), "independent", "IAB", and "IRTF".
3590
3591   Historically, this did not affect the final appearance of RFCs,
3592   except for subtle differences in Copyright notices.  Nowadays (as of
3593   [RFC5741]), the stream name appears in the first line of the front
3594   page, and it also affects the text in the "Status Of This Memo"
3595   section.
3596
3597   For current documents, setting "submissionType" attribute will have
3598   the following effect:
3599
3600   o  For RFCs, the stream name appears in the upper left corner of the
3601      first page (in Internet Drafts, this is either "Network Working
3602      Group", or the value of the "<workgroup>" element).
3603
3604   o  For RFCs, if affects the whole "Status Of This Memo" section (see
3605      Section 3.2.2 of [RFC5741]).
3606
3607   o  For all RFCs and Internet Drafts, it determines whether the
3608      "Copyright Notice" mentions the Copyright on Code Components (see
3609      TLP, Section "Text To Be Included in IETF Documents").
3610
3611D.4.  The /rfc/@consensus Attribute
3612
3613   For some of the publication streams (see Appendix D.3), the "Status
3614   Of This Memo" section depends on whether there was a consensus to
3615   publish (again, see Section 3.2.2 of [RFC5741]).
3616
3617   The "consensus" attribute ("yes"/"no", defaulting to "yes") can be
3618   used to supply this information.  The effect for the various streams
3619   is:
3620
3621   o  "independent" and "IAB": none.
3622
3623   o  "IETF": mention that there was an IETF consensus.
3624
3625   o  "IRTF": mention that there was a research group consensus (where
3626      the name of the research group is extracted from the "<workgroup>"
3627      element).
3628
3629D.5.  The /rfc/@number Attribute
3630
3631   For RFCs, this attribute supplies the RFC number.
3632
3633
3634
3635
3636
3637
3638
3639Reschke                                                        [Page 65]
3640
3641Documentation             RFC2629 through XSLT             February 2015
3642
3643
3644D.6.  The /rfc/@docName Attribute
3645
3646   For Internet Drafts, this specifies the draft name (which appears
3647   below the title).  The file extension is _not_ part of the draft, so
3648   in general it should end with the current draft number ("-", plus two
3649   digits).
3650
3651      Note: "Idnits" (<http://tools.ietf.org/tools/idnits/>) checks the
3652      in-document draft name for consistency with the filename of the
3653      submitted document.
3654
3655D.7.  The /rfc/@obsoletes Attribute
3656
3657   The RFC Editor maintains a database
3658   (<http://www.rfc-editor.org/rfc.html>) of all RFCs, including
3659   information about which one obsoletes which.  Upon publication of an
3660   RFC, this database is updated from the data on the front page.
3661
3662   This attribute takes a list of comma-separated RFC _numbers_.  Do
3663   _not_ put the string "RFC" here.
3664
3665D.8.  The /rfc/@updates Attribute
3666
3667   This is like "obsoletes", but for the "updates" relation.
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695Reschke                                                        [Page 66]
3696
3697Documentation             RFC2629 through XSLT             February 2015
3698
3699
3700Appendix E.  License
3701
3702   Copyright (c) 2006-2014, Julian Reschke
3703   (julian.reschke@greenbytes.de)
3704
3705   All rights reserved.
3706
3707   Redistribution and use in source and binary forms, with or without
3708   modification, are permitted provided that the following conditions
3709   are met:
3710
3711   o  Redistributions of source code must retain the above copyright
3712      notice, this list of conditions and the following disclaimer.
3713
3714   o  Redistributions in binary form must reproduce the above copyright
3715      notice, this list of conditions and the following disclaimer in
3716      the documentation and/or other materials provided with the
3717      distribution.
3718
3719   o  Neither the name of Julian Reschke nor the names of its
3720      contributors may be used to endorse or promote products derived
3721      from this software without specific prior written permission.
3722
3723   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
3724   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3725   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
3726   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
3727   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
3728   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
3729   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3730   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3731   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3732   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3733   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
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             February 2015
3754
3755
3756Index
3757
3758   A
3759      abnf-char-sequence Extension Element  22, 42
3760      allow-markup-in-artwork PI pseudo-attribute  9
3761      alternate HTML LINK element  16
3762      anchor-alias Extension Element  22, 42
3763      Anchors
3764         rfc.abstract  13
3765         rfc.authors  13
3766         rfc.copyright  13
3767         rfc.copyrightnotice  13
3768         rfc.figure.n  13
3769         rfc.figure.u.n  13
3770         rfc.index  13
3771         rfc.ipr  13
3772         rfc.iref.n  13
3773         rfc.note.n  13
3774         rfc.references  13
3775         rfc.section.n  13
3776         rfc.section.n.p.m  13
3777         rfc.status  13
3778         rfc.toc  13
3779         rfc.xref.name.n  13
3780      AntennaHouse XSL Formatter  20
3781      Apache FOP  20
3782      appendix HTML LINK element  16
3783      aside V3 Extension Element  30, 42
3784      assign-section-number Extension Element  42
3785      author HTML LINK element  16
3786      authors-section PI pseudo-attribute  9
3787
3788   B
3789      b V3 Extension Element  30, 42
3790      background PI pseudo-attribute  7
3791      bb Extension Element  23, 42
3792      bc Extension Element  23, 42
3793      bcp14 Extension Element  22, 42
3794      bcp14 V3 Extension Element  30, 42
3795      blockquote Extension Element  23, 42
3796      blockquote V3 Extension Element  30, 42
3797      boilerplate Extension Element  23, 42
3798      bt Extension Element  24, 42
3799
3800   C
3801      chapter HTML LINK element  16
3802      CHM format  19
3803      comments PI pseudo-attribute  7
3804
3805
3806
3807Reschke                                                        [Page 68]
3808
3809Documentation             RFC2629 through XSLT             February 2015
3810
3811
3812      compact PI pseudo-attribute  7
3813      contents HTML LINK element  16
3814      copyright HTML LINK element  16
3815      Creator DCMI property  17
3816
3817   D
3818      Date.Issued DCMI property  17
3819      DCMI properties
3820         Creator  17
3821         Date.Issued  17
3822         Description.Abstract  17
3823         Identifier  17
3824         isPartOf  17
3825         Relation.Replaces  17
3826      dd V3 Extension Element  30, 42
3827      Description.Abstract DCMI property  17
3828      dfn Extension Element  24, 42
3829      displayreference V3 Extension Element  30, 42
3830      dl V3 Extension Element  30, 42
3831      dt V3 Extension Element  30, 42
3832      duplex PI pseudo-attribute  9
3833
3834   E
3835      editing PI pseudo-attribute  7
3836      em V3 Extension Element  30, 42
3837      Extension Elements
3838         abnf-char-sequence  22, 42
3839         anchor-alias  22, 42
3840         assign-section-number  42
3841         bb  23, 42
3842         bc  23, 42
3843         bcp14  22, 42
3844         blockquote  23, 42
3845         boilerplate  23, 42
3846         bt  24, 42
3847         dfn  24, 42
3848         feedback  24, 42
3849         h  24, 42
3850         highlight  24, 42
3851         include-author  42
3852         length-of  24, 42
3853         link  25, 42
3854         lt  25, 42
3855         note  26, 42
3856         parse-xml  26, 42
3857         prose  26, 42
3858         q  26, 42
3859         rdf:Description  42
3860
3861
3862
3863Reschke                                                        [Page 69]
3864
3865Documentation             RFC2629 through XSLT             February 2015
3866
3867
3868         ref  26, 42
3869         source  27, 42
3870         span  42
3871         sup  27, 42
3872         x  42
3873
3874   F
3875      feedback Extension Element  24, 42
3876      Firefox
3877         1.*/2.*  15
3878         3.*  14
3879      footer PI pseudo-attribute  7
3880
3881   G
3882      generator HTML META element  17
3883      Google Chrome  15
3884      Grammar  42
3885
3886   H
3887      h Extension Element  24, 42
3888      header PI pseudo-attribute  7
3889      highlight Extension Element  24, 42
3890      HTML compliance  16
3891      HTML LINK elements
3892         alternate  16
3893         appendix  16
3894         author  16
3895         chapter  16
3896         contents  16
3897         copyright  16
3898         index  16
3899      HTML META elements
3900         generator  17
3901         keywords  17
3902
3903   I
3904      i V3 Extension Element  30, 42
3905      Identifier DCMI property  17
3906      include PI pseudo-attribute  8
3907      include-author Extension Element  42
3908      include-index PI pseudo-attribute  9
3909      include-references-in-index PI pseudo-attribute  9
3910      index HTML LINK element  16
3911      inline PI pseudo-attribute  7
3912      insert-metadata PI pseudo-attribute  9
3913      Internet Explorer 5.5  14
3914      Internet Explorer 6  14
3915      Internet Explorer 7  14
3916
3917
3918
3919Reschke                                                        [Page 70]
3920
3921Documentation             RFC2629 through XSLT             February 2015
3922
3923
3924      Internet Explorer 8  14
3925      Internet Explorer 9  14
3926      iprnotified PI pseudo-attribute  7
3927      isPartOf DCMI property  17
3928
3929   J
3930      justification PI pseudo-attribute  9
3931
3932   K
3933      keywords HTML META element  17
3934
3935   L
3936      length-of Extension Element  24, 42
3937      li V3 Extension Element  31, 42
3938      link Extension Element  25, 42
3939      linkmailto PI pseudo-attribute  7
3940      lt Extension Element  25, 42
3941
3942   M
3943      Microsoft Help  19
3944      Mozilla  14-15
3945      MSXML3  14
3946      MSXML4  14
3947
3948   N
3949      name V3 Extension Element  31, 42
3950      needLines PI pseudo-attribute  8
3951      NoScript  14
3952      note Extension Element  26, 42
3953
3954   O
3955      ol V3 Extension Element  42
3956      Opera  15
3957
3958   P
3959      Parameters
3960         xml2rfc-background  7
3961         xml2rfc-comments  7
3962         xml2rfc-compact  7
3963         xml2rfc-editing  7
3964         xml2rfc-ext-allow-markup-in-artwork  9
3965         xml2rfc-ext-authors-section  9
3966         xml2rfc-ext-duplex  9
3967         xml2rfc-ext-include-index  9
3968         xml2rfc-ext-include-references-in-index  9
3969         xml2rfc-ext-insert-metadata  9
3970         xml2rfc-ext-justification  9
3971         xml2rfc-ext-parse-xml-in-artwork  9
3972
3973
3974
3975Reschke                                                        [Page 71]
3976
3977Documentation             RFC2629 through XSLT             February 2015
3978
3979
3980         xml2rfc-ext-sec-no-trailing-dots  9
3981         xml2rfc-ext-support-rfc2731  9
3982         xml2rfc-footer  7
3983         xml2rfc-header  7
3984         xml2rfc-inline  7
3985         xml2rfc-iprnotified  7
3986         xml2rfc-linkmailto  7
3987         xml2rfc-private  7
3988         xml2rfc-refparent  7
3989         xml2rfc-rfcedstyle  7
3990         xml2rfc-sortrefs  7
3991         xml2rfc-symrefs  7
3992         xml2rfc-toc  7
3993         xml2rfc-tocdepth  7
3994         xml2rfc-topblock  7
3995      parse-xml Extension Element  26, 42
3996      parse-xml-in-artwork PI pseudo-attribute  9
3997      postalLine V3 Extension Element  31, 42
3998      private PI pseudo-attribute  7, 61
3999      Processing Instruction pseudo attributes
4000         allow-markup-in-artwork  9
4001         authors-section  9
4002         background  7
4003         comments  7
4004         compact  7
4005         duplex  9
4006         editing  7
4007         footer  7
4008         header  7
4009         ijustification  9
4010         include  8
4011         include-index  9
4012         include-references-in-index  9
4013         inline  7
4014         insert-metadata  9
4015         iprnotified  7
4016         linkmailto  7
4017         needLines  8
4018         parse-xml-in-artwork  9
4019         private  7, 61
4020         refparent  7
4021         rfcedstyle  7
4022         sec-no-trailing-dots  9
4023         slides  8
4024         sortrefs  7
4025         strict  8
4026         subcompact  8
4027         support-rfc2731  9
4028
4029
4030
4031Reschke                                                        [Page 72]
4032
4033Documentation             RFC2629 through XSLT             February 2015
4034
4035
4036         symrefs  7
4037         toc  7
4038         tocdepth  7
4039         tocindent  8
4040         tocompact  8
4041         topblock  7
4042      prose Extension Element  26, 42
4043
4044   Q
4045      q Extension Element  26, 42
4046
4047   R
4048      rdf:Description Extension Element  42
4049      ref Extension Element  26, 42
4050      refcontent V3 Extension Element  31, 42
4051      refparent PI pseudo-attribute  7
4052      Relation.Replaces DCMI property  17
4053      RELAX NG Compact Schema  42
4054      rfc.abstract anchor  13
4055      rfc.authors anchor  13
4056      rfc.copyright anchor  13
4057      rfc.copyrightnotice anchor  13
4058      rfc.figure.n anchor  13
4059      rfc.figure.u.n anchor  13
4060      rfc.index anchor  13
4061      rfc.ipr anchor  13
4062      rfc.iref.n anchor  13
4063      rfc.note.n anchor  13
4064      rfc.references anchor  13
4065      rfc.references.n anchor  13
4066      rfc.section.n anchor  13
4067      rfc.section.n.p.m anchor  13
4068      rfc.status anchor  13
4069      rfc.toc anchor  13
4070      rfc.xref.name.n anchor  13
4071      rfcedstyle PI pseudo-attribute  7
4072
4073   S
4074      Safari  15
4075         3.*  15
4076      Saxon  14
4077      Schema  42
4078      sec-no-trailing-dots PI pseudo-attribute  9
4079      section V3 Extension Element  31
4080      slides PI pseudo-attribute  8
4081      sortrefs PI pseudo-attribute  7
4082      source Extension Element  27, 42
4083      span Extension Element  42
4084
4085
4086
4087Reschke                                                        [Page 73]
4088
4089Documentation             RFC2629 through XSLT             February 2015
4090
4091
4092      strict PI pseudo-attribute  8
4093      strong V3 Extension Element  31, 42
4094      sub V3 Extension Element  31, 42
4095      subcompact PI pseudo-attribute  8
4096      sup Extension Element  27, 42
4097      sup V3 Extension Element  31, 42
4098      support-rfc2731 PI pseudo-attribute  9
4099      symrefs PI pseudo-attribute  7
4100
4101   T
4102      toc PI pseudo-attribute  7
4103      tocdepth PI pseudo-attribute  7
4104      tocindent PI pseudo-attribute  8
4105      tocompact PI pseudo-attribute  8
4106      topblock PI pseudo-attribute  7
4107      tt V3 Extension Element  31, 42
4108
4109   V
4110      V3 Extension Elements
4111         aside  30, 42
4112         b  30, 42
4113         bcp14  30, 42
4114         blockquote  30, 42
4115         dd  30, 42
4116         displayreference  30, 42
4117         dl  30, 42
4118         dt  30, 42
4119         em  30, 42
4120         i  30, 42
4121         li  31, 42
4122         name  31, 42
4123         ol  42
4124         postalLine  31, 42
4125         refcontent  31, 42
4126         section  31
4127         strong  31, 42
4128         sub  31, 42
4129         sup  31, 42
4130         tt  31, 42
4131
4132   X
4133      x Extension Element  42
4134      Xalan  14
4135      xml-stylesheet PI  16
4136      xml2rfc-background parameter  7
4137      xml2rfc-comments parameter  7
4138      xml2rfc-editing parameter  7
4139      xml2rfc-ext-allow-markup-in-artwork parameter  9
4140
4141
4142
4143Reschke                                                        [Page 74]
4144
4145Documentation             RFC2629 through XSLT             February 2015
4146
4147
4148      xml2rfc-ext-authors-section parameter  9
4149      xml2rfc-ext-duplex  9
4150      xml2rfc-ext-include-index parameter  9
4151      xml2rfc-ext-include-references-in-index parameter  9
4152      xml2rfc-ext-insert-metadata parameter  9
4153      xml2rfc-ext-justification parameter  9
4154      xml2rfc-ext-parse-xml-in-artwork parameter  9
4155      xml2rfc-ext-sec-no-trailing-dots parameter  9
4156      xml2rfc-ext-support-rfc2731 parameter  9
4157      xml2rfc-footer parameter  7
4158      xml2rfc-header parameter  7
4159      xml2rfc-inline parameter  7
4160      xml2rfc-iprnotified parameter  7
4161      xml2rfc-linkmailto parameter  7
4162      xml2rfc-private parameter  7
4163      xml2rfc-refparent parameter  7
4164      xml2rfc-rfcedstyle parameter  7
4165      xml2rfc-sortrefs parameter  7
4166      xml2rfc-symrefs parameter  7
4167      xml2rfc-toc parameter  7
4168      xml2rfc-tocdepth parameter  7
4169      xml2rfc-topblock parameter  7
4170      xsltproc  14
4171         passing parameters  6
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199Reschke                                                        [Page 75]
4200
4201Documentation             RFC2629 through XSLT             February 2015
4202
4203
4204Author's Address
4205
4206   Julian F. Reschke
4207   greenbytes GmbH
4208   Hafenweg 16
4209   Muenster, NW  48155
4210   Germany
4211
4212   Email: julian.reschke@greenbytes.de
4213   URI:   http://greenbytes.de/tech/webdav/
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255Reschke                                                        [Page 76]
4256
Note: See TracBrowser for help on using the repository browser.