source: rfc2629xslt/rfc2629xslt.txt @ 2082

Last change on this file since 2082 was 2080, checked in by julian.reschke@…, 7 years ago

bump up document dates, update to latest version of rfc2629.xslt

  • Property svn:eol-style set to native
File size: 134.4 KB
Line 
1
2
3
4RFC2629 through XSLT                                          J. Reschke
5                                                              greenbytes
6                                                           November 2012
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  . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
23   5.  Supported XSLT engines . . . . . . . . . . . . . . . . . . . . 15
24     5.1.   Standalone Engines  . . . . . . . . . . . . . . . . . . . 15
25     5.2.   In-Browser Engines  . . . . . . . . . . . . . . . . . . . 15
26   6.  Transforming to HTML . . . . . . . . . . . . . . . . . . . . . 17
27     6.1.   HTML compliance . . . . . . . . . . . . . . . . . . . . . 17
28     6.2.   Standard HTML LINK elements . . . . . . . . . . . . . . . 17
29     6.3.   Standard HTML metadata  . . . . . . . . . . . . . . . . . 18
30     6.4.   Dublin Core (RFC2731) metadata  . . . . . . . . . . . . . 18
31     6.5.   Experimental hCard support  . . . . . . . . . . . . . . . 18
32   7.  Transforming to XHTML  . . . . . . . . . . . . . . . . . . . . 19
33   8.  Transforming to CHM (Microsoft Compiled Help)  . . . . . . . . 20
34   9.  Transforming to PDF  . . . . . . . . . . . . . . . . . . . . . 21
35     9.1.   Via XSL-FO  . . . . . . . . . . . . . . . . . . . . . . . 21
36       9.1.1.  Extension feature matrix . . . . . . . . . . . . . . . 21
37       9.1.2.  Example: producing output for Apache FOP . . . . . . . 22
38     9.2.   Via X(HTML) . . . . . . . . . . . . . . . . . . . . . . . 22
39   10. Transforming to ePub . . . . . . . . . . . . . . . . . . . . . 23
40   11. Generic Extensions . . . . . . . . . . . . . . . . . . . . . . 24
41     11.1.  <abnf-char-sequence> element  . . . . . . . . . . . . . . 24
42     11.2.  <anchor-alias> element  . . . . . . . . . . . . . . . . . 24
43     11.3.  <bcp14> element . . . . . . . . . . . . . . . . . . . . . 24
44     11.4.  <bb> element  . . . . . . . . . . . . . . . . . . . . . . 25
45     11.5.  <bc> element  . . . . . . . . . . . . . . . . . . . . . . 25
46     11.6.  <blockquote> element  . . . . . . . . . . . . . . . . . . 25
47     11.7.  <boilerplate> element . . . . . . . . . . . . . . . . . . 25
48     11.8.  <bt> element  . . . . . . . . . . . . . . . . . . . . . . 26
49     11.9.  <dfn> element . . . . . . . . . . . . . . . . . . . . . . 26
50     11.10. <feedback> element  . . . . . . . . . . . . . . . . . . . 26
51     11.11. <h> element . . . . . . . . . . . . . . . . . . . . . . . 26
52
53
54
55Reschke                                                         [Page 1]
56
57Documentation             RFC2629 through XSLT             November 2012
58
59
60     11.12. <highlight> element . . . . . . . . . . . . . . . . . . . 26
61     11.13. <length-of> element . . . . . . . . . . . . . . . . . . . 26
62     11.14. <link> element  . . . . . . . . . . . . . . . . . . . . . 27
63     11.15. <lt> element  . . . . . . . . . . . . . . . . . . . . . . 27
64     11.16. <note> element  . . . . . . . . . . . . . . . . . . . . . 27
65     11.17. <parse-xml> element . . . . . . . . . . . . . . . . . . . 27
66     11.18. <prose> element . . . . . . . . . . . . . . . . . . . . . 28
67     11.19. <q> element . . . . . . . . . . . . . . . . . . . . . . . 28
68     11.20. <ref> element . . . . . . . . . . . . . . . . . . . . . . 28
69     11.21. <source> element  . . . . . . . . . . . . . . . . . . . . 28
70     11.22. <sup> element . . . . . . . . . . . . . . . . . . . . . . 29
71     11.23. Extensions to Xml2rfc <artwork> element . . . . . . . . . 29
72     11.24. Extensions to Xml2rfc <iref> element  . . . . . . . . . . 29
73     11.25. Extensions to Xml2rfc <list> element  . . . . . . . . . . 29
74     11.26. Extensions to Xml2rfc <rfc> element . . . . . . . . . . . 30
75     11.27. Extensions to Xml2rfc <section> element . . . . . . . . . 30
76     11.28. Extensions to Xml2rfc <xref> element  . . . . . . . . . . 30
77   12. Utilities  . . . . . . . . . . . . . . . . . . . . . . . . . . 32
78     12.1.  Checking References . . . . . . . . . . . . . . . . . . . 32
79     12.2.  Generating Graphs from References . . . . . . . . . . . . 34
80     12.3.  Producing reference entries for books . . . . . . . . . . 34
81     12.4.  Down-converting to RFC2629bis DTD . . . . . . . . . . . . 35
82     12.5.  Extracting artwork  . . . . . . . . . . . . . . . . . . . 36
83     12.6.  GRRDL . . . . . . . . . . . . . . . . . . . . . . . . . . 36
84   13. Informative References . . . . . . . . . . . . . . . . . . . . 37
85   Appendix A.  RELAX NG Compact Schema . . . . . . . . . . . . . . . 39
86   Appendix B.  Implementation Notes  . . . . . . . . . . . . . . . . 49
87     B.1.   Recognized type attributes for <artwork> element  . . . . 49
88   Appendix C.  Examples  . . . . . . . . . . . . . . . . . . . . . . 50
89     C.1.   Using the 'Internal Subset' . . . . . . . . . . . . . . . 50
90     C.2.   Customization . . . . . . . . . . . . . . . . . . . . . . 50
91   Appendix D.  Producing the IETF 'Boilerplate'  . . . . . . . . . . 52
92     D.1.   The /rfc/@ipr Attribute . . . . . . . . . . . . . . . . . 52
93       D.1.1.  Current Values: '*trust200902' . . . . . . . . . . . . 53
94       D.1.2.  Historic Values  . . . . . . . . . . . . . . . . . . . 54
95     D.2.   The /rfc/@category Attribute  . . . . . . . . . . . . . . 55
96     D.3.   The /rfc/@submissionType Attribute  . . . . . . . . . . . 55
97     D.4.   The /rfc/@consensus Attribute . . . . . . . . . . . . . . 56
98     D.5.   The /rfc/@number Attribute  . . . . . . . . . . . . . . . 56
99     D.6.   The /rfc/@docName Attribute . . . . . . . . . . . . . . . 57
100     D.7.   The /rfc/@obsoletes Attribute . . . . . . . . . . . . . . 57
101     D.8.   The /rfc/@updates Attribute . . . . . . . . . . . . . . . 57
102   Appendix E.  License . . . . . . . . . . . . . . . . . . . . . . . 58
103   Appendix F.  Change Logs . . . . . . . . . . . . . . . . . . . . . 59
104     F.1.   Package . . . . . . . . . . . . . . . . . . . . . . . . . 59
105     F.2.   amazon-asin.xslt  . . . . . . . . . . . . . . . . . . . . 60
106     F.3.   check-references.xslt . . . . . . . . . . . . . . . . . . 60
107     F.4.   gen-reference-graph.xslt  . . . . . . . . . . . . . . . . 61
108
109
110
111Reschke                                                         [Page 2]
112
113Documentation             RFC2629 through XSLT             November 2012
114
115
116     F.5.   rfc2629.xslt  . . . . . . . . . . . . . . . . . . . . . . 61
117     F.6.   rfc2629toFO.xslt  . . . . . . . . . . . . . . . . . . . . 72
118     F.7.   xsl11toAn.xslt  . . . . . . . . . . . . . . . . . . . . . 74
119     F.8.   xsl11toFop.xslt . . . . . . . . . . . . . . . . . . . . . 74
120     F.9.   xsl11toXep.xslt . . . . . . . . . . . . . . . . . . . . . 74
121   Index  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
122   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 83
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167Reschke                                                         [Page 3]
168
169Documentation             RFC2629 through XSLT             November 2012
170
171
1721.  Introduction
173
174   This document describes a set of XSLT transformations that can be
175   used to transform RFC2629-compliant XML (see [RFC2629]) to various
176   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 12).
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             November 2012
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             November 2012
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             November 2012
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             November 2012
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                               |
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             November 2012
450
451
4523.3.  Extension PIs
453
454   +------+-----------------+-----------------------+------+-----------+
455   | PI   | PI              | XSLT parameter name   | defa | descripti |
456   | targ | pseudo-attribut |                       | ult  | on        |
457   | et   | e               |                       |      |           |
458   +------+-----------------+-----------------------+------+-----------+
459   | rfc- | allow-markup-in | xml2rfc-allow-markup- | "no" | Enables   |
460   | ext  | -artwork        | in-artwork            |      | support   |
461   |      |                 |                       |      | for       |
462   |      |                 |                       |      | specific  |
463   |      |                 |                       |      | elements  |
464   |      |                 |                       |      | inside    |
465   |      |                 |                       |      | abstract  |
466   |      |                 |                       |      | elements  |
467   |      |                 |                       |      | (using    |
468   |      |                 |                       |      | this      |
469   |      |                 |                       |      | extension |
470   |      |                 |                       |      | makes the |
471   |      |                 |                       |      | document  |
472   |      |                 |                       |      | incompati |
473   |      |                 |                       |      | ble to    |
474   |      |                 |                       |      | the       |
475   |      |                 |                       |      | RFC2629bi |
476   |      |                 |                       |      | s DTD;    |
477   |      |                 |                       |      | see       |
478   |      |                 |                       |      | descripti |
479   |      |                 |                       |      | on of     |
480   |      |                 |                       |      | conversio |
481   |      |                 |                       |      | n XSLT in |
482   |      |                 |                       |      | Section 1 |
483   |      |                 |                       |      | 2.4).     |
484   |      |                 |                       |      |           |
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503Reschke                                                         [Page 9]
504
505Documentation             RFC2629 through XSLT             November 2012
506
507
508   | rfc- | authors-section | xml2rfc-ext-authors-s |      | When      |
509   | ext  |                 | ection                |      | "end",    |
510   |      |                 |                       |      | place the |
511   |      |                 |                       |      | authors   |
512   |      |                 |                       |      | section   |
513   |      |                 |                       |      | at the    |
514   |      |                 |                       |      | end (just |
515   |      |                 |                       |      | before    |
516   |      |                 |                       |      | the       |
517   |      |                 |                       |      | copyright |
518   |      |                 |                       |      | statement |
519   |      |                 |                       |      | s). This  |
520   |      |                 |                       |      | seems to  |
521   |      |                 |                       |      | be the    |
522   |      |                 |                       |      | preferred |
523   |      |                 |                       |      | order in  |
524   |      |                 |                       |      | the       |
525   |      |                 |                       |      | newest    |
526   |      |                 |                       |      | RFCs.     |
527   |      |                 |                       |      |           |
528   | rfc- | duplex          | xml2rfc-ext-duplex    | no   | When set  |
529   | ext  |                 |                       |      | to "yes", |
530   |      |                 |                       |      | format    |
531   |      |                 |                       |      | the PDF   |
532   |      |                 |                       |      | output    |
533   |      |                 |                       |      | for       |
534   |      |                 |                       |      | doublesid |
535   |      |                 |                       |      | ed        |
536   |      |                 |                       |      | printing. |
537   |      |                 |                       |      |           |
538   | rfc- | include-index   | xml2rfc-ext-include-i | "yes | When set  |
539   | ext  |                 | ndex                  | "    | to "no",  |
540   |      |                 |                       |      | no index  |
541   |      |                 |                       |      | will be   |
542   |      |                 |                       |      | generated |
543   |      |                 |                       |      | .         |
544   |      |                 |                       |      |           |
545   | rfc- | include-referen | xml2rfc-ext-include-r |      | When set  |
546   | ext  | ces-in-index    | eferences-in-index    |      | to "yes", |
547   |      |                 |                       |      | index     |
548   |      |                 |                       |      | entries   |
549   |      |                 |                       |      | are       |
550   |      |                 |                       |      | generated |
551   |      |                 |                       |      | for all   |
552   |      |                 |                       |      | reference |
553   |      |                 |                       |      | s.        |
554   |      |                 |                       |      |           |
555
556
557
558
559Reschke                                                        [Page 10]
560
561Documentation             RFC2629 through XSLT             November 2012
562
563
564   | rfc- | justification   | xml2rfc-ext-justifica | "nev | "never":  |
565   | ext  |                 | tion                  | er"  | never     |
566   |      |                 |                       |      | emit      |
567   |      |                 |                       |      | justified |
568   |      |                 |                       |      | text,     |
569   |      |                 |                       |      | "always": |
570   |      |                 |                       |      | always    |
571   |      |                 |                       |      | emit      |
572   |      |                 |                       |      | justified |
573   |      |                 |                       |      | text,     |
574   |      |                 |                       |      | "print":  |
575   |      |                 |                       |      | only emit |
576   |      |                 |                       |      | justified |
577   |      |                 |                       |      | text for  |
578   |      |                 |                       |      | print     |
579   |      |                 |                       |      | media.    |
580   |      |                 |                       |      |           |
581   | rfc- | parse-xml-in-ar | xml2rfc-parse-xml-in- | "no" | May be    |
582   | ext  | twork           | artwork               |      | used to   |
583   |      |                 |                       |      | enable    |
584   |      |                 |                       |      | parsing   |
585   |      |                 |                       |      | of XML    |
586   |      |                 |                       |      | content   |
587   |      |                 |                       |      | in        |
588   |      |                 |                       |      | figures   |
589   |      |                 |                       |      | (MSXML    |
590   |      |                 |                       |      | only).    |
591   |      |                 |                       |      |           |
592   | rfc- | support-rfc2731 | xml2rfc-ext-support-r | "yes | Decides   |
593   | ext  |                 | fc2731                | "    | whether   |
594   |      |                 |                       |      | the HTML  |
595   |      |                 |                       |      | transform |
596   |      |                 |                       |      | ation     |
597   |      |                 |                       |      | should    |
598   |      |                 |                       |      | generate  |
599   |      |                 |                       |      | META tags |
600   |      |                 |                       |      | according |
601   |      |                 |                       |      | Section 6 |
602   |      |                 |                       |      | .4.       |
603   |      |                 |                       |      |           |
604
605
606
607
608
609
610
611
612
613
614
615Reschke                                                        [Page 11]
616
617Documentation             RFC2629 through XSLT             November 2012
618
619
620   | rfc- | sec-no-trailing | xml2rfc-ext-sec-no-tr |      | When set  |
621   | ext  | -dots           | ailing-dots           |      | to "yes", |
622   |      |                 |                       |      | add       |
623   |      |                 |                       |      | trailing  |
624   |      |                 |                       |      | dots to   |
625   |      |                 |                       |      | section   |
626   |      |                 |                       |      | numbers.  |
627   |      |                 |                       |      | This      |
628   |      |                 |                       |      | seems to  |
629   |      |                 |                       |      | be the    |
630   |      |                 |                       |      | preferred |
631   |      |                 |                       |      | format in |
632   |      |                 |                       |      | the       |
633   |      |                 |                       |      | newest    |
634   |      |                 |                       |      | RFCs.     |
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             November 2012
674
675
6764.  Anchors
677
678   The transformation automatically generates anchors that are supposed
679   to be stable and predictable and that can be used to identify
680   specific parts of the document.  Anchors are generated both in HTML
681   and XSL-FO content (but the latter will only be used for PDF output
682   when the XSL-FO engine supports producing PDF anchors).
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727Reschke                                                        [Page 13]
728
729Documentation             RFC2629 through XSLT             November 2012
730
731
732                 The following anchors get auto-generated:
733
734     +-----------------------+---------------------------------------+
735     | Anchor name           | Description                           |
736     +-----------------------+---------------------------------------+
737     | rfc.abstract          | Abstract                              |
738     |                       |                                       |
739     | rfc.authors           | Authors section                       |
740     |                       |                                       |
741     | rfc.copyright         | Copyright section                     |
742     |                       |                                       |
743     | rfc.copyrightnotice   | Copyright notice                      |
744     |                       |                                       |
745     | rfc.figure._n_        | Figures (titled)                      |
746     |                       |                                       |
747     | rfc.figure.u._n_      | Figures (untitled)                    |
748     |                       |                                       |
749     | rfc.index             | Index                                 |
750     |                       |                                       |
751     | rfc.ipr               | Intellectual Property                 |
752     |                       |                                       |
753     | rfc.iref._n_          | Internal references                   |
754     |                       |                                       |
755     | rfc.note._n_          | Notes (from front section)            |
756     |                       |                                       |
757     | rfc.references        | References                            |
758     |                       |                                       |
759     | rfc.references._n_    | Additional references                 |
760     |                       |                                       |
761     | rfc.section._n_       | Section _n_                           |
762     |                       |                                       |
763     | rfc.section._n_.p._m_ | Section _n_, paragraph _m_            |
764     |                       |                                       |
765     | rfc.status            | Status of memo                        |
766     |                       |                                       |
767     | rfc.table._n_         | Tables (titled)                       |
768     |                       |                                       |
769     | rfc.table.u._n_       | Tables (untitled)                     |
770     |                       |                                       |
771     | rfc.toc               | Table of contents                     |
772     |                       |                                       |
773     | rfc.xref._name_._n_   | References to reference _n_ to _name_ |
774     +-----------------------+---------------------------------------+
775
776
777
778
779
780
781
782
783Reschke                                                        [Page 14]
784
785Documentation             RFC2629 through XSLT             November 2012
786
787
7885.  Supported XSLT engines
789
790   The transformation requires a non-standard extension function (see
791   exsl:node-set [1]) which is however widely available.  XSLT
792   processors that do not support this extension (or a functional
793   equivalent, such as msxsl:node-set) currently are not supported.
794
795   Input documents do not always specify the date completely.  In this
796   case, the transformation attempts to let the XSLT engine to compute
797   the system date, using either scripting in Microsoft's XSLT engine,
798   or the exsl:date-time [2] extension function.
799
8005.1.  Standalone Engines
801
802   The following XSLT engines are believed to work well:
803
804   o  Windows: MSXML3 and MSXML4 (<http://msdn.microsoft.com/xml>;
805      command line processor "msxsl" is available from Microsoft
806      Download Center [3])
807
808   o  Java: Saxon (<http://saxon.sourceforge.net/>)
809
810   o  Java: Xalan (<http://xml.apache.org/xalan-j/>)
811
812   o  C/C++: xsltproc (libxslt) (<http://xmlsoft.org/XSLT/>, make sure
813      that you have a current version)
814
8155.2.  In-Browser Engines
816
817   The following browsers seem to work fine:
818
819   o  Internet Explorer 5.5 (Windows version, if MSXML3 is installed)
820
821   o  Internet Explorer 6 and newer
822
823   o  Firefox 3.0 and newer
824
825
826      *  Be aware that XSLT execution can be suppressed using
827         NoScript [4]
828
829      *  Firefox does not load external DTDs nor external entities, see
830         Mozilla Bug 22942 [5], thus entities like &nbsp; need to be
831         declared in the internal subset (Appendix C.1)
832
833      *  There seems to be a new problem in Firefox 4 where it
834         occasionally does the initial rendering with the wrong width
835         (people who can reproduce this problem please comment on
836
837
838
839Reschke                                                        [Page 15]
840
841Documentation             RFC2629 through XSLT             November 2012
842
843
844         <https://bugzilla.mozilla.org/show_bug.cgi?id=640390>.
845
846      *  Date computation is available in Firefox starting with Firefox
847         6 (see <https://bugzilla.mozilla.org/show_bug.cgi?id=603159>)
848
849   o  Safari 3 (starting with version 3.0.4)
850
851
852      *  Date computation not available (see
853         <https://bugs.webkit.org/show_bug.cgi?id=4079>)
854
855   o  Google Chrome
856
857
858      *  Date computation not available (see
859         <https://bugs.webkit.org/show_bug.cgi?id=4079>)
860
861   o  Opera (starting with version 10)
862
863
864      *  Date computation not available
865
866   The following browsers are known not to work properly:
867
868   o  Firefox 1.*/2.*: (missing extension function - see change request
869      at Mozilla BugZilla 193678 [6])
870
871   o  Opera 9.21: execution fails, potentially to a somewhat complex
872      XPath expression (reported to Opera as bug 245725).
873
874   o  Opera 9.5 and 9.6: transformation appears to work, but CSS isn't
875      getting applied (reported to Opera as bug 337388 on 2008-06-12).
876
877   o  Safari 2.* supports client-side XSLT as of MacOS X 10.4, but
878      misses required extension functions.  A problem with stylesheets
879      producing non-ASCII output (such as NBSP characters) has been
880      fixed as of OSX 10.4.4.  Both problems have been reported through
881      Apple's bug tracking system, see <http://drakken.dbc.mtview.ca.us/
882      pipermail/xml2rfc/2005-May/002073.html> and
883      <http://bugs.webkit.org/show_bug.cgi?id=4079>.
884
885
886
887
888
889
890
891
892
893
894
895Reschke                                                        [Page 16]
896
897Documentation             RFC2629 through XSLT             November 2012
898
899
9006.  Transforming to HTML
901
902   Transformation to HTML can be done inside the browser if it supports
903   XSLT.  To enable this, add the following processing instruction to
904   the start of the source file:
905
906     <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
907
908   (and ensure that "rfc2629.xslt" is present).
909
9106.1.  HTML compliance
911
912   The transformation result is supposed to conform to the HTML 4.01
913   strict DTD [HTML].  This can be checked using the W3C's online
914   validator at <http://validator.w3.org>.
915
9166.2.  Standard HTML LINK elements
917
918   LINK elements exist since HTML 2.0.  They can be used to embed
919   content-independant links inside the document.  Unfortunately, only
920   few user agents support this element.  Firefox users may want to
921   check the Link Widgets [7] extension.
922
923                 The following LINK elements are produced:
924
925   +-----------+-------------------------------------------------------+
926   | LINK type | description                                           |
927   +-----------+-------------------------------------------------------+
928   | alternate | for RFCs, a link to the authorative ASCII version on  |
929   |           | the IETF web site                                     |
930   |           |                                                       |
931   | appendic  | pointer to all top-level appendics                    |
932   |           |                                                       |
933   | author    | pointer to "authors" section                          |
934   |           |                                                       |
935   | chapter   | pointer to all top-level sections                     |
936   |           |                                                       |
937   | contents  | pointer to table of contents                          |
938   |           |                                                       |
939   | copyright | pointer to copyright statement                        |
940   |           |                                                       |
941   | index     | pointer to index                                      |
942   +-----------+-------------------------------------------------------+
943
944   The figure below shows how Mozilla Firefox 1.0 displays the Site
945   Navigation Bar for rfc2396.xml.
946
947
948
949
950
951Reschke                                                        [Page 17]
952
953Documentation             RFC2629 through XSLT             November 2012
954
955
9566.3.  Standard HTML metadata
957
958          The following standard HTML META elements are produced:
959
960      +-----------+-------------------------------------------------+
961      | META name | description                                     |
962      +-----------+-------------------------------------------------+
963      | generator | from XSLT engine version and stylesheet version |
964      |           |                                                 |
965      | keywords  | from keyword elements in front section          |
966      +-----------+-------------------------------------------------+
967
9686.4.  Dublin Core (RFC2731) metadata
969
970   Unless turned off using the "rfc-ext support-rfc2731" processing
971   instruction, the transformation will generate metadata according to
972   [RFC2731] and [DC-HTML].
973
974                The following DCMI properties are produced:
975
976   +-------------------------+-----------------------------------------+
977   | META name               | description                             |
978   +-------------------------+-----------------------------------------+
979   | DC.Creator              | from author information in front        |
980   |                         | section                                 |
981   |                         |                                         |
982   | DC.Date.Issued          | from date information in front section  |
983   |                         |                                         |
984   | DC.Description.Abstract | from abstract                           |
985   |                         |                                         |
986   | DC.Identifier           | document URN [RFC2648] from "docName"   |
987   |                         | attribute                               |
988   |                         |                                         |
989   | DC.isPartOf             | RFC ISSN (for RFCs)                     |
990   |                         |                                         |
991   | DC.Relation.Replaces    | from "obsoletes" attribute              |
992   +-------------------------+-----------------------------------------+
993
9946.5.  Experimental hCard support
995
996   The generated author information is formatted in hCard [8] format.
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007Reschke                                                        [Page 18]
1008
1009Documentation             RFC2629 through XSLT             November 2012
1010
1011
10127.  Transforming to XHTML
1013
1014   Transforming to XHTML requires slightly different XSLT output options
1015   and is implemented by the derived transformation script
1016   "rfc2629toXHTML.xslt".
1017
1018      Note: Microsoft Internet Explorer does _not_ support XHTML.
1019      Therefore it usually makes more sense to generate plain old HTML.
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063Reschke                                                        [Page 19]
1064
1065Documentation             RFC2629 through XSLT             November 2012
1066
1067
10688.  Transforming to CHM (Microsoft Compiled Help)
1069
1070   To generate a CHM file using Microsoft's HTML Help Compiler (hhc),
1071   three files are required in addition to the HTML file.
1072
1073   1.  hhc - table of contents file (HTML)
1074
1075   2.  hhk - index file (HTML)
1076
1077   3.  hhp - project file (plain text)
1078
1079   The three files are generated with three specific transformations,
1080   each requiring the additional XSLT parameter "basename" to specify
1081   the filename prefix.
1082
1083   Example:
1084
1085   saxon rfc2616.xml rfc2629toHhp.xslt basename=rfc2616  > rfc2616.hhp
1086   saxon rfc2616.xml rfc2629toHhc.xslt basename=rfc2616  > rfc2616.hhc
1087   saxon rfc2616.xml rfc2629toHhk.xslt basename=rfc2616  > rfc2616.hhk
1088   hhc rfc2616.hhp
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119Reschke                                                        [Page 20]
1120
1121Documentation             RFC2629 through XSLT             November 2012
1122
1123
11249.  Transforming to PDF
1125
11269.1.  Via XSL-FO
1127
1128   Transformation to XSL-FO [XSL-FO] format is available through
1129   "rfc2629toFO.xslt" (which includes "rfc2629.xslt", so keep both in
1130   the same folder).
1131
1132   Compared to HTML user agents, XSL-FO engines unfortunately either
1133   come as open source (for instance, Apache FOP) or feature-complete
1134   (for instance, AntennaHouse XSL Formatter), but not both at the same
1135   time.
1136
1137   As Apache FOP needs special workarounds (index generation), and some
1138   popular extensions aren't standardized yet, the translation produces
1139   a generic output (hopefully) conforming to [XSL-FO].  Specific
1140   backends ("xsl11toFop.xslt", "xsl11toXep.xslt", "xsl11toAn.xslt")
1141   then provide post-processing for the individual processors.
1142
1143      Note: the output is currently targeted at Apache FOP 1.0.
1144
11459.1.1.  Extension feature matrix
1146
1147   +------------+-------------+------------+-------------+-------------+
1148   |            | PDF anchors |     PDF    |     PDF     |    Index    |
1149   |            |             |  bookmarks |   document  |   cleanup   |
1150   |            |             |            | information |             |
1151   +------------+-------------+------------+-------------+-------------+
1152   | XSL 1.1    | no, but can |     yes    |   no, but   |     yes     |
1153   | WD [9]     |      be     |            |   uses XEP  |             |
1154   |            | auto-genera |            |    output   |             |
1155   |            |   ted from  |            |  extensions |             |
1156   |            |     "id"    |            |             |             |
1157   |            |  attributes |            |             |             |
1158   |            |             |            |             |             |
1159   | Antenna    |      no     |  yes [11]  |   yes [11]  |   yes [11]  |
1160   | House XSL  |             |  (from XSL |  (from XEP  |  (just page |
1161   | formatter  |             |     1.1    |   document  |  duplicate  |
1162   | [10]       |             | bookmarks) |    info)    | elimination |
1163   |            |             |            |             |  , from XSL |
1164   |            |             |            |             |   1.1 page  |
1165   |            |             |            |             |    index)   |
1166   |            |             |            |             |             |
1167   | Apache     |     yes     |  yes (from |     yes     |      no     |
1168   | FOP [12]   |             |   XSL 1.1  |             |             |
1169   |            |             | bookmarks) |             |             |
1170   |            |             |            |             |             |
1171
1172
1173
1174
1175Reschke                                                        [Page 21]
1176
1177Documentation             RFC2629 through XSLT             November 2012
1178
1179
1180   | RenderX    |      no     |  yes [14]  |   yes [14]  |   yes [14]  |
1181   | XEP [13]   |             |  (from XSL |             |  (from XSL  |
1182   |            |             |     1.1    |             |   1.1 page  |
1183   |            |             | bookmarks) |             |    index)   |
1184   +------------+-------------+------------+-------------+-------------+
1185
11869.1.2.  Example: producing output for Apache FOP
1187
1188   Example:
1189
1190   saxon rfc2616.xml rfc2629toFo.xslt > tmp.fo
1191   saxon tmp.fo xsl11toFop.xslt > rfc2629.fo
1192
11939.2.  Via X(HTML)
1194
1195   PDF output can also be produced directly from (X)HTML.  One simple
1196   approach is to rely on the browser's printing function, and to use a
1197   printer driver that produces PDF.  Depending on the brower's CSS
1198   capabilities, the output will behave properly with respect to table
1199   breaks etc.
1200
1201   An alternative is PrinceXML (see <http://www.princexml.com/>), which
1202   can produce PDF directly from (X)HTML input, based on the CSS
1203   printing information.
1204
1205   For instance, PDF output with text justification turned on can be
1206   produced with:
1207
1208   saxon input.xml rfc2629toXHTML.xslt xml2rfc-ext-justification=print \
1209     > output.xhtml
1210   prince output.xhtml output.pdf
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             November 2012
1234
1235
123610.  Transforming to ePub
1237
1238   Experimental transformation to ePub format is available through a set
1239   of stylesheets, and the Unix Shell script "mkepub.sh" (which requires
1240   that "zip" and either "saxon" or "xsltproc" are installed).
1241
1242   For instance, an epub version of rfc2616.xml can be generated like
1243   this:
1244
1245   mkepub.sh rfc2616.xml
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287Reschke                                                        [Page 23]
1288
1289Documentation             RFC2629 through XSLT             November 2012
1290
1291
129211.  Generic Extensions
1293
1294   This section documents extensions implemented in "rfc2629.xslt",
1295   using the extension namespace "http://purl.org/net/xml2rfc/ext".
1296
129711.1.  <abnf-char-sequence> element
1298
1299   Converts the contained quoted string into a hex-encoded character
1300   sequence, for use in case-sensitive ABNF productions.
1301
1302   For instance, "<x:abnf-char-sequence>"HTTP"</x:abnf-char-sequence>"
1303   gets converted to "%x48.54.54.50".
1304
130511.2.  <anchor-alias> element
1306
1307   Using its "value" attribute, this element allows the definition of an
1308   internal link target alias for the enclosing element.  This alias can
1309   then be used with the <ref> element for intra-document references.
1310
1311   Note that the anchor alias is not subject to the naming constraints
1312   that apply to anchor elements (which are XML names).
1313
131411.3.  <bcp14> element
1315
1316   This element marks the content as being one of the normative keywords
1317   defined in [RFC2119].
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343Reschke                                                        [Page 24]
1344
1345Documentation             RFC2629 through XSLT             November 2012
1346
1347
1348   The DOCTYPE definition below allows using these keywords using XML
1349   entity expansion: such as in "...server &MUST; accept...".
1350
1351   <!DOCTYPE rfc [
1352    <!ENTITY MAY "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1353      >MAY</bcp14>">
1354    <!ENTITY MUST "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1355      >MUST</bcp14>">
1356    <!ENTITY MUST-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1357      >MUST NOT</bcp14>">
1358    <!ENTITY OPTIONAL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1359      >OPTIONAL</bcp14>">
1360    <!ENTITY RECOMMENDED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1361      >RECOMMENDED</bcp14>">
1362    <!ENTITY REQUIRED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1363      >REQUIRED</bcp14>">
1364    <!ENTITY SHALL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1365      >SHALL</bcp14>">
1366    <!ENTITY SHALL-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1367      >SHALL NOT</bcp14>">
1368    <!ENTITY SHOULD "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1369      >SHOULD</bcp14>">
1370    <!ENTITY SHOULD-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1371      >SHOULD NOT</bcp14>">]>
1372
137311.4.  <bb> element
1374
1375   Marking up a string as <bb> indicates that it represents the bottom
1376   line of a box drawing, replacing the "+" and "-" characters
1377   accordingly.
1378
137911.5.  <bc> element
1380
1381   Marking up a string as <bc> indicates that it represents a center
1382   line of a box drawing, replacing the "|" character accordingly.
1383
138411.6.  <blockquote> element
1385
1386   This element is like the "blockquote" element in [HTML] (note this is
1387   a block-level element!).  It should contain one or more <t> child
1388   elements.
1389
139011.7.  <boilerplate> element
1391
1392   Can be used to include boilerplate (status, copyright, ...) into the
1393   front or back section. <section> elements within <x:boilerplate>
1394   appear as unnumbered sections in the output.
1395
1396
1397
1398
1399Reschke                                                        [Page 25]
1400
1401Documentation             RFC2629 through XSLT             November 2012
1402
1403
1404   _This element currently can not be "down-translated" for use in
1405   xml2rfc!_
1406
140711.8.  <bt> element
1408
1409   Marking up a string as <bt> indicates that it represents the top line
1410   of a box drawing, replacing the "+" and "-" characters accordingly.
1411
141211.9.  <dfn> element
1413
1414   This element is like the "dfn" element in [HTML].
1415
141611.10.  <feedback> element
1417
1418   This elements allows declaring a feedback link for document
1419   reviewers.  The template string takes the form of a URI template,
1420   such as:
1421
1422<x:feedback template="mailto:ietf-http-wg@w3.org?subject={docname},%20%22{section}%22&amp;body=&lt;{ref}&gt;:"/>
1423
1424   where "docname" is substituted by the document name, "section" is
1425   substituted by section title (number and name), and "ref" is
1426   substituted by a URI pointing to the section being referenced.
1427
142811.11.  <h> element
1429
1430   This element is like the "h" element in [XHTML2].
1431
143211.12.  <highlight> element
1433
1434   Used to highlight text passages, currently only allowed in <artwork>.
1435
1436   Note: this is stripped when generating input for xml2rfc, so please
1437   use with care.
1438
143911.13.  <length-of> element
1440
1441   This element can be used to insert the length of another formatted
1442   section (in decimal).
1443
1444   Example: computing the Content-Length header value
1445
1446   <artwork>
1447   ...
1448   Content-Length: <x:length-of target="req"/>
1449
1450   <x:span anchor="req">123456789
1451   <x:span><artwork/>
1452
1453
1454
1455Reschke                                                        [Page 26]
1456
1457Documentation             RFC2629 through XSLT             November 2012
1458
1459
1460   The lenght computation counts line ends as two characters (CRLF).
1461
1462   Note that indentation characters in artwork _will_ be counted.  The
1463   "indented" attribute allows to specify the amount of indentation to
1464   be substracted from the computed length.
1465
146611.14.  <link> element
1467
1468   This element can be added as a top-level child element below <rfc> to
1469   indicate additional link information.  It's currently used only when
1470   generating HTML output, in which case an HTML <link> element with
1471   identical attributes gets generated.
1472
1473   Example: generating HTML link element
1474
1475           <x:link xmlns="http://purl.org/net/xml2rfc/ext"
1476               rel="Bookmark"
1477               title="IETF WEBDAV Working Group"
1478               href="http://ftp.ics.uci.edu/pub/ietf/webdav/"/>
1479
1480   If the attribute "basename" is present, it is used to compute the
1481   target href based on the output format being generated (this is handy
1482   for "next"/"prev" links in a series of documents.  In this case, the
1483   href attribute is not required.
1484
1485   For instance:
1486
1487           <x:link xmlns="http://purl.org/net/xml2rfc/ext"
1488               rel="next"
1489               title="Part2"
1490               basename="draft-foobar-protocol-p2-latest"/>
1491
149211.15.  <lt> element
1493
1494   Used for grouping multiple <t> elements into a single list item.
1495
149611.16.  <note> element
1497
1498   Can be used to add a note, usually indented by a few characters.  It
1499   should contain one or more <t> child elements.
1500
150111.17.  <parse-xml> element
1502
1503   This element instructs the processor to parse the contents as XML and
1504   to warn when there's a problem (requires either MSXML or Saxon8 or
1505   newer).
1506
1507
1508
1509
1510
1511Reschke                                                        [Page 27]
1512
1513Documentation             RFC2629 through XSLT             November 2012
1514
1515
151611.18.  <prose> element
1517
1518   This element can be used inside <reference> to add plain text (before
1519   the date, when present).
1520
152111.19.  <q> element
1522
1523   This element is like the "q" element in [HTML].
1524
152511.20.  <ref> element
1526
1527   This element is a simplified variant of the <xref> element, in that
1528   no "target" attribute needs to be specified, instead the text
1529   contents acts as identifier.  That in itself wouldn't be terribly
1530   useful, but together with the <anchor-alias>, it allows referring to
1531   other parts of the document with minimal additional markup.
1532
1533   For instance, given an alias definition such as
1534
1535         <section title="Test" anchor="test">
1536           <x:anchor-alias value="alias1"/>
1537           <x:anchor-alias value="alias 2"/>
1538           ...
1539         </section>
1540
1541   the following simple references
1542
1543         <x:ref>test</x:ref>
1544         <x:ref>alias1</x:ref>
1545         <x:ref>alias 2</x:ref>
1546
1547   are equivalent to...:
1548
1549         <xref target="test">test</xref>
1550         <xref target="test">alias1</xref>
1551         <xref target="test">alias 2</xref>
1552
155311.21.  <source> element
1554
1555   Can be used to enhance a <reference> with information about the
1556   location for the XML source.  This can be used by the <xref>
1557   processing code to automatically extract the target section number.
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567Reschke                                                        [Page 28]
1568
1569Documentation             RFC2629 through XSLT             November 2012
1570
1571
1572   For example:
1573
1574         ...
1575         <xref target="RFC2616" x:fmt="of" x:rel="#PUT" />
1576         ...
1577
1578         <reference target="RFC2616"/>
1579           ...
1580           <x:source href="rfc2616.xml"/>
1581           ...
1582
158311.22.  <sup> element
1584
1585   This element is like the "sup" element in [HTML].
1586
1587   Note: the down conversion to RFC2629 format replaces "x^y" by "x^y".
1588
158911.23.  Extensions to Xml2rfc <artwork> element
1590
1591   Sometimes, artwork occurs inside lists.  To get it indent properly in
1592   xml2rfc's text output, it needs to be indented in the source.  This
1593   is sub-optimal, as this whitespace will also appear in the HTML
1594   output, where it's already indented due to HTML's semantics.
1595
1596   As a workaround, a "x:indent-with" attribute can be specified,
1597   containing a string that will be prepended to each line when
1598   "clean-for-DTD.xslt" is run (see Section 12.4).
1599
160011.24.  Extensions to Xml2rfc <iref> element
1601
1602   The extension attribute below is allowed on the standard <iref>
1603   element:
1604
1605   o  x:for-anchor specifies that the <iref> will also be automatically
1606      inserted whenever the specified anchor is cross-referenced -- this
1607      may save entering lots of <iref> instances.  As a special case, a
1608      value of "" (empty string) refers to the anchor attribute of the
1609      closest ancestor.
1610
161111.25.  Extensions to Xml2rfc <list> element
1612
1613   The extension attribute below is allowed on the standard <list>
1614   element:
1615
1616   o  x:indent specifies the amount of indentation for list items in
1617      hanging lists.  This can be useful when the output format, such as
1618      XSL-FO, does not support automatical formatting.  The value takes
1619      an XSL-FO width, such as "5em".  The default is _length of longest
1620
1621
1622
1623Reschke                                                        [Page 29]
1624
1625Documentation             RFC2629 through XSLT             November 2012
1626
1627
1628      label in characters_ times _0.8em_.
1629
1630   Also, the <list> element can take <x:lt> child elements instead of
1631   <t>, allowing to insert multiple paragraphs into a single list item.
1632
163311.26.  Extensions to Xml2rfc <rfc> element
1634
1635   The extension attributes below are allowed on the standard <rfc>
1636   element:
1637
1638   o  grddl:transformation can be used to reference a GRDDL transform.
1639
1640   o  x:maturity-level can be used to specify the IETF Standards Track
1641      Maturity Level of "proposed", "draft" or "internet" (see Section
1642      4.1 of [RFC2026]).
1643
164411.27.  Extensions to Xml2rfc <section> element
1645
1646   The extension attribute below is allowed on the standard <list>
1647   element:
1648
1649   o  x:fixed-section-number can be used to specify a fixed section
1650      number.  This can be useful when formatting historic documents
1651      that used a different numbering style.
1652
165311.28.  Extensions to Xml2rfc <xref> element
1654
1655   Three extension attributes are allowed on the standard <xref>
1656   element:
1657
1658   1.  x:sec can be specified to point to a specific section of the
1659       referenced document,
1660
1661   2.  x:rel may specify a relative reference to use when linking into
1662       the referenced document (if linking by section number is not
1663       available),
1664
1665   3.  x:fmt defines the text format to be used.
1666
1667   The following formats are defined for the x:fmt attribute:
1668
1669   , (Comma)  [_reference_], Section _sec_
1670
1671   () [_reference_] (Section _sec_)
1672
1673
1674
1675
1676
1677
1678
1679Reschke                                                        [Page 30]
1680
1681Documentation             RFC2629 through XSLT             November 2012
1682
1683
1684   anchor  Like the default format, but without brackets.
1685
1686   of Section _sec_ of [_reference_]
1687
1688   number  _sec_
1689
1690   none  No output (can be used to have xrefs to references without
1691      having them rendered as such)
1692
1693   sec  Section _sec_
1694
1695   These extensions are currently only supported for <xref> elements
1696   without child nodes.
1697
1698   If the processor knows how to reference the target section, it will
1699   generate a link directly to the target section, such as in [RFC2119],
1700   Section 5.
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735Reschke                                                        [Page 31]
1736
1737Documentation             RFC2629 through XSLT             November 2012
1738
1739
174012.  Utilities
1741
174212.1.  Checking References
1743
1744   "check-references.xslt" can be used to check all references to RFC-
1745   and ID-series IETF publications and to W3C publications (note this
1746   script requires local copies of
1747   <ftp://ftp.isi.edu/in-notes/rfc-index.xml> and
1748   <http://www.w3.org/2002/01/tr-automation/tr.rdf> and will use the XML
1749   status information provided at <http://tools.ietf.org/>).
1750
1751   If the document is supposed to be published on the IETF standards
1752   track, the desired level can be specified using the parameter
1753   "intended-level" as 'proposed', 'draft' or 'internet'.
1754   Alternatively, it can be specified inside the document using the
1755   attribute x:maturity-level on the <rfc> element (see Section 11.26).
1756
1757   Note: Downward references should be annotated using the <annotate>
1758   element, containing an <xref> to [BCP97].
1759
1760   When an XSLT 2.0 processor is used, links in the document can be
1761   checked as well using the "link-check" parameter ('yes' or 'no').
1762   Note that this only works for http links to documents of type text/*.
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             November 2012
1794
1795
1796   For instance, as of 2008-07-12, the script produces for
1797   <http://greenbytes.de/tech/webdav/rfc2518.xml>:
1798
1799   > saxon rfc2518.xml check-references.xslt intended-status=PROPOSED \
1800     link-check=yes
1801
1802   Normative References:
1803   ISO-11578: not checked
1804   ISO-639: not checked
1805   ISO-8601: not checked
1806   REC-xml-19980210: [FirstEdition] obsoleted by REC-xml-20001006
1807   REC-xml-names-19990114: [FirstEdition] obsoleted by
1808    REC-xml-names-20060816
1809   RFC1766: [PROPOSED STANDARD] obsoleted by RFC3066 RFC3282
1810   RFC2068: [PROPOSED STANDARD] obsoleted by RFC2616
1811   RFC2069: [PROPOSED STANDARD] obsoleted by RFC2617
1812   RFC2119: [BEST CURRENT PRACTICE] (-> BCP0014) ok
1813   RFC2141: [PROPOSED STANDARD] ok
1814   RFC2277: [BEST CURRENT PRACTICE] (-> BCP0018) ok
1815   RFC2396: [DRAFT STANDARD] obsoleted by RFC3986
1816   RFC2279: [DRAFT STANDARD] obsoleted by RFC3629
1817
1818   Informational References:
1819   REC-PICS-labels-961031: [REC] ok
1820   RFC1807: [INFORMATIONAL] ok
1821   RFC2026: [BEST CURRENT PRACTICE] (-> BCP0009) ok
1822   RFC2291: [INFORMATIONAL] ok
1823   RFC2376: [INFORMATIONAL] obsoleted by RFC3023
1824   RFC2413: [INFORMATIONAL] obsoleted by RFC5013
1825   USMARC: not checked
1826   WF: not checked
1827
1828   Link Targets
1829   <http://www.w3.org/TR/1998/REC-xml-19980210>: ok
1830   <http://www.w3.org/TR/1999/REC-xml-names-19990114>: ok
1831   <http://www.dlib.org/dlib/july96/lagoze/07lagoze.html>: ok
1832   <http://www.w3.org/pub/WWW/TR/REC-PICS-labels-961031.html>: ok
1833
1834   Recognized formats in the <seriesInfo> element are:
1835
1836   o  for RFCs, the name attribute must be "RFC", and the value
1837      attribute must be the number of the RFC,
1838
1839   o  for Internet Drafs, the name attribute must be "ID" or "Internet-
1840      Draft", and the value attribute must be the file name of the draft
1841      (including the two-digit running number, but excluding a file
1842      extension),
1843
1844
1845
1846
1847Reschke                                                        [Page 33]
1848
1849Documentation             RFC2629 through XSLT             November 2012
1850
1851
1852   o  for W3C documents, the name attribute must be "W3C", must start
1853      with "W3C ", or must start with "World Wide Web Consortium ", and
1854      the value attribute must be the "shorthand" name of the
1855      specification, such as "REC-xml-19980210".
1856
1857      Note: this stylesheet will need network access to check links and
1858      status of Internet Drafts.  When running a Java-based XSLT engine,
1859      you may have to supply Java system properties specifying the HTTP
1860      proxy to be used, such as "-Dhttp.proxyHost=hostname
1861      -Dhttp.proxyPort=80".
1862
186312.2.  Generating Graphs from References
1864
1865   "gen-reference-graph.xslt" generates a graph of RFC dependencies,
1866   using the same base data as in "check-references.xslt" (see
1867   Section 12.1).  Its output is a "dot" file, to be processed by
1868   GraphViz (see <http://www.graphviz.org/>).
1869
1870   The picture below shows the RFC dependencies in RFC2629.
1871
1872
187312.3.  Producing reference entries for books
1874
1875   "amazon-asin.xslt" uses the Amazon web services to generate a
1876   <reference> element for a given ASIN (ISBN).
1877
1878   For instance:
1879
1880   <?xml version="1.0" encoding="utf-8"?>
1881   <references>
1882    <reference target="urn:isbn:0134516591">
1883      <front>
1884        <title>Simple Book, The: An Introduction to Internet Management,
1885                  Revised Second Edition</title>
1886        <author surname="Rose"
1887                   fullname="Marshall T. Rose" initials="M. T. ">
1888          <organization/>
1889        </author>
1890        <author surname="Marshall"
1891                   fullname="Rose T. Marshall" initials="R. T.">
1892          <organization/>
1893        </author>
1894        <date year="1996" month="March"/>
1895      </front>
1896      <seriesInfo name="Prentice Hall" value=""/>
1897    </reference>
1898   </references>
1899
1900
1901
1902
1903Reschke                                                        [Page 34]
1904
1905Documentation             RFC2629 through XSLT             November 2012
1906
1907
1908   Note that the resulting XML usually requires checking, in this case
1909   Amazon's database is playing tricks with Marshall's name...
1910
191112.4.  Down-converting to RFC2629bis DTD
1912
1913   "clean-for-DTD.xslt" can be used to down-convert some extensions to a
1914   format that is supported by the base xml2rfc distribution.  Note that
1915   these extensions are experimental (feedback appreciated).
1916
1917   The following mappings are done:
1918
1919   o  <iref> elements inside <artwork> elements are moved in front of
1920      the enclosing <figure> element.
1921
1922   o  <xref> elements inside <artwork> are expanded just like in regular
1923      text (that is, the markup is stripped, but the element is replaced
1924      by the applicable replacement text).
1925
1926   o  <x:anchor-alias> elements get stripped.
1927
1928   o  <x:bcp14> elements get stripped.
1929
1930   o  <x:bb>, <x:bc> and <x:bt> elements get stripped.
1931
1932   o  <x:blockquote> elements get converted to indented text (through a
1933      <list> element).
1934
1935   o  <x:dfn> elements get stripped.
1936
1937   o  <x:h> elements get stripped.
1938
1939   o  <x:link> elements get stripped.
1940
1941   o  <x:lt> elements get collapsed into a single <lt> element with
1942      added <vspace> added to simulate paragraph breaks.
1943
1944   o  <x:note> elements get converted to indented text (through a <list>
1945      element).
1946
1947   o  <x:q> elements get stripped, with apostrophes added around the
1948      text.
1949
1950   o  <x:prose> elements are transformed into <seriesInfo> elements
1951      (which is an abuse of the element and only a workaround until
1952      xml2rfc gets a matching extension).
1953
1954   o  <x:ref> elements get replaced by <xref> elements, targetting
1955      either the anchor or another anchor with matching <x:anchor-alias>
1956
1957
1958
1959Reschke                                                        [Page 35]
1960
1961Documentation             RFC2629 through XSLT             November 2012
1962
1963
1964      child element.
1965
196612.5.  Extracting artwork
1967
1968   With "extract-artwork.xslt", artwork elements named through the
1969   "name" attribute can be extracted.  This can be used to automatically
1970   check their syntax (for instance, when ABNFs appear within a figure
1971   element).
1972
1973   For instance:
1974   saxon rfc3986.xml extract-artwork.xslt name=uri.abnf
1975
1976   In addition, artwork of a specific type can be extracted, such as
1977   with:
1978   saxon rfc3986.xml extract-artwork.xslt type=abnf
1979
1980   When extracting by type, artwork elements with a specified name can
1981   be excluded; this can be handy when the document uses some kind of
1982   schema language, and an appendix contains the collected schema,
1983   repeating definitions from earlier on.  Example:
1984   saxon rfc3986.xml extract-artwork.xslt type=abnf except-name=clschm
1985
198612.6.  GRRDL
1987
1988   "rfc2629grddl.xslt" extracts RDF information.  This is experimental
1989   work-in-progress.  See <http://www.w3.org/TR/grddl/> for more
1990   information.
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015Reschke                                                        [Page 36]
2016
2017Documentation             RFC2629 through XSLT             November 2012
2018
2019
202013.  Informative References
2021
2022   [BCP97]    Klensin, J. and S. Hartman, "Handling Normative References
2023              to Standards-Track Documents", BCP 97, RFC 4897,
2024              June 2007.
2025
2026   [DC-HTML]  Johnston, P. and A. Powell, "Expressing Dublin Core
2027              metadata using HTML/XHTML meta and link elements", Dublin
2028              Core Metadata Initiative , August 2008,
2029              <http://dublincore.org/documents/2008/08/04/dc-html/>.
2030
2031   [HTML]     Raggett, D., Hors, A., and I. Jacobs, "HTML 4.01
2032              Specification", W3C REC-html401-19991224, December 1999,
2033              <http://www.w3.org/TR/html401/>.
2034
2035   [RFC2026]  Bradner, S., "The Internet Standards Process -- Revision
2036              3", BCP 9, RFC 2026, October 1996.
2037
2038   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
2039              Requirement Levels", BCP 14, RFC 2119, March 1997.
2040
2041   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Nielsen, H.,
2042              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
2043              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
2044
2045   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
2046              June 1999.
2047
2048   [RFC2648]  Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
2049              August 1999.
2050
2051   [RFC2731]  Kunze, J., "Encoding Dublin Core Metadata in HTML",
2052              RFC 2731, December 1999.
2053
2054   [RFC5234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
2055              Specifications: ABNF", STD 68, RFC 5234, January 2008.
2056
2057   [RFC5741]  Daigle, L. and O. Kolkman, "RFC Streams, Headers, and
2058              Boilerplates", RFC 5741, December 2009.
2059
2060   [RNC]      Clark, J., "RELAX NG Compact Syntax", OASIS , Nov 2002, <h
2061              ttp://www.oasis-open.org/committees/relax-ng/
2062              compact-20021121.html>.
2063
2064   [XHTML2]   Axelsson, J., Birbeck, M., Dubinko, M., Epperson, B.,
2065              Ishikawa, M., McCarron, S., Navarro, A., and S. Pemberton,
2066              "XHTML[TM] 2.0", W3C WD-xhtml2-20060726, July 2006,
2067              <http://www.w3.org/TR/xhtml2>.
2068
2069
2070
2071Reschke                                                        [Page 37]
2072
2073Documentation             RFC2629 through XSLT             November 2012
2074
2075
2076   [XML]      Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and
2077              F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth
2078              Edition)", W3C REC-xml-20081126, November 2008,
2079              <http://www.w3.org/TR/2008/REC-xml-20081126/>.
2080
2081   [XSL-FO]   Berglund, A., "Extensible Stylesheet Language (XSL)
2082              Version 1.1", W3C REC-xsl11-20061205, Dec 2006,
2083              <http://www.w3.org/TR/2006/REC-xsl11-20061205/>.
2084
2085   [1]   <http://www.exslt.org/exsl/functions/node-set/index.html>
2086
2087   [2]   <http://www.exslt.org/date/functions/date-time/>
2088
2089   [3]   <http://www.microsoft.com/downloads/
2090         details.aspx?FamilyID=2FB55371-C94E-4373-B0E9-DB4816552E41>
2091
2092   [4]   <https://addons.mozilla.org/de/firefox/addon/722>
2093
2094   [5]   <https://bugzilla.mozilla.org/show_bug.cgi?id=22942>
2095
2096   [6]   <http://bugzilla.mozilla.org/show_bug.cgi?id=193678>
2097
2098   [7]   <https://addons.mozilla.org/firefox/2933/>
2099
2100   [8]   <http://microformats.org/wiki/hcard>
2101
2102   [9]   <http://www.w3.org/TR/2003/WD-xsl11-20031217/>
2103
2104   [10]  <http://www.antennahouse.com/>
2105
2106   [11]  <http://www.antennahouse.com/XSL20/axf-extension.htm>
2107
2108   [12]  <http://xml.apache.org/fop/>
2109
2110   [13]  <http://xep.xattic.com/>
2111
2112   [14]  <http://xep.xattic.com/xep/spec.html>
2113
2114   [15]  <http://www.thaiopensource.com/relaxng/jing.html>
2115
2116   [16]  <http://dpcarlisle.blogspot.com/2007/05/
2117         exslt-node-set-function.html>
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127Reschke                                                        [Page 38]
2128
2129Documentation             RFC2629 through XSLT             November 2012
2130
2131
2132Appendix A.  RELAX NG Compact Schema
2133
2134   The RelaxNG schema ([RNC]) below can be used to validate input
2135   documents (for instance, with Jing [15]).
2136
2137   _Note that this is work in progress, and doesn't yet cover all
2138   extensions completely._
2139
2140  # WORK IN PROGRESS! PLEASE REPORT PROBLEMS TO THE AUTHOR.
2141
2142  # Define our extension namespace
2143  namespace x = "http://purl.org/net/xml2rfc/ext"
2144
2145  # Define GRDDL namespace
2146  namespace grddl = "http://www.w3.org/2003/g/data-view#"
2147
2148  # Define RDF namespace
2149  namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
2150
2151  # Include rfc2629bis RNC grammar
2152  include "rfc2629.rnc" {
2153
2154    # Redefine <artwork> to allow markup
2155    artwork =
2156      element artwork {
2157        attlist.artwork,
2158        (TEXT
2159          | eref
2160          | iref
2161          | spanx
2162          | xref
2163          | x_abnf-char-sequence
2164          | x_bb
2165          | x_bc
2166          | x_bcp14
2167          | x_bt
2168          | x_highlight
2169          | x_length-of
2170          | x_parse-xml
2171          | x_ref
2172          | x_span
2173          | x_x)*
2174      }
2175
2176    # Redefine <back> to allow boilerplate
2177    back =
2178      element back {
2179        attlist.back,
2180
2181
2182
2183Reschke                                                        [Page 39]
2184
2185Documentation             RFC2629 through XSLT             November 2012
2186
2187
2188        references*,
2189        section*,
2190        x_boilerplate?
2191      }
2192
2193    # Redefine <c> to allow our extension elements
2194    c =
2195      element c {
2196        attlist.c,
2197        (TEXT
2198          | xref
2199          | eref
2200          | iref
2201          | cref
2202          | spanx
2203          | x_ref)*
2204      }
2205
2206    # Redefine <cref> to allow more child elements
2207    cref =
2208      element cref {
2209        attlist.cref,
2210        (TEXT
2211          | eref
2212          | xref)*
2213      }
2214
2215    # Redefine <front> to allow boilerplate
2216    front =
2217      element front {
2218        attlist.front,
2219        title,
2220        author+,
2221        date,
2222        area*,
2223        workgroup*,
2224        keyword*,
2225        x_boilerplate?,
2226        abstract?,
2227        note*
2228      }
2229
2230    # Redefine <list> element to allow <x:lt> child elements
2231    \list =
2232      element list {
2233        attlist.list,
2234        (t+ | x_lt+)
2235      }
2236
2237
2238
2239Reschke                                                        [Page 40]
2240
2241Documentation             RFC2629 through XSLT             November 2012
2242
2243
2244    # Redefine <preamble> to allow our extension elements
2245    preamble =
2246      element preamble {
2247        attlist.preamble,
2248        (TEXT
2249          | xref
2250          | eref
2251          | iref
2252          | cref
2253          | spanx
2254          | x_anchor-alias*
2255          | x_bcp14)*
2256    }
2257
2258    # Redefine <postamble> to allow our extension elements
2259    postamble =
2260      element postamble {
2261        attlist.postamble,
2262        (TEXT
2263          | xref
2264          | eref
2265          | iref
2266          | cref
2267          | spanx
2268          | x_bcp14)*
2269      }
2270
2271    # Redefine <reference> to allow our extension elements
2272    reference =
2273      element reference {
2274        attlist.reference,
2275        front,
2276        seriesInfo*,
2277        x_prose?,
2278        format*,
2279        annotation*,
2280        x_source?
2281      }
2282
2283    # Redefine <rfc> to allow our extension elements
2284    rfc =
2285      element rfc {
2286        attlist.rfc,
2287        x_link*,
2288        x_feedback?,
2289        x_assign-section-number*,
2290        front,
2291        middle,
2292
2293
2294
2295Reschke                                                        [Page 41]
2296
2297Documentation             RFC2629 through XSLT             November 2012
2298
2299
2300        back?
2301      }
2302
2303    # Redefine <section> to allow our extension elements
2304    section =
2305      element section {
2306        attlist.section,
2307        (t
2308         | figure
2309         | texttable
2310         | iref
2311         | section
2312         | x_anchor-alias
2313         | x_blockquote
2314         | x_include-author
2315         | x_note
2316         | rdf_Description)*
2317      }
2318
2319    # Redefine <spanx> to allow some markup
2320    spanx =
2321      element spanx {
2322        attlist.spanx,
2323        (TEXT
2324          | iref
2325          | xref
2326          | x_ref)*
2327      }
2328
2329    # Redefine <t> to allow our extension elements
2330    t =
2331      element t {
2332        attlist.t,
2333        (TEXT
2334         | \list
2335         | figure
2336         | xref
2337         | eref
2338         | iref
2339         | cref
2340         | spanx
2341         | vspace
2342         | x_abnf-char-sequence
2343         | x_anchor-alias
2344         | x_bcp14
2345         | x_dfn
2346         | x_h
2347         | x_q
2348
2349
2350
2351Reschke                                                        [Page 42]
2352
2353Documentation             RFC2629 through XSLT             November 2012
2354
2355
2356         | x_ref
2357         | x_sup)*
2358      }
2359  }
2360
2361  # Allow x:indent-with attribute on <artwork>
2362  attlist.artwork &=
2363    attribute x:indent-with { ATEXT }?,
2364    attribute x:isCodeComponent { "no" | "yes" }?
2365
2366  # Allow anchor and x:annotation attributes on <author>
2367  attlist.author &=
2368    attribute anchor { xsd:ID }?,
2369    attribute x:annotation { ATEXT }?
2370
2371  # Extend attribute set for <c> (see Section 11.24)
2372  attlist.c &=
2373    attribute anchor { xsd:ID }?
2374
2375  # Extend attribute set for <iref> (see Section 11.24)
2376  attlist.iref &=
2377    attribute x:for-anchor { ATEXT }?
2378
2379  # Extend attribute set for <list> (see Section 11.25)
2380  attlist.list &=
2381    attribute x:indent { ATEXT }?
2382
2383  # Extend attribute set for <preamble>
2384  attlist.preamble &=
2385    attribute anchor { xsd:ID }?
2386
2387  # Extend attribute set for <rfc>
2388  attlist.rfc &=
2389    attribute grddl:transformation { ATEXT }?,
2390    attribute x:maturity-level { "proposed" | "draft" | "internet" }?
2391
2392  # Extend attribute set for <section> (see Section 11.27)
2393  attlist.section &=
2394    attribute x:fixed-section-number { ATEXT }?
2395
2396  # Allow anchor attribute on <spanx>
2397  attlist.spanx &=
2398    attribute anchor { xsd:ID }?
2399
2400  # Allow x:quotes attribute on <title>
2401  attlist.title &=
2402    attribute x:quotes { "true" | "false" }?
2403
2404
2405
2406
2407Reschke                                                        [Page 43]
2408
2409Documentation             RFC2629 through XSLT             November 2012
2410
2411
2412  # Allow annotation attribute on <uri>
2413  attlist.uri &=
2414    attribute x:annotation { ATEXT }?
2415
2416  # Extend attribute set for <xref> (see Section 11.28)
2417  attlist.xref &=
2418    attribute x:fmt  { "()" | "," | "anchor" | "of" | "number" | "sec" |
2419                       "none" }?,
2420    attribute x:rel  { ATEXT }?,
2421    attribute x:sec  { ATEXT }?
2422
2423  # Conversion to ABNF char sequence (see Section 11.1)
2424  x_abnf-char-sequence =
2425    element x:abnf-char-sequence {
2426      TEXT
2427    }
2428
2429  # Aliasing of anchors (see Section 11.2)
2430  x_anchor-alias =
2431    element x:anchor-alias {
2432      attribute value { TEXT },
2433      empty
2434    }
2435
2436  # Supply feedback links (see Section 11.10)
2437  x_feedback =
2438    element x:feedback {
2439      attribute template { TEXT },
2440      empty
2441    }
2442
2443  # Including Author information
2444  # (experimental)
2445  x_include-author =
2446    element x:include-author {
2447      attribute target { xsd:IDREF }
2448    }
2449
2450  # Setting section numbers for internally generated sections
2451  # (experimental)
2452  x_assign-section-number =
2453    element x:assign-section-number {
2454      attribute builtin-target { "authors" },
2455      attribute number { TEXT },
2456      empty
2457    }
2458
2459  # Bottom line of box drawing (see Section 11.4)
2460
2461
2462
2463Reschke                                                        [Page 44]
2464
2465Documentation             RFC2629 through XSLT             November 2012
2466
2467
2468  x_bb =
2469    element x:bb {
2470      (TEXT
2471        | iref
2472        | xref
2473        | x_bb
2474        | x_bc
2475        | x_bt
2476        | x_ref)*
2477    }
2478
2479  # Center line of box drawing (see Section 11.5)
2480  x_bc =
2481    element x:bc {
2482      (TEXT
2483        | iref
2484        | spanx
2485        | xref
2486        | x_bb
2487        | x_bc
2488        | x_bt
2489        | x_ref)*
2490    }
2491
2492  # BCP14/RFC2119 keywords (see Section 11.3)
2493  x_bcp14 =
2494    element x:bcp14 {
2495      "MAY"
2496      | "MUST"
2497      | "MUST NOT"
2498      | "NOT RECOMMENDED"
2499      | "OPTIONAL"
2500      | "RECOMMENDED"
2501      | "REQUIRED"
2502      | "SHALL"
2503      | "SHALL NOT"
2504      | "SHOULD"
2505      | "SHOULD NOT"
2506    }
2507
2508  # Blockquote (see Section 11.6)
2509  x_blockquote =
2510    element x:blockquote {
2511      attribute cite { URI }?,
2512      t+
2513    }
2514
2515  # Boilerplate (see Section 11.6)
2516
2517
2518
2519Reschke                                                        [Page 45]
2520
2521Documentation             RFC2629 through XSLT             November 2012
2522
2523
2524  x_boilerplate =
2525    element x:boilerplate {
2526      section+
2527    }
2528
2529  # Top line of box drawing (see Section 11.8)
2530  x_bt =
2531    element x:bt {
2532      (TEXT
2533        | iref
2534        | xref
2535        | x_bb
2536        | x_bc
2537        | x_bt
2538        | x_ref)*
2539    }
2540
2541  # Definition (see Section 11.9)
2542  x_dfn =
2543    element x:dfn {
2544      attribute anchor { xsd:ID }?,
2545      (TEXT
2546        | iref)*
2547    }
2548
2549  # Heading (see Section 11.11)
2550  x_h =
2551    element x:h {
2552      TEXT
2553    }
2554
2555  # Heading (see Section 11.12)
2556  x_highlight =
2557    element x:highlight {
2558      TEXT
2559    }
2560
2561  # Length Measurement (see Section 11.13)
2562  x_length-of =
2563    element x:length-of {
2564      attribute indented { NUMBER }?,
2565      attribute target { xsd:IDREF },
2566      empty
2567    }
2568
2569  # Link (see Section 11.14)
2570  x_link =
2571    element x:link {
2572
2573
2574
2575Reschke                                                        [Page 46]
2576
2577Documentation             RFC2629 through XSLT             November 2012
2578
2579
2580      attribute basename { URI }?,
2581      attribute href { URI }?,
2582      attribute title { TEXT }?,
2583      attribute rel { TEXT },
2584      empty
2585    }
2586
2587  # Extended list item (see Section 11.15)
2588  x_lt =
2589    element x:lt {
2590      attribute anchor { xsd:ID }?,
2591      attribute hangText { TEXT }?,
2592      t+
2593    }
2594
2595  # Note (see Section 11.16)
2596  x_note =
2597    element x:note {
2598      t+
2599    }
2600
2601  # Signal XML content (see Section 11.17)
2602  x_parse-xml =
2603    element x:parse-xml {
2604      (TEXT
2605        | xref)*
2606    }
2607
2608  # Inline prose in a reference (see Section 11.18)
2609  x_prose =
2610    element x:prose {
2611      TEXT
2612    }
2613
2614  # Inline quote (see Section 11.19)
2615  x_q =
2616    element x:q {
2617      TEXT
2618    }
2619
2620  # Anchor reference (see Section 11.20)
2621  x_ref =
2622    element x:ref {
2623      attribute anchor { xsd:ID }?,
2624      TEXT
2625    }
2626
2627  # source information (see Section 11.21)
2628
2629
2630
2631Reschke                                                        [Page 47]
2632
2633Documentation             RFC2629 through XSLT             November 2012
2634
2635
2636  x_source =
2637    element x:source {
2638      attribute basename { ATEXT }?,
2639      attribute href { URI },
2640      empty
2641    }
2642
2643  # superscript (see Section 11.22)
2644  x_sup =
2645    element x:sup {
2646      TEXT
2647    }
2648
2649  # Inline Span
2650  x_span =
2651    element x:span {
2652      attribute anchor { xsd:ID }?,
2653      (TEXT
2654        | x_parse-xml)*
2655    }
2656
2657  # Nop (for alignment in source)
2658  x_x =
2659    element x:x {
2660      empty
2661    }
2662
2663  # Embed RDF statements
2664  rdf_Description =
2665    element rdf:Description {
2666      rdf_content
2667    }
2668
2669  rdf_content =
2670    ( TEXT | element * { rdf_content })*
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687Reschke                                                        [Page 48]
2688
2689Documentation             RFC2629 through XSLT             November 2012
2690
2691
2692Appendix B.  Implementation Notes
2693
2694B.1.  Recognized type attributes for <artwork> element
2695
2696   Specific values in the <artwork> element's "type" attribute are
2697   recognized and cause a different visual style to be used:
2698
2699   +-------------------------------------+-----------------------------+
2700   | Media Type                          | Comment                     |
2701   +-------------------------------------+-----------------------------+
2702   | abnf                                | ABNF as per [RFC5234]       |
2703   |                                     |                             |
2704   | abnf2616                            | ABNF as per [RFC2616],      |
2705   |                                     | Section 2.1                 |
2706   |                                     |                             |
2707   | application/relax-ng-compact-syntax | Relax NG Compact Syntax as  |
2708   |                                     | per [RNC]                   |
2709   |                                     |                             |
2710   | application/xml-dtd                 | XML DTD                     |
2711   |                                     |                             |
2712   | message/http; msgtype="request"     | HTTP message, as per        |
2713   |                                     | [RFC2616], Section 19.1     |
2714   |                                     |                             |
2715   | message/http; msgtype="response"    | HTTP message, as per        |
2716   |                                     | [RFC2616], Section 19.1     |
2717   +-------------------------------------+-----------------------------+
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743Reschke                                                        [Page 49]
2744
2745Documentation             RFC2629 through XSLT             November 2012
2746
2747
2748Appendix C.  Examples
2749
2750C.1.  Using the 'Internal Subset'
2751
2752   The prolog of the XML document can both be used to refer to an
2753   external DTD, and also to define internal entities (Section 2.8 of
2754   [XML]):
2755
2756   <?xml version="1.0"?>
2757   <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
2758
2759   <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
2760
2761     <!-- use "&MAY;" for a BCP 14 "MAY", see Section 11.3 -->
2762     <!ENTITY MAY
2763     "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>MAY</bcp14>">
2764
2765     <!-- re-declare "&nbsp;" as code point 160 (non-breaking space) -->
2766     <!-- you may need this for UAs that do not read external DTDs -->
2767     <!ENTITY nbsp
2768     "&#160;">
2769
2770     <!-- allow later RFC2616 reference using "&rfc2616;" -->
2771     <!-- the data will be fetched from xml.resource.org -->
2772     <!ENTITY rfc2616 PUBLIC
2773     "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
2774
2775     <!-- allow a custom reference using "&mydraft;" -->
2776     <!-- the data will be fetched from the same location as the
2777          source file -->
2778     <!ENTITY mydraft PUBLIC "reference.mydraft.xml">
2779   ]>
2780
2781   Note: including entities from a remote site will not work in Firefox,
2782   see <https://bugzilla.mozilla.org/show_bug.cgi?id=22942>.
2783
2784C.2.  Customization
2785
2786   The XSLT code can be customized by creating a custom XSLT file that
2787   uses <xsl:import> to include the original code, and just overrides
2788   particular rules.
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799Reschke                                                        [Page 50]
2800
2801Documentation             RFC2629 through XSLT             November 2012
2802
2803
2804   For instance, the code below overrides several attributes in
2805   "rfc2629toFO.xslt", changing the color, spacing and font family for
2806   headers.
2807
2808   <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
2809                  version="1.0">
2810
2811     <xsl:import href="rfc2629toFO.xslt"/>
2812
2813     <xsl:attribute-set name="h1">
2814       <xsl:attribute name="color">darkblue</xsl:attribute>
2815       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
2816       <xsl:attribute name="space-before">24pt</xsl:attribute>
2817     </xsl:attribute-set>
2818
2819     <xsl:attribute-set name="h2">
2820       <xsl:attribute name="color">darkblue</xsl:attribute>
2821       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
2822       <xsl:attribute name="space-before">18pt</xsl:attribute>
2823       <xsl:attribute name="space-after">3pt</xsl:attribute>
2824     </xsl:attribute-set>
2825
2826     <xsl:attribute-set name="h3">
2827       <xsl:attribute name="color">darkblue</xsl:attribute>
2828       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
2829       <xsl:attribute name="space-before">16pt</xsl:attribute>
2830       <xsl:attribute name="space-after">2pt</xsl:attribute>
2831     </xsl:attribute-set>
2832
2833   </xsl:transform>
2834
2835      Note: the name for the attribute sets may change in the future as
2836      more working is done with respect to customizability.  In any
2837      case, overriding the settings in a separate file will be easier to
2838      maintain.  Please contact the author if you find yourself trying
2839      to override style definitions that currently do not use attribute
2840      sets.
2841
2842      Note: the CSS style information used in "rfc2629.xslt" can be
2843      overriden in a similar (but less granular) way: just overwrite the
2844      template called "insertCss".  As for XSL-FO, the class names may
2845      change in future.
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855Reschke                                                        [Page 51]
2856
2857Documentation             RFC2629 through XSLT             November 2012
2858
2859
2860Appendix D.  Producing the IETF 'Boilerplate'
2861
2862   Various attributes of the "<rfc>" element plus some child elements of
2863   "<front>" affect the automatically generated parts of the front page,
2864   such as the tabular information at the beginning, the "Status Of This
2865   Memo", and the "Copyright Notice".
2866
2867   When submitting an Internet Draft, this "boilerplate" is checked by
2868   "Idnits" (<http://tools.ietf.org/tools/idnits/>) for compliance with
2869   the current Intellectual Property rules, and thus it is important to
2870   set the correct values.
2871
2872   Furthermore, the RFC Production Center uses RFC2629-based tools to
2873   generate the final RFC text, so the more accurate the supplied
2874   information is, the less additional work is left, and the risk for
2875   errors in producing the final (and immutable!) document is reduced.
2876
2877      Note: this only applies to the case when IETF documents are
2878      produced.  The "private" processing instruction allows to switch
2879      off most of the autogeneration logic.
2880
2881D.1.  The /rfc/@ipr Attribute
2882
2883   As of the time of this writing, this attribute value can take a long
2884   list of values.  As frequently, this is not the result of a grand
2885   plan, but simply for historic reasons.  Of these values, only a few
2886   are currently in use; all others are supported by the various tools
2887   for backwards compatibility with old source files.
2888
2889      Note: some variations of the boilerplate are selected based on the
2890      document's date; therefore it is important to specify the "year",
2891      "month" and "day" attributes of the "<date>" element when
2892      archiving the XML source of an Internet Draft on the day of
2893      submission.
2894
2895   _Disclaimer: THIS ONLY PROVIDES IMPLEMENTATION INFORMATION.  IF YOU
2896   NEED LEGAL ADVICE, PLEASE CONTACT A LAWYER._ For further information,
2897   refer to <http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf>.
2898
2899   Finally, for the current "Status Of This Memo" text, the
2900   "submissionType" attribute determines whether a statement about "Code
2901   Components" is inserted (this is the case for the value "IETF", which
2902   also happens to be the default).  Other values, such as
2903   "independent", suppress this part of the text.
2904
2905
2906
2907
2908
2909
2910
2911Reschke                                                        [Page 52]
2912
2913Documentation             RFC2629 through XSLT             November 2012
2914
2915
2916D.1.1.  Current Values: '*trust200902'
2917
2918   The name for these values refers to the "TLP" ("IETF TRUST Legal
2919   Provisions Relating to IETF Documents"), on effect February 15, 2009
2920   (see <http://trustee.ietf.org/license-info/archive/
2921   IETF-Trust-License-Policy-20090215.pdf>).  Updates to this document
2922   were published on September 12, 2009 (TLP 3.0, <http://
2923   trustee.ietf.org/license-info/archive/
2924   IETF-Trust-License-Policy-20090912.pdf>) and on December 28, 2009
2925   (TLP 4.0, <http://trustee.ietf.org/license-info/archive/
2926   IETF-Trust-License-Policy-20091228.pdf>), modifying the license for
2927   code components.  The actual text is located in Section 6 ("Text To
2928   Be Included in IETF Documents") of these documents.
2929
2930   The tools will automatically produce the "right" text depending on
2931   the document's date information (see above):
2932
2933   +----+----------------------------------------------------+---------+
2934   | TL | URI                                                | startin |
2935   | P  |                                                    | g with  |
2936   |    |                                                    | publica |
2937   |    |                                                    | tion    |
2938   |    |                                                    | date    |
2939   +----+----------------------------------------------------+---------+
2940   | 3. | <http://trustee.ietf.org/license-info/archive/IETF | 2009-11 |
2941   | 0  | -Trust-License-Policy-20090912.pdf>                | -01     |
2942   |    |                                                    |         |
2943   | 4. | <http://trustee.ietf.org/license-info/archive/IETF | 2010-04 |
2944   | 0  | -Trust-License-Policy-20091228.pdf>                | -01     |
2945   +----+----------------------------------------------------+---------+
2946
2947D.1.1.1.  trust200902
2948
2949   This should be the default, unless one of the more specific
2950   '*trust200902' values is a better fit.  It produces the text in
2951   Sections 6.a and 6.b of the TLP.
2952
2953D.1.1.2.  noModificationTrust200902
2954
2955   This produces the additional text from Section 6.c.i of the TLP:
2956
2957      This document may not be modified, and derivative works of it may
2958      not be created, except to format it for publication as an RFC or
2959      to translate it into languages other than English.
2960
2961      Note: this clause is incompatible with RFCs to be published on the
2962      Standards Track.
2963
2964
2965
2966
2967Reschke                                                        [Page 53]
2968
2969Documentation             RFC2629 through XSLT             November 2012
2970
2971
2972D.1.1.3.  noDerivativesTrust200902
2973
2974   This produces the additional text from Section 6.c.ii of the TLP:
2975
2976      This document may not be modified, and derivative works of it may
2977      not be created, and it may not be published except as an Internet-
2978      Draft.
2979
2980      Note: this clause is incompatible with RFCs to be published on the
2981      Standards Track.
2982
2983D.1.1.4.  pre5378Trust200902
2984
2985   This produces the additional text from Section 6.c.iii of the TLP,
2986   frequently called the "pre-5378 escape clause":
2987
2988      This document may contain material from IETF Documents or IETF
2989      Contributions published or made publicly available before November
2990      10, 2008.  The person(s) controlling the copyright in some of this
2991      material may not have granted the IETF Trust the right to allow
2992      modifications of such material outside the IETF Standards Process.
2993      Without obtaining an adequate license from the person(s)
2994      controlling the copyright in such materials, this document may not
2995      be modified outside the IETF Standards Process, and derivative
2996      works of it may not be created outside the IETF Standards Process,
2997      except to format it for publication as an RFC or to translate it
2998      into languages other than English.
2999
3000   See Section 4 of
3001   <http://trustee.ietf.org/docs/IETF-Copyright-FAQ.pdf> for further
3002   information about when to use this value.
3003
3004      Note: this text appears under "Copyright Notice", unless the
3005      document was published before November 2009, in which case it
3006      appears under "Status Of This Memo".
3007
3008D.1.2.  Historic Values
3009
3010D.1.2.1.  Historic Values: '*trust200811'
3011
3012   The attribute values "trust200811", "noModificationTrust200811" and
3013   "noDerivativesTrust200811" are similar to their "trust200902"
3014   counterparts, except that they use text specified in <http://
3015   trustee.ietf.org/license-info/archive/
3016   IETF-Trust-License-Policy_11-10-08.pdf>.
3017
3018
3019
3020
3021
3022
3023Reschke                                                        [Page 54]
3024
3025Documentation             RFC2629 through XSLT             November 2012
3026
3027
3028D.1.2.2.  Historic Values: '*3978'
3029
3030   The attribute values "full3978", "noModification3978" and
3031   "noDerivatives3978" are similar to their counterparts above, except
3032   that they use text specified in RFC 3978 (March 2005).
3033
3034D.1.2.3.  Historic Values: '*3667'
3035
3036   The attribute values "full3667", "noModification3667" and
3037   "noDerivatives3667" are similar to their counterparts above, except
3038   that they use text specified in RFC 3667 (February 2004).
3039
3040D.1.2.4.  Historic Values: '*2026'
3041
3042   The attribute values "full2026" and "noDerivativeWorks2026" are
3043   similar to their counterparts above, except that they use text
3044   specified in RFC 2026 (October 1996).
3045
3046   The special value "none" was also used back then, and denied the IETF
3047   any rights beyond publication as Internet Draft.
3048
3049D.2.  The /rfc/@category Attribute
3050
3051   For RFCs, the "category" determines the "maturity level" (see Section
3052   4 of [RFC2026]).  The allowed values are "std" for "Standards Track",
3053   "bcp" for "BCP", "info" for "Informational", "exp" for
3054   "Experimental", and "historic" for - surprise - "Historic".
3055
3056   For Internet Drafts, the category attribute is not needed, but _will_
3057   appear on the front page ("Intended Status").  Supplying this
3058   information can be useful, because reviewers may want to know.
3059
3060      Note: the Standards Track consists of "Proposed Standard", "Draft
3061      Standards", and "Internet Standard".  These do not appear in the
3062      boilerplate, thus the category attribute doesn't handle them.
3063      However, this information can be useful for validity checkers, and
3064      thus "rfc2629.xslt" supports an extension attribute for that
3065      purpose (see Section 11.26 for details).
3066
3067D.3.  The /rfc/@submissionType Attribute
3068
3069   The RFC Editor publishes documents from different "document streams",
3070   of which the "IETF stream" of course is the most prominent one.
3071   Other streams are the "independent stream" (used for things like
3072   administrative information or April 1st RFCs), the "IAB stream"
3073   (Internet Architecture Board) and the "IRTF stream" (Internet
3074   Research Task Force).
3075
3076
3077
3078
3079Reschke                                                        [Page 55]
3080
3081Documentation             RFC2629 through XSLT             November 2012
3082
3083
3084   Not surprisingly, the values for the attribute are "IETF" (the
3085   default value), "independent", "IAB", and "IRTF".
3086
3087   Historically, this did not affect the final appearance of RFCs,
3088   except for subtle differences in Copyright notices.  Nowadays (as of
3089   [RFC5741]), the stream name appears in the first line of the front
3090   page, and it also affects the text in the "Status Of This Memo"
3091   section.
3092
3093   For current documents, setting "submissionType" attribute will have
3094   the following effect:
3095
3096   o  For RFCs, the stream name appears in the upper left corner of the
3097      first page (in Internet Drafts, this is either "Network Working
3098      Group", or the value of the "<workgroup>" element).
3099
3100   o  For RFCs, if affects the whole "Status Of This Memo" section (see
3101      Section 3.2.2 of [RFC5741]).
3102
3103   o  For all RFCs and Internet Drafts, it determines whether the
3104      "Copyright Notice" mentions the Copyright on Code Components (see
3105      TLP, Section "Text To Be Included in IETF Documents").
3106
3107D.4.  The /rfc/@consensus Attribute
3108
3109   For some of the publication streams (see Appendix D.3), the "Status
3110   Of This Memo" section depends on whether there was a consensus to
3111   publish (again, see Section 3.2.2 of [RFC5741]).
3112
3113   The "consensus" attribute ("yes"/"no", defaulting to "yes") can be
3114   used to supply this information.  The effect for the various streams
3115   is:
3116
3117   o  "independent" and "IAB": none.
3118
3119   o  "IETF": mention that there was an IETF consensus.
3120
3121   o  "IRTF": mention that there was a research group consensus (where
3122      the name of the research group is extracted from the "<workgroup>"
3123      element).
3124
3125D.5.  The /rfc/@number Attribute
3126
3127   For RFCs, this attribute supplies the RFC number.
3128
3129
3130
3131
3132
3133
3134
3135Reschke                                                        [Page 56]
3136
3137Documentation             RFC2629 through XSLT             November 2012
3138
3139
3140D.6.  The /rfc/@docName Attribute
3141
3142   For Internet Drafts, this specifies the draft name (which appears
3143   below the title).  The file extension is _not_ part of the draft, so
3144   in general it should end with the current draft number ("-", plus two
3145   digits).
3146
3147      Note: "Idnits" (<http://tools.ietf.org/tools/idnits/>) checks the
3148      in-document draft name for consistency with the filename of the
3149      submitted document.
3150
3151D.7.  The /rfc/@obsoletes Attribute
3152
3153   The RFC Editor maintains a database
3154   (<http://www.rfc-editor.org/rfc.html>) of all RFCs, including
3155   information about which one obsoletes which.  Upon publication of an
3156   RFC, this database is updated from the data on the front page.
3157
3158   This attribute takes a list of comma-separated RFC _numbers_.  Do
3159   _not_ put the string "RFC" here.
3160
3161D.8.  The /rfc/@updates Attribute
3162
3163   This is like "obsoletes", but for the "updates" relation.
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             November 2012
3194
3195
3196Appendix E.  License
3197
3198   Copyright (c) 2006-2010, Julian Reschke
3199   (julian.reschke@greenbytes.de)
3200
3201   All rights reserved.
3202
3203   Redistribution and use in source and binary forms, with or without
3204   modification, are permitted provided that the following conditions
3205   are met:
3206
3207   o  Redistributions of source code must retain the above copyright
3208      notice, this list of conditions and the following disclaimer.
3209
3210   o  Redistributions in binary form must reproduce the above copyright
3211      notice, this list of conditions and the following disclaimer in
3212      the documentation and/or other materials provided with the
3213      distribution.
3214
3215   o  Neither the name of Julian Reschke nor the names of its
3216      contributors may be used to endorse or promote products derived
3217      from this software without specific prior written permission.
3218
3219   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
3220   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3221   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
3222   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
3223   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
3224   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
3225   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3226   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3227   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3228   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3229   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247Reschke                                                        [Page 58]
3248
3249Documentation             RFC2629 through XSLT             November 2012
3250
3251
3252Appendix F.  Change Logs
3253
3254F.1.  Package
3255
3256   2006-01-01  Switch to BSD License.
3257
3258   2007-01-12  Update to xml2rfc v1.33pre2.
3259
3260   2007-03-31  Update to xml2rfc v1.33pre3.
3261
3262   2007-05-01  Add XSLT test cases.
3263
3264   2008-07-18  Experimental support for inlined rdf:Description elements
3265      (ignored by the formatter, extracted by rfc2629grddl).
3266
3267   2008-12-04  Update to xml2rfc v1.34pre2.
3268
3269   2009-02-24  Experimental support for February 2009 boilerplate
3270      changes, and for the x:boilerplate element.
3271
3272   2009-07-08  Support new boilerplate ordering in RFCs published since
3273      July 2009.  Fix problems with one-column text tables.
3274
3275   2009-07-19  When possible, calculate the actual Expiry date for
3276      Internet Drafts (full date must be available).
3277
3278   2009-08-01  For '$xml2rfc-ext-authors-section='end'", move the index
3279      in front of the authors section.
3280
3281   2009-08-04  Consider /rfc/@ipr="pre5378Trust200902" when producing
3282      RFCs, not IDs.
3283
3284   2009-08-29  Support alignment for artwork containing images (as
3285      opposed to, well, artwork).
3286
3287   2009-09-01  Allow xref in cref (as extension).
3288
3289   2009-09-14  Refactor handling of processing instructions.
3290
3291   2009-09-24  Fix typo in Status Of This Memo, present since November
3292      2008.  Fix formatting of iprExtract attribute.  Starting with
3293      Internet Draft publication dates after 2009-11-30: use new Trust
3294      Legal Provisions text; for Internet Drafts: move Abstract up, and
3295      move "pre5378" escape clause to the Copyright Notice.  Add support
3296      for refparent PI.  For RFCs: use new TLP text as of September
3297      2009.  Incorporate xml2rfc v1.34pre4.
3298
3299
3300
3301
3302
3303Reschke                                                        [Page 59]
3304
3305Documentation             RFC2629 through XSLT             November 2012
3306
3307
3308   2009-10-06  Starting with Internet Draft publication dates after
3309      2009-10-31: use new Trust Legal Provisions text; for Internet
3310      Drafts: move Abstract up, and move "pre5378" escape clause to the
3311      Copyright Notice.  Incorporate xml2rfc v1.34pre5.
3312
3313   2009-10-27  Upgrade to xml2rfc v1.34.
3314
3315   2010-01-08  For RFC generation (not IDs), experimentally support RFC
3316      5741 headers and boilerplate and Trust Legal Provisions 4.0.
3317
3318   2010-03-31  Upgrade to xml2rfc v1.35.
3319
3320   2010-06-27  Be consistent with xml2rfc.tcl in formatting initials
3321      (truncate after the first); see
3322      <http://trac.tools.ietf.org/tools/xml2rfc/trac/ticket/10>.
3323
3324   2010-08-31  Experimental support for prose in references.
3325
3326   2011-01-27  Update to xml2rfc v1.36pre1.
3327
3328   2011-04-17  Update to xml2rfc v1.36.  Add support for more /rfc/@ipr
3329      values when producing RFCs.
3330
3331F.2.  amazon-asin.xslt
3332
3333   2003-11-16  Initial release.
3334
3335   2005-04-02  Fix two DTD issues.
3336
3337F.3.  check-references.xslt
3338
3339   2003-11-16  Initial release.
3340
3341   2004-05-11  Add document status; print references type.
3342
3343   2005-01-01  Add experimental check for ID status.
3344
3345   2005-04-01  Add fixes from Bill Fenner.
3346
3347   2005-12-03  Add checks against local copy of
3348      <http://www.w3.org/2002/01/tr-automation/tr.rdf>.
3349
3350   2006-07-22  Add checks for standards levels.
3351
3352   2006-08-06  "check-ietf-references.xslt" replaced by "check-
3353      references.xslt".
3354
3355
3356
3357
3358
3359Reschke                                                        [Page 60]
3360
3361Documentation             RFC2629 through XSLT             November 2012
3362
3363
3364   2007-01-04  Use information online at <http://tools.ietf.org/> to
3365      retrieve Internet-Draft status information.
3366
3367   2007-06-16  Fix bug looking up ref type when inside change markup.
3368
3369   2008-06-14  Enhance output when draft was updated, and then published
3370      as RFC.
3371
3372   2008-07-12  Add XSLT2-based link target checking.
3373
3374   2008-08-10  Change keywords for "intended-level" to proposed/draft/
3375      internet, optionally extract intended level from /rfc/@
3376      x:maturity-level attribute.
3377
3378F.4.  gen-reference-graph.xslt
3379
3380   2006-09-03  New.
3381
3382   2007-06-07  Use Carlisle method [16] to define exslt:node-set in
3383      msxsml (which means that the stylesheet can now be used with MSXML
3384      as well).
3385
3386   2007-10-15  Use W3C data from tr.rdf as well (experimental).
3387
3388F.5.  rfc2629.xslt
3389
3390   2001-03-28  Code rearranged, generate numbered section anchors for
3391      paragraphs (t) as well.  Fixes in index handling.
3392
3393   2001-04-12  Moved HTML output into XHTML namespace.
3394
3395   2001-10-02  Fixed default location for RFCs and numbering of section
3396      references.  Support ?rfc editing processing instruction.
3397
3398   2001-10-07  Made telephone number links active.
3399
3400   2001-10-08  Support for vspace element.
3401
3402   2001-10-09  Experimental support for rfc-issue PI.
3403
3404   2001-11-11  Support rfc private PI.  Removed bogus code reporting the
3405      WG in the header.
3406
3407   2001-11-11  Support rfc private PI.  Removed bogus code reporting the
3408      WG in the header.
3409
3410
3411
3412
3413
3414
3415Reschke                                                        [Page 61]
3416
3417Documentation             RFC2629 through XSLT             November 2012
3418
3419
3420   2001-12-17  Support title attribute on references element
3421
3422   2002-01-05  Support for list/@style="@format"
3423
3424   2002-01-09  Display "closed" RFC issues as deleted
3425
3426   2002-01-14  Experimentally and optionally parse XML encountered in
3427      artwork elements (requires MSXSL).
3428
3429   2002-01-27  Some cleanup.  Moved RFC issues from PIs into namespaced
3430      elements.
3431
3432   2002-01-29  Added support for sortrefs PI.  Added support for figure
3433      names.
3434
3435   2002-02-07  Highlight parts of artwork which are too wide (72
3436      characters).
3437
3438   2002-02-12  Code rearrangement for static texts.  Fixes for section
3439      numbering.  TOC generation rewritten.
3440
3441   2002-02-15  Support for irefs in sections; support iref @primary=true
3442
3443   2002-03-03  Moved anchor prefix into a constant.  Added sanity checks
3444      on user anchor names.
3445
3446   2002-03-23  Bugfix in detection of matching org names when creating
3447      the header.  Fixed sorting in subitems.
3448
3449   2002-04-02  Fix TOC link HTML generation when no TOC is generated
3450      (created broken HTML table code).
3451
3452   2002-04-03  Made rendering of references more tolerant re: missing
3453      parts.
3454
3455   2002-04-08  Fixed reference numbering when references are split into
3456      separate sections.
3457
3458   2002-04-16  Fix default namespace (shouldn't be set for HTML output
3459      method).
3460
3461   2002-04-19  Lowercase internal CSS selectors for Mozilla compliance.
3462      Do not put TOC into ul element.
3463
3464   2002-04-21  Make numbered list inside numbered lists use alphanumeric
3465      numbering.
3466
3467
3468
3469
3470
3471Reschke                                                        [Page 62]
3472
3473Documentation             RFC2629 through XSLT             November 2012
3474
3475
3476   2002-05-05  Updated issue/editing support.
3477
3478   2002-05-15  Bugfix for section numbering after introduction of ed:
3479      replace
3480
3481   2002-06-21  When producing private documents, do not include document
3482      status, copyright etc.
3483
3484   2002-07-08  Fix xrefs to Appendices.
3485
3486   2002-07-19  Make artwork lightyellow for easier reading. (fielding)
3487
3488   2002-10-09  Translate references title to anchor name to avoid non-
3489      uri characters. (fielding)
3490
3491   2002-10-13  Support for tocdepth PI.
3492
3493   2002-11-03  Added temporariry workaround for Mozilla/Transformiix
3494      result tree fragment problem. (search for
3495      'http://bugzilla.mozilla.org/show_bug.cgi?id=143668')
3496
3497   2002-12-25  xref code: attempt to uppercase "section" and "appendix"
3498      when at the start of a sentence.
3499
3500   2003-02-02  fixed code for vspace blankLines="0", enhanced display
3501      for list with "format" style, got rid of HTML blockquote elements,
3502      added support for "hangIndent"
3503
3504   2003-04-10  experimental support for appendix and spanx elements
3505
3506   2003-04-19  fixed counting of list numbers in "format %" styles (one
3507      counter per unique format string).  Added more spanx styles.
3508
3509   2003-05-02  experimental texttable support
3510
3511   2003-05-02  Make mailto links optional (default = none) (jre: default
3512      and PI name changed) (fielding)
3513
3514   2003-05-04  experimental support for HTML link elements; fix default
3515      for table header alignment default
3516
3517   2003-05-06  support for "background" PI.
3518
3519   2003-05-11  change %c format to lowercase alphabetic. add support for
3520      keyword elements (generate META tag). fix various HTML conformance
3521      problems. added experimental support for role attribute. do not
3522      number paragraphs in unnumbered sections. update boilerplate
3523      texts. support for "iprnotified" PI. bugfix list numbering. strip
3524
3525
3526
3527Reschke                                                        [Page 63]
3528
3529Documentation             RFC2629 through XSLT             November 2012
3530
3531
3532      whitespace when building tel: URIs.
3533
3534   2003-05-12  more conformance fixes (layout moved into CSS, move lists
3535      and figures out of para content, do not use tables for list
3536      formatting)
3537
3538   2003-05-13  add DC.Creator meta tag, refactoring
3539
3540   2003-05-16  put nbsps between "section" and section number (xref).
3541
3542   2003-05-18  author summary: add missing comma.
3543
3544   2003-06-06  fix index generation bug (transposed characters in key
3545      generation).  Enhance sentence start detection (xref starting a
3546      section was using lowercase "section").
3547
3548   2003-06-22  exp. support for xref/@format.  Add missing support for
3549      eref w/o content. exp. support for annotations in reference
3550      elements.  Code cleanup reference table formatting.
3551
3552   2003-07-09  Another fix for DC.Creator meta tag creation based on
3553      RFC2731
3554
3555   2003-07-24  Fix namespace name for DC.Creator.
3556
3557   2003-08-06  Cleanup node-set support (only use exslt (saxon, xalan,
3558      libxslt) extension functions; remove Transformix workarounds that
3559      stopped to work in Moz 1.4)
3560
3561   2003-08-09  Generate HTML lang tag.
3562
3563   2003-08-10  Map spanx/verb to HTML "samp" element.  Fix author name
3564      display in references (reverse surname/initials for last author),
3565      add "Ed.".  Fix internal bookmark generation.
3566
3567   2003-08-17  Add DCMI dates, identifiers and abstract.  Add PI to
3568      suppress DCMI generation.  Do not add TOC entry to Copyright
3569      Statement when there is none.  Align RFC2629 PI names and
3570      parameter names.  Change style for inline URIs generated by eref.
3571      Add header and footer support.  Enhance CSS paging properties.
3572      Support topblock PI.  Added hooks for proper XHTML generation
3573      through separate XSLT.  Enhance warning and error messages.  Add
3574      support for artwork image display.  Table formatting fixes
3575      (borders, thead continuation).
3576
3577
3578
3579
3580
3581
3582
3583Reschke                                                        [Page 64]
3584
3585Documentation             RFC2629 through XSLT             November 2012
3586
3587
3588   2003-08-18  Add workaround for MSXML4 node-set and Mozilla node-set
3589      issues (fallback just displays are warning).
3590
3591   2003-10-06  Add workaround for broken pre/ins handling in Mozilla
3592      (see <http://bugzilla.mozilla.org/show_bug.cgi?id=204401>).  Make
3593      use of cite attribute on ed:replace.  CSS cleanup.
3594
3595   2003-10-08  Fix minor issue detecting the same org for the header
3596      (caused by IE's non-standard whitespace handling).  Fix default
3597      handling for /rfc/@category.
3598
3599   2003-11-09  Inherit ed:entered-by from ancestor elements.  Change CSS
3600      color for inserted text to green.  Generate issues-list anchor.
3601      Do not complain about missing targets when the xref element is
3602      below ed:del.  Remove code that attempted to distinguish section/
3603      Section when producing links - always use uppercase.  Fix date
3604      rendering for issue resolutions.
3605
3606   2003-11-29  Fix color values for table backgrounds for issue
3607      rendering.  Change rendering of issue links to use inline-styles.
3608      Add colored issue markers to issues.
3609
3610   2003-12-13  Fix inheritance of ed:entered-by attribute.  Display note
3611      elements inside change tracking as well.
3612
3613   2004-01-18  When PI compact = 'yes', make most CSS print page breaks
3614      conditional.
3615
3616   2004-02-20  Support for RFC3667 IPR changes (xml2rfc 1.22); see <http
3617      ://lists.xml.resource.org/pipermail/xml2rfc/2004-February/
3618      001088.html>.
3619
3620   2004-03-11  Add "(if approved)" to "updates" and "obsoletes" unless
3621      the document has an RFC number.
3622
3623   2004-04-01  Fix RFC3667 output, see <http://lists.xml.resource.org/
3624      pipermail/xml2rfc/2004-April/001208.html>.
3625
3626   2004-04-04  Add support for section/top attribute.  Move references
3627      into plain section container.
3628
3629   2004-04-06  Do not emit identical para anchors for deleted content.
3630
3631   2004-04-14  Fix references TOC generation when there are no
3632      references.
3633
3634
3635
3636
3637
3638
3639Reschke                                                        [Page 65]
3640
3641Documentation             RFC2629 through XSLT             November 2012
3642
3643
3644   2004-04-24  Fix RFC3667 output, see
3645      <http://xml.resource.org/pipermail/xml2rfc/2004-April/
3646      001246.html>.
3647
3648   2004-05-09  Add custom support for generating compound index
3649      documents.  Add anchors for each Index letter.  Add experimental
3650      cref support.  Fix conditional page breaks before References
3651      section.
3652
3653   2004-05-16  Refactor external index generation.
3654
3655   2004-05-20  Rewrite anchor generation for comments.
3656
3657   2004-05-22  Enhance issues rendering (add links to changes).
3658
3659   2004-05-30  Allow single quote as delimiter in processing
3660      instructions as well.  Move block-level issue pointers to floats.
3661      Disable issue pointers for print media.  Add "purple numbers".
3662      Add hrefs to section headings.  Add non-printing index key letter
3663      list to start of index.
3664
3665   2004-06-01  Use &#xb6; instead of # for PNs.
3666
3667   2004-07-18  Add support for list style=letters (thanks Roy F.).  Make
3668      PNs optional; add new PI.
3669
3670   2004-09-05  Fix index links into unnumbered sections.  Bring IPR
3671      boilerplate in-line with xml2rfc 1.25.  Add experimental CSS3
3672      paged media support.  Various HTML fixes.
3673
3674   2004-09-21  Enhance checking of artwork width.
3675
3676   2004-09-26  Add check for unused references.  Uppercase letters in
3677      list style letters when nested into another list.
3678
3679   2004-10-10  Fix internal change track pointers.
3680
3681   2004-11-01  Allow change tracking on references (as a whole).
3682      Rewrite artwork handling so that it allows change tracking inside
3683      artwork.  Also allow a subset of text markup inside artwork, such
3684      as xrefs (note this requires post-processing the source to make it
3685      compliant to RFC2629bis).
3686
3687   2004-11-03  Enhanced placement of iref anchors.
3688
3689
3690
3691
3692
3693
3694
3695Reschke                                                        [Page 66]
3696
3697Documentation             RFC2629 through XSLT             November 2012
3698
3699
3700   2004-11-06  Index: display irefs that appeared (with primary=true)
3701      inside artwork elements in a monospaced font.
3702
3703   2004-11-14  Add special code so that changes in section titles can be
3704      change-tracked.
3705
3706   2005-01-14  Bugfixes for HtmlToXhtml converter.
3707
3708   2005-01-22  Enhance generation of HTML h* elements (for Mozilla
3709      Outliner).
3710
3711   2005-01-31  Put vertical space around top-level TOC entries in TOC.
3712      Switch to pt-based CSS.  Re-arrange top section.  Make hr elements
3713      reflect new-page settings in TXT output (compact-PI).  Fix page
3714      number in footer (CSS print) and add some more experimental
3715      support for paged media (tested with Prince 4.1 alpha).  Rewrite
3716      TOC and Index generation to generate HTML lists.  Cleanup id
3717      generation for paragraphs.  Reduce whitespace in output.  Fix
3718      vspace implementation.  Use right/left dqoutes and copyright sign
3719      where appropriate.
3720
3721   2005-02-04  Add <link> element to references section.  Fix newly
3722      introduced bug in references processing.
3723
3724   2005-02-05  Integrate various fixes/enhancements by Roy Fielding:
3725      spelling of "Authors' Addresses", comma setting in references,
3726      position of "Authors" section, optionally place authors addresses
3727      at end (PI), trailing dots in section numbers, switch to verdana
3728      default font in CSS.  Add experimental support for centered
3729      artwork.
3730
3731   2005-02-09  Fixes in spacing and links of references section titles.
3732      Enhance sorting in references when change tracking is in place.
3733      Re-add figure centering support.  Add missing 2nd part of
3734      "Author's Adresses" fix.
3735
3736   2005-02-25  Align section number format with xml2rfc1.29.
3737
3738   2005-03-28  Get rid of table elements in Author's section.  Add
3739      experimental hCard (<http://developers.technorati.com/wiki/hCard>)
3740      support.
3741
3742   2005-04-03  Add RFC3978-style IPR statement support.
3743      (fenner@research.att.com)
3744
3745
3746
3747
3748
3749
3750
3751Reschke                                                        [Page 67]
3752
3753Documentation             RFC2629 through XSLT             November 2012
3754
3755
3756   2005-04-11  Cleanup author display. hCard related fixes.
3757
3758   2005-05-07  Minor fixes to allow change tracking in doc title.  Add
3759      experimental support for table border styles.  CSS cleanup.
3760
3761   2005-06-18  Implement missing support for references to texttables.
3762
3763   2005-09-25  Use (-moz-)column-count when printing the index.
3764
3765   2005-10-04  Report missing element templates with xsl:message.
3766
3767   2005-10-15  Process t/@anchor.
3768
3769   2005-10-23  More workarounds for Mozilla's broken del/ins handling
3770      (this time for figures).
3771
3772   2005-10-27  lowercase hCard class names
3773
3774   2005-11-22  Enhance diagnostics for XML-in-artwork extension
3775
3776   2005-11-26  Fix formatting of section numbers for sections inserted
3777      into <back>.
3778
3779   2005-12-12  Fix some validity problems when change tracking occured
3780      inside lists.
3781
3782   2005-12-18  Add change tracking inside the index.
3783
3784   2006-02-04  Add prev/next links to highlighted changes (change
3785      tracking extension).
3786
3787   2006-02-10  Catch errors instantiating MSXML component.
3788
3789   2006-02-11  References: add "work in progress" for Internet Drafts.
3790
3791   2006-02-27  Fix front matter (lowercase Internet-Draft, say "Intended
3792      status" for non-RFC documents).  Start work on experimental
3793      extension for simplified internal links.
3794
3795   2006-03-19  Tweaks to IESG Copyright stuff; support submissionType
3796      attribute.  Fix duplicate reference anchors in HTML output.
3797      Reduce HTML Tidy warnings.  Fix reference to normative ASCII
3798      version (now requires trailing ".txt").  Tweaks to hCard
3799      generation.  Started to move non-issue-tracking extensions into
3800      namespace "http://purl.org/net/xml2rfc/ext".
3801
3802
3803
3804
3805
3806
3807Reschke                                                        [Page 68]
3808
3809Documentation             RFC2629 through XSLT             November 2012
3810
3811
3812   2006-03-27  Moved "simple reference" extension into namespace
3813      "http://purl.org/net/xml2rfc/ext" and add documentation.  HTML
3814      conformance enhancements.
3815
3816   2006-04-02  Cleanup special code for automated XHTML XSLT generation.
3817
3818   2006-04-21  Generate <CITE> elements where appropiate.  Introduce
3819      x:blockquote, x:dfn, x:h and x:q elements.
3820
3821   2006-05-06  Introduce x:bcp14 element.
3822
3823   2006-05-14  Fix content model for x:blockquote.
3824
3825   2006-06-18  Add box drawing support (x:bt, x:bc, x:bb).
3826
3827   2006-06-20  HTML validity fixes (legal chars in anchors in index).
3828
3829   2006-06-24  Reduce leading empty lines in artwork.  Move <dt> style
3830      info into CSS.
3831
3832   2006-07-14  Fix rendering of multiple street address entries (missing
3833      line break).
3834
3835   2006-07-24  Add extension for deep linking into RFCs, do not generate
3836      empty list items in TOC output, avoid empty <dt> elements for list
3837      items without hangText attribute.
3838
3839   2006-08-01  Allow @anchor on more elements; start work on Relax NG
3840      grammar for extensions.  Reduce generated style elements (use CSS
3841      classes instead).  Consistently use "id" instead of "name".
3842      Change default target for RFC links to
3843      "http://tools.ietf.org/html/rfcNNNN".
3844
3845   2006-08-06  Include appendices defined in <appendix> elements in TOC
3846      (please consider them deprecated anyhow!).  Generate links to
3847      "http://tools.ietf.org/html/draft-*" for Internet Drafts.  Replace
3848      x:frag by x:rel, allowing any kind of relative reference instead
3849      of just fragments.
3850
3851   2006-08-30  Reduce textual differences between HTML output and what
3852      xml2rfc produces in TXT output mode (section refs/reference
3853      targets).  Add small workaround for Opera 9.0.1's problem with
3854      node-set().
3855
3856   2006-10-29  Fix problem generating internal links to change markup
3857      within references section.  Enhancements when generating numbered
3858      references for deleted references.  Allow inclusion of references
3859      into the index (through include-references-in-index extension).
3860
3861
3862
3863Reschke                                                        [Page 69]
3864
3865Documentation             RFC2629 through XSLT             November 2012
3866
3867
3868      Fix a bug that caused the newer version of the IETF boilerplate to
3869      be produced rather than the pre-RFC3667 one.  Update to RFC4287
3870      boilerplate.
3871
3872   2006-11-11  Add extension attribute x:for-anchor to <iref> handling.
3873
3874   2006-11-26  Experimental (and limited) support for <x:lt>.
3875
3876   2006-12-04  Fix bugs in processing documents that have both the ipr
3877      and the number attribute set on the rfc root element.  Add support
3878      for x:fmt='none' on xrefs.  Add different pre style based on
3879      artwork type attributes (experimental).
3880
3881   2006-12-13  Add x:fmt='anchor' for xref elements.
3882
3883   2007-01-07  Fix root template for compatibility for the exslt:node-
3884      set implementation in Firefox3.
3885
3886   2007-01-29  Avoid empty table entry in front matter when organization
3887      is not specified for an author.
3888
3889   2007-02-10  Allow change tracking in table rows.
3890
3891   2007-03-09  Add hcard profile URI (<http://www.w3.org/2006/03/hcard>)
3892      to head element.  Add warning for misplaced <t> elements (after
3893      section).
3894
3895   2007-03-21  Fix internal linking from reference entries in index for
3896      some xref types.  Minor CSS tweaks contributed by MTR.  Allow
3897      turning on text justification through a PI.  Improve iref anchor
3898      generation to generate less instable anchors.
3899
3900   2007-03-28  Fixes for numbering of ed:inserted references sections.
3901
3902   2007-05-04  Do not generate anchors for edits in deleted sections.
3903      Enhance HTML conformance.
3904
3905   2007-05-19  Enhance diagnostics when using Saxon (needs Saxon's "-l"
3906      command line parameter to keep line number information).  Add
3907      warning when symref PI is missing (default will change in the
3908      future).  Add support for overriding computed section numbers
3909      (when formatting historic documents).
3910
3911   2007-06-07  Change default for symrefs PI to "yes" (see change in
3912      xml2rfc 1.33pre4).  Warn about docName attributes that appear to
3913      contain a file extension.
3914
3915
3916
3917
3918
3919Reschke                                                        [Page 70]
3920
3921Documentation             RFC2629 through XSLT             November 2012
3922
3923
3924   2007-06-26  Workaround author/@initials values without trailing dot,
3925      as in xml2rfc.tcl.
3926
3927   2007-07-14  Enhance index generation for references that use @x:sec
3928      attribute.
3929
3930   2007-09-09  Fix: sortrefs is a nop when symrefs=no.
3931
3932   2007-10-17  Work in progress: add support for referencing sections in
3933      sibling documents by anchor name.
3934
3935   2007-10-17  Work in progress (continued): support for referencing
3936      sections in sibling documents by anchor name.
3937
3938   2007-12-31  Emit warning when updating/obsoleting stuff that's not
3939      referenced.
3940
3941   2008-02-03  Support xml2rfc-1.33pre5's suppress-title attribute on
3942      texttable and figure.
3943
3944   2008-02-06  Extension: allow <eref> below <cref>.
3945
3946   2008-02-17  Extensions: add x:span and x:length-of.
3947
3948   2008-02-20  Add new RFC boilerplate (as changed in 2007-08).
3949
3950   2008-02-27  Improve diagnostics for artwork width problems; add
3951      defaulting of publication dates (requires XSLT processor
3952      supporting exslt:date, or msxml).
3953
3954   2008-02-29  Enhance CSS for link elements in the front header, update
3955      rules for generating "Acknowledgment" statement.
3956
3957   2008-03-01  Use line numbers in diagnostics in Saxon8/9 as well.
3958
3959   2008-03-02  Fix a bug in the logic choosing the boilerplate,
3960      resulting in obsolete text being inserted into IDs.
3961
3962   2008-04-01  Add support for superscript element.
3963
3964   2008-06-28  Add sanity checks for email addresses, allow multiple
3965      email elements.
3966
3967   2008-07-06  Add x:abnf-char-sequence.
3968
3969
3970
3971
3972
3973
3974
3975Reschke                                                        [Page 71]
3976
3977Documentation             RFC2629 through XSLT             November 2012
3978
3979
3980   2008-08-21  Add x:note.
3981
3982   2008-09-06  Add experimental support for SVG images.
3983
3984   2008-09-17  Add experimental support for x:author.  Fix xref/@
3985      format=none.
3986
3987   2008-10-10  Fix a huge bug, causing text content after an XML comment
3988      to be ignored.
3989
3990   2009-02-24  Use table/caption when needed.
3991
3992   2009-03-07  Fix bug that caused text to disappear in the output in
3993      presence of processing instructions.
3994
3995   2009-03-12  Make inlined comments bookmarkable.
3996
3997   2009-04-09  Upgrade to DC-HTML from RFC 2731 (affects head/@profile).
3998
3999   2009-07-08  Remove table/@summary in output; the value getting
4000      inserted was just repeating stuff that appeared in the preamble.
4001
4002   2009-08-01  Implement table alignment (HTML output only for now).
4003
4004   2009-08-18  Replicate Dublin Core "abstract" metadata into meta/@
4005      name=description (search engines do use it).
4006
4007   2009-09-02  Fix default/left alignment of table columns, remove silly
4008      table summmary attributes.
4009
4010   2009-09-24  Support double-sided layout using CSS page:left/right
4011      selectors.
4012
4013   2009-11-27  Generate unordered lists instead of broken definition
4014      lists for list style empty.
4015
4016F.6.  rfc2629toFO.xslt
4017
4018   2003-11-16  Initial release.
4019
4020   2003-11-29  Enhance handling of unknown list styles.
4021
4022   2004-04-04  Update reference section handling.
4023
4024   2004-04-17  Use XSL-WD-1.1-style fo:bookmark and index handling and
4025      add postprocessors for existing implementations.  Unify PDF info
4026      generation by using XEP (postprocessors) will convert.
4027
4028
4029
4030
4031Reschke                                                        [Page 72]
4032
4033Documentation             RFC2629 through XSLT             November 2012
4034
4035
4036   2004-04-20  Add experimental cref support.
4037
4038   2004-06-14  Set correct index-item defaults.
4039
4040   2004-07-18  Add list style=letters.
4041
4042   2004-09-03  Make URLs in text break where they are allowed to break
4043      by inserting zero-width spaces.
4044
4045   2004-09-26  Fix letter-style inside nested lists.
4046
4047   2004-10-31  Update handling of artwork.
4048
4049   2004-11-13  Fix handling of references inside ed:* markup.  Fix
4050      whitespace handling in artwork.
4051
4052   2004-11-27  Irefs in artwork generate monospaced entries in index.
4053
4054   2005-01-31  Fix TOC generation that was broken after changes in main
4055      XSLT.
4056
4057   2005-02-05  Bring in sync with cosmetic changes in rfc2629.xslt.
4058
4059   2005-05-07  Minor fix for change tracking in document title.  Support
4060      for table styles.
4061
4062   2005-06-18  Fix references to tables.
4063
4064   2005-10-15  Process t/@anchor.
4065
4066   2006-02-11  References: add "work in progress" for Internet Drafts.
4067
4068   2006-06-02  Use XSL 1.1 WD Feb 2006.
4069
4070   2007-03-21  Support optional text justification.
4071
4072   2007-05-19  Various improvements in spacing; also allow overriding
4073      the automatic list indentation via list/x:indent.
4074
4075   2009-04-08  Fix spacing in headers; add support for formatting for
4076      double-sided printing.
4077
4078   2009-08-01  Remove surplus empty pages when not generating double-
4079      sided output.
4080
4081
4082
4083
4084
4085
4086
4087Reschke                                                        [Page 73]
4088
4089Documentation             RFC2629 through XSLT             November 2012
4090
4091
4092F.7.  xsl11toAn.xslt
4093
4094   2004-05-17  Initial release.
4095
4096   2006-06-02  Use XSL 1.1 WD Feb 2006.
4097
4098F.8.  xsl11toFop.xslt
4099
4100   2010-08-25  Switch to Apache FOP 1.0.
4101
4102   2009-09-12  Support for FOP 0.20.5 and FOP 0.93 removed.  Please use
4103      FOP 0.95.
4104
4105   2008-03-15  Add a workaround to the fo:inline workaround (sigh).
4106
4107F.9.  xsl11toXep.xslt
4108
4109   2004-05-17  Initial release.
4110
4111   2004-09-04  Fix xep:index-item attributes.
4112
4113   2006-06-02  Use XSL 1.1 WD Feb 2006.
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143Reschke                                                        [Page 74]
4144
4145Documentation             RFC2629 through XSLT             November 2012
4146
4147
4148Index
4149
4150   A
4151      abnf-char-sequence Extension Element  24, 39
4152      allow-markup-in-artwork PI pseudo-attribute  9
4153      alternate HTML LINK element  17
4154      anchor-alias Extension Element  24, 39
4155      Anchors
4156         rfc.abstract  14
4157         rfc.authors  14
4158         rfc.copyright  14
4159         rfc.copyrightnotice  14
4160         rfc.figure.n  14
4161         rfc.figure.u.n  14
4162         rfc.index  14
4163         rfc.ipr  14
4164         rfc.iref.n  14
4165         rfc.note.n  14
4166         rfc.references  14
4167         rfc.section.n  14
4168         rfc.section.n.p.m  14
4169         rfc.status  14
4170         rfc.toc  14
4171         rfc.xref.name.n  14
4172      AntennaHouse XSL Formatter  21
4173      Apache FOP  21
4174      appendix HTML LINK element  17
4175      assign-section-number Extension Element  39
4176      author HTML LINK element  17
4177      authors-section PI pseudo-attribute  9
4178
4179   B
4180      background PI pseudo-attribute  7
4181      bb Extension Element  25, 39
4182      bc Extension Element  25, 39
4183      bcp14 Extension Element  24, 39
4184      blockquote Extension Element  25, 39
4185      boilerplate Extension Element  25, 39
4186      bt Extension Element  26, 39
4187
4188   C
4189      chapter HTML LINK element  17
4190      CHM format  20
4191      comments PI pseudo-attribute  7
4192      compact PI pseudo-attribute  7
4193      contents HTML LINK element  17
4194      copyright HTML LINK element  17
4195      Creator DCMI property  18
4196
4197
4198
4199Reschke                                                        [Page 75]
4200
4201Documentation             RFC2629 through XSLT             November 2012
4202
4203
4204   D
4205      Date.Issued DCMI property  18
4206      DCMI properties
4207         Creator  18
4208         Date.Issued  18
4209         Description.Abstract  18
4210         Identifier  18
4211         isPartOf  18
4212         Relation.Replaces  18
4213      Description.Abstract DCMI property  18
4214      dfn Extension Element  26, 39
4215      duplex PI pseudo-attribute  9
4216
4217   E
4218      editing PI pseudo-attribute  7
4219      Extension Elements
4220         abnf-char-sequence  24, 39
4221         anchor-alias  24, 39
4222         assign-section-number  39
4223         bb  25, 39
4224         bc  25, 39
4225         bcp14  24, 39
4226         blockquote  25, 39
4227         boilerplate  25, 39
4228         bt  26, 39
4229         dfn  26, 39
4230         feedback  26, 39
4231         h  26, 39
4232         highlight  26, 39
4233         include-author  39
4234         length-of  26, 39
4235         link  27, 39
4236         lt  27, 39
4237         note  27, 39
4238         parse-xml  27, 39
4239         prose  28, 39
4240         q  28, 39
4241         rdf:Description  39
4242         ref  28, 39
4243         source  28, 39
4244         span  39
4245         sup  29, 39
4246         x  39
4247
4248   F
4249      feedback Extension Element  26, 39
4250      Firefox
4251         1.*/2.*  16
4252
4253
4254
4255Reschke                                                        [Page 76]
4256
4257Documentation             RFC2629 through XSLT             November 2012
4258
4259
4260         3.*  15
4261      footer PI pseudo-attribute  7
4262
4263   G
4264      generator HTML META element  18
4265      Google Chrome  16
4266      Grammar  39
4267
4268   H
4269      h Extension Element  26, 39
4270      header PI pseudo-attribute  7
4271      highlight Extension Element  26, 39
4272      HTML compliance  17
4273      HTML LINK elements
4274         alternate  17
4275         appendix  17
4276         author  17
4277         chapter  17
4278         contents  17
4279         copyright  17
4280         index  17
4281      HTML META elements
4282         generator  18
4283         keywords  18
4284
4285   I
4286      Identifier DCMI property  18
4287      include PI pseudo-attribute  8
4288      include-author Extension Element  39
4289      include-index PI pseudo-attribute  9
4290      include-references-in-index PI pseudo-attribute  9
4291      index HTML LINK element  17
4292      inline PI pseudo-attribute  7
4293      Internet Explorer 5.5  15
4294      Internet Explorer 6  15
4295      Internet Explorer 7  15
4296      Internet Explorer 8  15
4297      Internet Explorer 9  15
4298      iprnotified PI pseudo-attribute  7
4299      isPartOf DCMI property  18
4300
4301   J
4302      justification PI pseudo-attribute  9
4303
4304   K
4305      keywords HTML META element  18
4306
4307   L
4308
4309
4310
4311Reschke                                                        [Page 77]
4312
4313Documentation             RFC2629 through XSLT             November 2012
4314
4315
4316      length-of Extension Element  26, 39
4317      link Extension Element  27, 39
4318      linkmailto PI pseudo-attribute  7
4319      lt Extension Element  27, 39
4320
4321   M
4322      Microsoft Help  20
4323      Mozilla  15-16
4324      MSXML3  15
4325      MSXML4  15
4326
4327   N
4328      needLines PI pseudo-attribute  8
4329      NoScript  15
4330      note Extension Element  27, 39
4331
4332   O
4333      Opera  16
4334
4335   P
4336      Parameters
4337         xml2rfc-background  7
4338         xml2rfc-comments  7
4339         xml2rfc-compact  7
4340         xml2rfc-editing  7
4341         xml2rfc-ext-allow-markup-in-artwork  9
4342         xml2rfc-ext-authors-section  9
4343         xml2rfc-ext-duplex  9
4344         xml2rfc-ext-include-index  9
4345         xml2rfc-ext-include-references-in-index  9
4346         xml2rfc-ext-justification  9
4347         xml2rfc-ext-parse-xml-in-artwork  9
4348         xml2rfc-ext-sec-no-trailing-dots  9
4349         xml2rfc-ext-support-rfc2731  9
4350         xml2rfc-footer  7
4351         xml2rfc-header  7
4352         xml2rfc-inline  7
4353         xml2rfc-iprnotified  7
4354         xml2rfc-linkmailto  7
4355         xml2rfc-private  7
4356         xml2rfc-refparent  7
4357         xml2rfc-rfcedstyle  7
4358         xml2rfc-sortrefs  7
4359         xml2rfc-symrefs  7
4360         xml2rfc-toc  7
4361         xml2rfc-tocdepth  7
4362         xml2rfc-topblock  7
4363      parse-xml Extension Element  27, 39
4364
4365
4366
4367Reschke                                                        [Page 78]
4368
4369Documentation             RFC2629 through XSLT             November 2012
4370
4371
4372      parse-xml-in-artwork PI pseudo-attribute  9
4373      private PI pseudo-attribute  7, 52
4374      Processing Instruction pseudo attributes
4375         allow-markup-in-artwork  9
4376         authors-section  9
4377         background  7
4378         comments  7
4379         compact  7
4380         duplex  9
4381         editing  7
4382         footer  7
4383         header  7
4384         ijustification  9
4385         include  8
4386         include-index  9
4387         include-references-in-index  9
4388         inline  7
4389         iprnotified  7
4390         linkmailto  7
4391         needLines  8
4392         parse-xml-in-artwork  9
4393         private  7, 52
4394         refparent  7
4395         rfcedstyle  7
4396         sec-no-trailing-dots  9
4397         slides  8
4398         sortrefs  7
4399         strict  8
4400         subcompact  8
4401         support-rfc2731  9
4402         symrefs  7
4403         toc  7
4404         tocdepth  7
4405         tocindent  8
4406         tocompact  8
4407         topblock  7
4408      prose Extension Element  28, 39
4409
4410   Q
4411      q Extension Element  28, 39
4412
4413   R
4414      rdf:Description Extension Element  39
4415      ref Extension Element  28, 39
4416      refparent PI pseudo-attribute  7
4417      Relation.Replaces DCMI property  18
4418      RELAX NG Compact Schema  39
4419      rfc.abstract anchor  14
4420
4421
4422
4423Reschke                                                        [Page 79]
4424
4425Documentation             RFC2629 through XSLT             November 2012
4426
4427
4428      rfc.authors anchor  14
4429      rfc.copyright anchor  14
4430      rfc.copyrightnotice anchor  14
4431      rfc.figure.n anchor  14
4432      rfc.figure.u.n anchor  14
4433      rfc.index anchor  14
4434      rfc.ipr anchor  14
4435      rfc.iref.n anchor  14
4436      rfc.note.n anchor  14
4437      rfc.references anchor  14
4438      rfc.references.n anchor  14
4439      rfc.section.n anchor  14
4440      rfc.section.n.p.m anchor  14
4441      rfc.status anchor  14
4442      rfc.toc anchor  14
4443      rfc.xref.name.n anchor  14
4444      rfcedstyle PI pseudo-attribute  7
4445
4446   S
4447      Safari  16
4448         3.*  16
4449      Saxon  15
4450      Schema  39
4451      sec-no-trailing-dots PI pseudo-attribute  9
4452      slides PI pseudo-attribute  8
4453      sortrefs PI pseudo-attribute  7
4454      source Extension Element  28, 39
4455      span Extension Element  39
4456      strict PI pseudo-attribute  8
4457      subcompact PI pseudo-attribute  8
4458      sup Extension Element  29, 39
4459      support-rfc2731 PI pseudo-attribute  9
4460      symrefs PI pseudo-attribute  7
4461
4462   T
4463      toc PI pseudo-attribute  7
4464      tocdepth PI pseudo-attribute  7
4465      tocindent PI pseudo-attribute  8
4466      tocompact PI pseudo-attribute  8
4467      topblock PI pseudo-attribute  7
4468
4469   X
4470      x Extension Element  39
4471      Xalan  15
4472      xml-stylesheet PI  17
4473      xml2rfc-background parameter  7
4474      xml2rfc-comments parameter  7
4475      xml2rfc-editing parameter  7
4476
4477
4478
4479Reschke                                                        [Page 80]
4480
4481Documentation             RFC2629 through XSLT             November 2012
4482
4483
4484      xml2rfc-ext-allow-markup-in-artwork parameter  9
4485      xml2rfc-ext-authors-section parameter  9
4486      xml2rfc-ext-duplex  9
4487      xml2rfc-ext-include-index parameter  9
4488      xml2rfc-ext-include-references-in-index parameter  9
4489      xml2rfc-ext-justification parameter  9
4490      xml2rfc-ext-parse-xml-in-artwork parameter  9
4491      xml2rfc-ext-sec-no-trailing-dots parameter  9
4492      xml2rfc-ext-support-rfc2731 parameter  9
4493      xml2rfc-footer parameter  7
4494      xml2rfc-header parameter  7
4495      xml2rfc-inline parameter  7
4496      xml2rfc-iprnotified parameter  7
4497      xml2rfc-linkmailto parameter  7
4498      xml2rfc-private parameter  7
4499      xml2rfc-refparent parameter  7
4500      xml2rfc-rfcedstyle parameter  7
4501      xml2rfc-sortrefs parameter  7
4502      xml2rfc-symrefs parameter  7
4503      xml2rfc-toc parameter  7
4504      xml2rfc-tocdepth parameter  7
4505      xml2rfc-topblock parameter  7
4506      xsltproc  15
4507         passing parameters  6
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535Reschke                                                        [Page 81]
4536
4537Documentation             RFC2629 through XSLT             November 2012
4538
4539
4540Author's Address
4541
4542   Julian F. Reschke
4543   greenbytes GmbH
4544   Hafenweg 16
4545   Muenster, NW  48155
4546   Germany
4547
4548   Phone: +49 251 2807760
4549   Email: julian.reschke@greenbytes.de
4550   URI:   http://greenbytes.de/tech/webdav/
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591Reschke                                                        [Page 82]
4592
Note: See TracBrowser for help on using the repository browser.