source: rfc2629xslt/rfc2629xslt.txt @ 689

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

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

  • Property svn:eol-style set to native
File size: 113.7 KB
Line 
1
2
3
4RFC2629 through XSLT                                          J. Reschke
5                                                              greenbytes
6                                                         August 29, 2009
7
8
9            Transforming RFC2629-formatted XML through XSLT
10
11
12Table of Contents
13
14   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
15   2.  Supported RFC2629 elements . . . . . . . . . . . . . . . . . .  4
16     2.1.   Extension elements  . . . . . . . . . . . . . . . . . . .  4
17   3.  Processing Instructions  . . . . . . . . . . . . . . . . . . .  5
18     3.1.   Supported xml2rfc-compatible PIs  . . . . . . . . . . . .  6
19     3.2.   Unsupported xml2rfc-compatible PIs  . . . . . . . . . . .  7
20     3.3.   Extension PIs . . . . . . . . . . . . . . . . . . . . . .  8
21   4.  Anchors  . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
22   5.  Supported XSLT engines . . . . . . . . . . . . . . . . . . . . 14
23     5.1.   Standalone Engines  . . . . . . . . . . . . . . . . . . . 14
24     5.2.   In-Browser Engines  . . . . . . . . . . . . . . . . . . . 14
25   6.  Transforming to HTML . . . . . . . . . . . . . . . . . . . . . 16
26     6.1.   HTML compliance . . . . . . . . . . . . . . . . . . . . . 16
27     6.2.   Standard HTML LINK elements . . . . . . . . . . . . . . . 16
28     6.3.   Standard HTML metadata  . . . . . . . . . . . . . . . . . 17
29     6.4.   Dublin Core (RFC2731) metadata  . . . . . . . . . . . . . 17
30     6.5.   Experimental hCard support  . . . . . . . . . . . . . . . 17
31   7.  Transforming to XHTML  . . . . . . . . . . . . . . . . . . . . 18
32   8.  Transforming to CHM (Microsoft Compiled Help)  . . . . . . . . 19
33   9.  Transforming to PDF  . . . . . . . . . . . . . . . . . . . . . 20
34     9.1.   Via XSL-FO  . . . . . . . . . . . . . . . . . . . . . . . 20
35       9.1.1.  Extension feature matrix . . . . . . . . . . . . . . . 20
36       9.1.2.  Example: producing output for Apache FOP . . . . . . . 21
37     9.2.   Via X(HTML) . . . . . . . . . . . . . . . . . . . . . . . 21
38   10. Generic Extensions . . . . . . . . . . . . . . . . . . . . . . 22
39     10.1.  <abnf-char-sequence> element  . . . . . . . . . . . . . . 22
40     10.2.  <anchor-alias> element  . . . . . . . . . . . . . . . . . 22
41     10.3.  <bcp14> element . . . . . . . . . . . . . . . . . . . . . 22
42     10.4.  <bb> element  . . . . . . . . . . . . . . . . . . . . . . 23
43     10.5.  <bc> element  . . . . . . . . . . . . . . . . . . . . . . 23
44     10.6.  <blockquote> element  . . . . . . . . . . . . . . . . . . 23
45     10.7.  <boilerplate> element . . . . . . . . . . . . . . . . . . 23
46     10.8.  <bt> element  . . . . . . . . . . . . . . . . . . . . . . 24
47     10.9.  <dfn> element . . . . . . . . . . . . . . . . . . . . . . 24
48     10.10. <h> element . . . . . . . . . . . . . . . . . . . . . . . 24
49     10.11. <highlight> element . . . . . . . . . . . . . . . . . . . 24
50     10.12. <length-of> element . . . . . . . . . . . . . . . . . . . 24
51     10.13. <link> element  . . . . . . . . . . . . . . . . . . . . . 24
52
53
54
55Reschke                                                         [Page 1]
56
57Documentation             RFC2629 through XSLT               August 2009
58
59
60     10.14. <lt> element  . . . . . . . . . . . . . . . . . . . . . . 25
61     10.15. <note> element  . . . . . . . . . . . . . . . . . . . . . 25
62     10.16. <parse-xml> element . . . . . . . . . . . . . . . . . . . 25
63     10.17. <q> element . . . . . . . . . . . . . . . . . . . . . . . 25
64     10.18. <ref> element . . . . . . . . . . . . . . . . . . . . . . 25
65     10.19. <source> element  . . . . . . . . . . . . . . . . . . . . 26
66     10.20. <sup> element . . . . . . . . . . . . . . . . . . . . . . 26
67     10.21. Extensions to Xml2rfc <artwork> element . . . . . . . . . 26
68     10.22. Extensions to Xml2rfc <iref> element  . . . . . . . . . . 26
69     10.23. Extensions to Xml2rfc <list> element  . . . . . . . . . . 27
70     10.24. Extensions to Xml2rfc <rfc> element . . . . . . . . . . . 27
71     10.25. Extensions to Xml2rfc <section> element . . . . . . . . . 27
72     10.26. Extensions to Xml2rfc <xref> element  . . . . . . . . . . 27
73   11. Utilities  . . . . . . . . . . . . . . . . . . . . . . . . . . 29
74     11.1.  Checking References . . . . . . . . . . . . . . . . . . . 29
75     11.2.  Generating Graphs from References . . . . . . . . . . . . 31
76     11.3.  Producing reference entries for books . . . . . . . . . . 31
77     11.4.  Down-converting to RFC2629bis DTD . . . . . . . . . . . . 32
78     11.5.  Extracting artwork  . . . . . . . . . . . . . . . . . . . 32
79     11.6.  GRRDL . . . . . . . . . . . . . . . . . . . . . . . . . . 33
80   12. Informative References . . . . . . . . . . . . . . . . . . . . 34
81   Appendix A.  RELAX NG Compact Schema . . . . . . . . . . . . . . . 36
82   Appendix B.  Implementation Notes  . . . . . . . . . . . . . . . . 45
83     B.1.   Recognized type attributes for <artwork> element  . . . . 45
84   Appendix C.  Examples  . . . . . . . . . . . . . . . . . . . . . . 46
85     C.1.   Using the 'Internal Subset' . . . . . . . . . . . . . . . 46
86     C.2.   Customization . . . . . . . . . . . . . . . . . . . . . . 46
87   Appendix D.  License . . . . . . . . . . . . . . . . . . . . . . . 48
88   Appendix E.  Change Logs . . . . . . . . . . . . . . . . . . . . . 49
89     E.1.   Package . . . . . . . . . . . . . . . . . . . . . . . . . 49
90     E.2.   amazon-asin.xslt  . . . . . . . . . . . . . . . . . . . . 49
91     E.3.   check-references.xslt . . . . . . . . . . . . . . . . . . 49
92     E.4.   gen-reference-graph.xslt  . . . . . . . . . . . . . . . . 50
93     E.5.   rfc2629.xslt  . . . . . . . . . . . . . . . . . . . . . . 50
94     E.6.   rfc2629toFO.xslt  . . . . . . . . . . . . . . . . . . . . 61
95     E.7.   xsl11toAn.xslt  . . . . . . . . . . . . . . . . . . . . . 63
96     E.8.   xsl11toFop.xslt . . . . . . . . . . . . . . . . . . . . . 63
97     E.9.   xsl11toFop-0.93.xslt  . . . . . . . . . . . . . . . . . . 63
98     E.10.  xsl11toXep.xslt . . . . . . . . . . . . . . . . . . . . . 63
99   Index  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
100   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 72
101
102
103
104
105
106
107
108
109
110
111Reschke                                                         [Page 2]
112
113Documentation             RFC2629 through XSLT               August 2009
114
115
1161.  Introduction
117
118   This document describes a set of XSLT transformations that can be
119   used to transform RFC2629-compliant XML (see [RFC2629]) to various
120   output formats, such as HTML and PDF.  The main topics are
121
122   o  compliance to the xml2rfc XML element set (Section 2),
123
124   o  support for xml2rfc processing instructions (Section 3),
125
126   o  the names of anchor elements generated in HTML and PDF output
127      (Section 4),
128
129   o  various XSLT engines that can be used (Section 5),
130
131   o  outputting HTML (Section 6) and XHTML (Section 7),
132
133   o  outputting CHM (Compiled Microsoft Help, Section 8),
134
135   o  outputting PDF (Section 9),
136
137   o  extensions to the xml2rfc vocabulary (Section 10).
138
139   o  various utilities (Section 11).
140
141   The full distribution is available at
142   <http://greenbytes.de/tech/webdav/rfc2629xslt.zip>.
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               August 2009
170
171
1722.  Supported RFC2629 elements
173
174   "rfc2629.xslt" supports both all RFC2629 grammar elements and the
175   extensions implemented in xml2rfc 1.33.
176
1772.1.  Extension elements
178
179   "rfc2629.xslt" supports two kind of extension elements, using
180   different XML namespaces.
181
182   The first set contains (hopefully) generally useful extensions, see
183   Section 10.
184
185   The second set is used for change and issue tracking and currently is
186   not documented here.  Please email the author in case you're
187   interested in using these extensions.
188
189
190
191
192
193
194
195
196
197
198
199
200
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               August 2009
226
227
2283.  Processing Instructions
229
230   All PIs can be set as XSLT parameter as well, overriding any value
231   that is found in the source file to be transformed.
232
233   Using processing instructions:
234
235   <?rfc toc="yes"?>
236   <?rfc-ext support-rfc2731="no"?>
237
238   Using XSLT parameters (Saxon):
239
240   java -cp saxon.jar com.icl.saxon.StyleSheet source.xml rfc2629.xslt \
241     xml2rfc-toc=yes xml2rfc-ext-support-rfc2731=no > result.html
242
243   Using XSLT parameters (xsltproc):
244
245   xsltproc --param xml2rfc-toc '"yes"' \
246      --param xml2rfc-ext-support-rfc2731 '"no"' \
247      rfc2629.xslt source.xml > result.html
248
249   (note the required quoting of string parameters)
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               August 2009
282
283
2843.1.  Supported xml2rfc-compatible PIs
285
286   +-------+----------------+--------------------+---------+-----------+
287   | PI    | PI             | XSLT parameter     | default | comment   |
288   | targe | pseudo-attribu | name               |         |           |
289   | t     | te             |                    |         |           |
290   +-------+----------------+--------------------+---------+-----------+
291   | rfc   | background     | xml2rfc-background | (not    |           |
292   |       |                |                    | set)    |           |
293   |       |                |                    |         |           |
294   | rfc   | compact        | xml2rfc-compact    | "no"    | only      |
295   |       |                |                    |         | applies   |
296   |       |                |                    |         | to HTML   |
297   |       |                |                    |         | output    |
298   |       |                |                    |         | method    |
299   |       |                |                    |         | when      |
300   |       |                |                    |         | printing  |
301   |       |                |                    |         |           |
302   | rfc   | comments       | xml2rfc-comments   | (not    |           |
303   |       |                |                    | set)    |           |
304   |       |                |                    |         |           |
305   | rfc   | editing        | xml2rfc-editing    | "no"    |           |
306   |       |                |                    |         |           |
307   | rfc   | footer         | xml2rfc-footer     | (not    |           |
308   |       |                |                    | set)    |           |
309   |       |                |                    |         |           |
310   | rfc   | header         | xml2rfc-header     | (not    |           |
311   |       |                |                    | set)    |           |
312   |       |                |                    |         |           |
313   | rfc   | inline         | xml2rfc-inline     | (not    |           |
314   |       |                |                    | set)    |           |
315   |       |                |                    |         |           |
316   | rfc   | iprnotified    | xml2rfc-iprnotifie | "no"    |           |
317   |       |                | d                  |         |           |
318   |       |                |                    |         |           |
319   | rfc   | linkmailto     | xml2rfc-linkmailto | "yes"   |           |
320   |       |                |                    |         |           |
321   | rfc   | private        | xml2rfc-private    | (not    |           |
322   |       |                |                    | set)    |           |
323   |       |                |                    |         |           |
324   | rfc   | rfcedstyle     | xml2rfc-rfcedstyle | (not    | (limited  |
325   |       |                |                    | set)    | support)  |
326   |       |                |                    |         |           |
327   | rfc   | sortrefs       | xml2rfc-sortrefs   | "no"    |           |
328   |       |                |                    |         |           |
329
330
331
332
333
334
335Reschke                                                         [Page 6]
336
337Documentation             RFC2629 through XSLT               August 2009
338
339
340   | rfc   | symrefs        | xml2rfc-symrefs    | "yes"   | The       |
341   |       |                |                    |         | default   |
342   |       |                |                    |         | has       |
343   |       |                |                    |         | changed   |
344   |       |                |                    |         | from "no" |
345   |       |                |                    |         | to "yes"  |
346   |       |                |                    |         | as of     |
347   |       |                |                    |         | June 6,   |
348   |       |                |                    |         | 2007 and  |
349   |       |                |                    |         | xml2rfc   |
350   |       |                |                    |         | 1.33pre4. |
351   |       |                |                    |         |           |
352   | rfc   | toc            | xml2rfc-toc        | "no"    |           |
353   |       |                |                    |         |           |
354   | rfc   | tocdepth       | xml2rfc-tocdepth   | 99      |           |
355   |       |                |                    |         |           |
356   | rfc   | topblock       | xml2rfc-topblock   | "yes"   |           |
357   +-------+----------------+--------------------+---------+-----------+
358
3593.2.  Unsupported xml2rfc-compatible PIs
360
361   +--------+------------------+---------------------------------------+
362   | PI     | PI               | comment                               |
363   | target | pseudo-attribute |                                       |
364   +--------+------------------+---------------------------------------+
365   | rfc    | include          | incompatible with XML/XSLT processing |
366   |        |                  | model, please use external entities   |
367   |        |                  | instead                               |
368   |        |                  |                                       |
369   | rfc    | needLines        |                                       |
370   |        |                  |                                       |
371   | rfc    | slides           |                                       |
372   |        |                  |                                       |
373   | rfc    | strict           |                                       |
374   |        |                  |                                       |
375   | rfc    | subcompact       |                                       |
376   |        |                  |                                       |
377   | rfc    | tocindent        | (defaults to "yes")                   |
378   |        |                  |                                       |
379   | rfc    | tocompact        |                                       |
380   +--------+------------------+---------------------------------------+
381
382
383
384
385
386
387
388
389
390
391Reschke                                                         [Page 7]
392
393Documentation             RFC2629 through XSLT               August 2009
394
395
3963.3.  Extension PIs
397
398   +------+-----------------+-----------------------+------+-----------+
399   | PI   | PI              | XSLT parameter name   | defa | descripti |
400   | targ | pseudo-attribut |                       | ult  | on        |
401   | et   | e               |                       |      |           |
402   +------+-----------------+-----------------------+------+-----------+
403   | rfc- | allow-markup-in | xml2rfc-allow-markup- | "no" | Enables   |
404   | ext  | -artwork        | in-artwork            |      | support   |
405   |      |                 |                       |      | for       |
406   |      |                 |                       |      | specific  |
407   |      |                 |                       |      | elements  |
408   |      |                 |                       |      | inside    |
409   |      |                 |                       |      | abstract  |
410   |      |                 |                       |      | elements  |
411   |      |                 |                       |      | (using    |
412   |      |                 |                       |      | this      |
413   |      |                 |                       |      | extension |
414   |      |                 |                       |      | makes the |
415   |      |                 |                       |      | document  |
416   |      |                 |                       |      | incompati |
417   |      |                 |                       |      | ble to    |
418   |      |                 |                       |      | the       |
419   |      |                 |                       |      | RFC2629bi |
420   |      |                 |                       |      | s DTD;    |
421   |      |                 |                       |      | see       |
422   |      |                 |                       |      | descripti |
423   |      |                 |                       |      | on of     |
424   |      |                 |                       |      | conversio |
425   |      |                 |                       |      | n XSLT in |
426   |      |                 |                       |      | Section 1 |
427   |      |                 |                       |      | 1.4).     |
428   |      |                 |                       |      |           |
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447Reschke                                                         [Page 8]
448
449Documentation             RFC2629 through XSLT               August 2009
450
451
452   | rfc- | authors-section | xml2rfc-ext-authors-s |      | When      |
453   | ext  |                 | ection                |      | "end",    |
454   |      |                 |                       |      | place the |
455   |      |                 |                       |      | authors   |
456   |      |                 |                       |      | section   |
457   |      |                 |                       |      | at the    |
458   |      |                 |                       |      | end (just |
459   |      |                 |                       |      | before    |
460   |      |                 |                       |      | the       |
461   |      |                 |                       |      | copyright |
462   |      |                 |                       |      | statement |
463   |      |                 |                       |      | s). This  |
464   |      |                 |                       |      | seems to  |
465   |      |                 |                       |      | be the    |
466   |      |                 |                       |      | preferred |
467   |      |                 |                       |      | order in  |
468   |      |                 |                       |      | the       |
469   |      |                 |                       |      | newest    |
470   |      |                 |                       |      | RFCs.     |
471   |      |                 |                       |      |           |
472   | rfc- | duplex          | xml2rfc-ext-duplex    | no   | When set  |
473   | ext  |                 |                       |      | to "yes", |
474   |      |                 |                       |      | format    |
475   |      |                 |                       |      | the PDF   |
476   |      |                 |                       |      | output    |
477   |      |                 |                       |      | for       |
478   |      |                 |                       |      | doublesid |
479   |      |                 |                       |      | ed        |
480   |      |                 |                       |      | printing. |
481   |      |                 |                       |      |           |
482   | rfc- | include-referen | xml2rfc-ext-include-r |      | When set  |
483   | ext  | ces-in-index    | eferences-in-index    |      | to "yes", |
484   |      |                 |                       |      | index     |
485   |      |                 |                       |      | entries   |
486   |      |                 |                       |      | are       |
487   |      |                 |                       |      | generated |
488   |      |                 |                       |      | for all   |
489   |      |                 |                       |      | reference |
490   |      |                 |                       |      | s.        |
491   |      |                 |                       |      |           |
492
493
494
495
496
497
498
499
500
501
502
503Reschke                                                         [Page 9]
504
505Documentation             RFC2629 through XSLT               August 2009
506
507
508   | rfc- | justification   | xml2rfc-ext-justifica | "nev | "never":  |
509   | ext  |                 | tion                  | er"  | never     |
510   |      |                 |                       |      | emit      |
511   |      |                 |                       |      | justified |
512   |      |                 |                       |      | text,     |
513   |      |                 |                       |      | "always": |
514   |      |                 |                       |      | always    |
515   |      |                 |                       |      | emit      |
516   |      |                 |                       |      | justified |
517   |      |                 |                       |      | text,     |
518   |      |                 |                       |      | "print":  |
519   |      |                 |                       |      | only emit |
520   |      |                 |                       |      | justified |
521   |      |                 |                       |      | text for  |
522   |      |                 |                       |      | print     |
523   |      |                 |                       |      | media.    |
524   |      |                 |                       |      |           |
525   | rfc- | parse-xml-in-ar | xml2rfc-parse-xml-in- | "no" | May be    |
526   | ext  | twork           | artwork               |      | used to   |
527   |      |                 |                       |      | enable    |
528   |      |                 |                       |      | parsing   |
529   |      |                 |                       |      | of XML    |
530   |      |                 |                       |      | content   |
531   |      |                 |                       |      | in        |
532   |      |                 |                       |      | figures   |
533   |      |                 |                       |      | (MSXML    |
534   |      |                 |                       |      | only).    |
535   |      |                 |                       |      |           |
536   | rfc- | support-rfc2731 | xml2rfc-ext-support-r | "yes | Decides   |
537   | ext  |                 | fc2731                | "    | whether   |
538   |      |                 |                       |      | the HTML  |
539   |      |                 |                       |      | transform |
540   |      |                 |                       |      | ation     |
541   |      |                 |                       |      | should    |
542   |      |                 |                       |      | generate  |
543   |      |                 |                       |      | META tags |
544   |      |                 |                       |      | according |
545   |      |                 |                       |      | Section 6 |
546   |      |                 |                       |      | .4.       |
547   |      |                 |                       |      |           |
548
549
550
551
552
553
554
555
556
557
558
559Reschke                                                        [Page 10]
560
561Documentation             RFC2629 through XSLT               August 2009
562
563
564   | rfc- | sec-no-trailing | xml2rfc-ext-sec-no-tr |      | When set  |
565   | ext  | -dots           | ailing-dots           |      | to "yes", |
566   |      |                 |                       |      | add       |
567   |      |                 |                       |      | trailing  |
568   |      |                 |                       |      | dots to   |
569   |      |                 |                       |      | section   |
570   |      |                 |                       |      | numbers.  |
571   |      |                 |                       |      | This      |
572   |      |                 |                       |      | seems to  |
573   |      |                 |                       |      | be the    |
574   |      |                 |                       |      | preferred |
575   |      |                 |                       |      | format in |
576   |      |                 |                       |      | the       |
577   |      |                 |                       |      | newest    |
578   |      |                 |                       |      | RFCs.     |
579   +------+-----------------+-----------------------+------+-----------+
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615Reschke                                                        [Page 11]
616
617Documentation             RFC2629 through XSLT               August 2009
618
619
6204.  Anchors
621
622   The transformation automatically generates anchors that are supposed
623   to be stable and predictable and that can be used to identify
624   specific parts of the document.  Anchors are generated both in HTML
625   and XSL-FO content (but the latter will only be used for PDF output
626   when the XSL-FO engine supports producing PDF anchors).
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671Reschke                                                        [Page 12]
672
673Documentation             RFC2629 through XSLT               August 2009
674
675
676                 The following anchors get auto-generated:
677
678     +-----------------------+---------------------------------------+
679     | Anchor name           | Description                           |
680     +-----------------------+---------------------------------------+
681     | rfc.abstract          | Abstract                              |
682     |                       |                                       |
683     | rfc.authors           | Authors section                       |
684     |                       |                                       |
685     | rfc.copyright         | Copyright section                     |
686     |                       |                                       |
687     | rfc.copyrightnotice   | Copyright notice                      |
688     |                       |                                       |
689     | rfc.figure._n_        | Figures (titled)                      |
690     |                       |                                       |
691     | rfc.figure.u._n_      | Figures (untitled)                    |
692     |                       |                                       |
693     | rfc.index             | Index                                 |
694     |                       |                                       |
695     | rfc.ipr               | Intellectual Property                 |
696     |                       |                                       |
697     | rfc.iref._n_          | Internal references                   |
698     |                       |                                       |
699     | rfc.note._n_          | Notes (from front section)            |
700     |                       |                                       |
701     | rfc.references        | References                            |
702     |                       |                                       |
703     | rfc.references._n_    | Additional references                 |
704     |                       |                                       |
705     | rfc.section._n_       | Section _n_                           |
706     |                       |                                       |
707     | rfc.section._n_.p._m_ | Section _n_, paragraph _m_            |
708     |                       |                                       |
709     | rfc.status            | Status of memo                        |
710     |                       |                                       |
711     | rfc.table._n_         | Tables (titled)                       |
712     |                       |                                       |
713     | rfc.table.u._n_       | Tables (untitled)                     |
714     |                       |                                       |
715     | rfc.toc               | Table of contents                     |
716     |                       |                                       |
717     | rfc.xref._name_._n_   | References to reference _n_ to _name_ |
718     +-----------------------+---------------------------------------+
719
720
721
722
723
724
725
726
727Reschke                                                        [Page 13]
728
729Documentation             RFC2629 through XSLT               August 2009
730
731
7325.  Supported XSLT engines
733
734   The transformation requires a non-standard extension function (see
735   exsl:node-set [1]) which is however widely available.  XSLT
736   processors that do not support this extension (or a functional
737   equivalent) currently are not supported.
738
7395.1.  Standalone Engines
740
741   The following XSLT engines are believed to work well:
742
743   o  Windows: MSXML3 and MSXML4 (<http://msdn.microsoft.com/xml>;
744      command line processor "msxsl" is available from Microsoft
745      Download Center [2])
746
747   o  Java: Saxon (<http://saxon.sourceforge.net/>)
748
749   o  Java: Xalan (<http://xml.apache.org/xalan-j/>)
750
751   o  C/C++: xsltproc (libxslt) (<http://xmlsoft.org/XSLT/>, make sure
752      that you have a current version)
753
7545.2.  In-Browser Engines
755
756   The following browsers seem to work fine:
757
758   o  Internet Explorer 5.5 (Windows version, if MSXML3 is installed)
759
760   o  Internet Explorer 6 and newer
761
762   o  Firefox 3.0 and newer
763
764
765      *  Be aware that XSLT execution can be suppressed using
766         NoScript [3]
767
768      *  Firefox does not load external DTDs nor external entities, see
769         Mozilla Bug 22942 [4], thus entities like &nbsp; need to be
770         declared in the internal subset (Appendix C.1)
771
772   o  Safari 3 (starting with version 3.0.4)
773
774   o  Google Chrome (beta available)
775
776   o  Opera 10 (beta version available)
777
778   The following browsers are known not to work properly:
779
780
781
782
783Reschke                                                        [Page 14]
784
785Documentation             RFC2629 through XSLT               August 2009
786
787
788   o  Firefox 1.*/2.*: (missing extension function - see change request
789      at Mozilla BugZilla 193678 [5])
790
791   o  Opera 9.21: execution fails, potentially to a somewhat complex
792      XPath expression (reported to Opera as bug 245725).
793
794   o  Opera 9.5 and 9.6: transformation appears to work, but CSS isn't
795      getting applied (reported to Opera as bug 337388 on 2008-06-12).
796
797   o  Safari 2.* supports client-side XSLT as of MacOS X 10.4, but
798      misses required extension functions.  A problem with stylesheets
799      producing non-ASCII output (such as NBSP characters) has been
800      fixed as of OSX 10.4.4.  Both problems have been reported through
801      Apple's bug tracking system, see <http://drakken.dbc.mtview.ca.us/
802      pipermail/xml2rfc/2005-May/002073.html> and
803      <http://bugs.webkit.org/show_bug.cgi?id=4079>.
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839Reschke                                                        [Page 15]
840
841Documentation             RFC2629 through XSLT               August 2009
842
843
8446.  Transforming to HTML
845
846   Transformation to HTML can be done inside the browser if it supports
847   XSLT.  To enable this, add the following processing instruction to
848   the start of the source file:
849
850     <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
851
852   (and ensure that "rfc2629.xslt" is present).
853
8546.1.  HTML compliance
855
856   The transformation result is supposed to conform to the HTML 4.01
857   strict DTD [HTML].  This can be checked using the W3C's online
858   validator at <http://validator.w3.org>.
859
8606.2.  Standard HTML LINK elements
861
862   LINK elements exist since HTML 2.0.  They can be used to embed
863   content-independant links inside the document.  Unfortunately, only
864   few user agents support this element.  Firefox users may want to
865   check the Link Widgets [6] extension.
866
867                 The following LINK elements are produced:
868
869   +-----------+-------------------------------------------------------+
870   | LINK type | description                                           |
871   +-----------+-------------------------------------------------------+
872   | alternate | for RFCs, a link to the authorative ASCII version on  |
873   |           | the IETF web site                                     |
874   |           |                                                       |
875   | appendic  | pointer to all top-level appendics                    |
876   |           |                                                       |
877   | author    | pointer to "authors" section                          |
878   |           |                                                       |
879   | chapter   | pointer to all top-level sections                     |
880   |           |                                                       |
881   | contents  | pointer to table of contents                          |
882   |           |                                                       |
883   | copyright | pointer to copyright statement                        |
884   |           |                                                       |
885   | index     | pointer to index                                      |
886   +-----------+-------------------------------------------------------+
887
888   The figure below shows how Mozilla Firefox 1.0 displays the Site
889   Navigation Bar for rfc2396.xml.
890
891
892
893
894
895Reschke                                                        [Page 16]
896
897Documentation             RFC2629 through XSLT               August 2009
898
899
9006.3.  Standard HTML metadata
901
902          The following standard HTML META elements are produced:
903
904      +-----------+-------------------------------------------------+
905      | META name | description                                     |
906      +-----------+-------------------------------------------------+
907      | generator | from XSLT engine version and stylesheet version |
908      |           |                                                 |
909      | keywords  | from keyword elements in front section          |
910      +-----------+-------------------------------------------------+
911
9126.4.  Dublin Core (RFC2731) metadata
913
914   Unless turned off using the "rfc-ext support-rfc2731" processing
915   instruction, the transformation will generate metadata according to
916   [RFC2731] and [DC-HTML].
917
918                The following DCMI properties are produced:
919
920   +-------------------------+-----------------------------------------+
921   | META name               | description                             |
922   +-------------------------+-----------------------------------------+
923   | DC.Creator              | from author information in front        |
924   |                         | section                                 |
925   |                         |                                         |
926   | DC.Date.Issued          | from date information in front section  |
927   |                         |                                         |
928   | DC.Description.Abstract | from abstract                           |
929   |                         |                                         |
930   | DC.Identifier           | document URN [RFC2648] from "docName"   |
931   |                         | attribute                               |
932   |                         |                                         |
933   | DC.isPartOf             | RFC ISSN (for RFCs)                     |
934   |                         |                                         |
935   | DC.Relation.Replaces    | from "obsoletes" attribute              |
936   +-------------------------+-----------------------------------------+
937
9386.5.  Experimental hCard support
939
940   The generated author information is formatted in hCard [7] format.
941
942
943
944
945
946
947
948
949
950
951Reschke                                                        [Page 17]
952
953Documentation             RFC2629 through XSLT               August 2009
954
955
9567.  Transforming to XHTML
957
958   Transforming to XHTML requires slightly different XSLT output options
959   and is implemented by the derived transformation script
960   "rfc2629toXHTML.xslt".
961
962      Note: Microsoft Internet Explorer does _not_ support XHTML.
963      Therefore it usually makes more sense to generate plain old HTML.
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007Reschke                                                        [Page 18]
1008
1009Documentation             RFC2629 through XSLT               August 2009
1010
1011
10128.  Transforming to CHM (Microsoft Compiled Help)
1013
1014   To generate a CHM file using Microsoft's HTML Help Compiler (hhc),
1015   three files are required in addition to the HTML file.
1016
1017   1.  hhc - table of contents file (HTML)
1018
1019   2.  hhk - index file (HTML)
1020
1021   3.  hhp - project file (plain text)
1022
1023   The three files are generated with three specific transformations,
1024   each requiring the additional XSLT parameter "basename" to specify
1025   the filename prefix.
1026
1027   Example:
1028
1029   saxon rfc2616.xml rfc2629toHhp.xslt basename=rfc2616  > rfc2616.hhp
1030   saxon rfc2616.xml rfc2629toHhc.xslt basename=rfc2616  > rfc2616.hhc
1031   saxon rfc2616.xml rfc2629toHhk.xslt basename=rfc2616  > rfc2616.hhk
1032   hhc rfc2616.hhp
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063Reschke                                                        [Page 19]
1064
1065Documentation             RFC2629 through XSLT               August 2009
1066
1067
10689.  Transforming to PDF
1069
10709.1.  Via XSL-FO
1071
1072   Transformation to XSL-FO [XSL-FO] format is available through
1073   "rfc2629toFO.xslt" (which includes "rfc2629.xslt", so keep both in
1074   the same folder).
1075
1076   Compared to HTML user agents, XSL-FO engines unfortunately either
1077   come as open source (for instance, Apache FOP) or feature-complete
1078   (for instance, AntennaHouse XSL Formatter), but not both at the same
1079   time.
1080
1081   As Apache FOP needs special workarounds (page breaking, table
1082   layout), and some popular extensions aren't standardized yet, the
1083   translation produces a generic output (hopefully) conforming to
1084   [XSL-FO].  Specific backends ("xsl11toFop-0.95xslt",
1085   "xsl11toXep.xslt", "xsl11toAn.xslt") then provide post-processing for
1086   the individual processors.
1087
1088      Note: the output is currently targeted at Apache FOP 0.95.
1089
10909.1.1.  Extension feature matrix
1091
1092   +------------+-------------+------------+-------------+-------------+
1093   |            | PDF anchors |     PDF    |     PDF     |    Index    |
1094   |            |             |  bookmarks |   document  |   cleanup   |
1095   |            |             |            | information |             |
1096   +------------+-------------+------------+-------------+-------------+
1097   | XSL 1.1    | no, but can |     yes    |   no, but   |     yes     |
1098   | WD [8]     |      be     |            |   uses XEP  |             |
1099   |            | auto-genera |            |    output   |             |
1100   |            |   ted from  |            |  extensions |             |
1101   |            |     "id"    |            |             |             |
1102   |            |  attributes |            |             |             |
1103   |            |             |            |             |             |
1104   | Antenna    |      no     |  yes [10]  |   yes [10]  |   yes [10]  |
1105   | House XSL  |             |  (from XSL |  (from XEP  |  (just page |
1106   | formatter  |             |     1.1    |   document  |  duplicate  |
1107   | [9]        |             | bookmarks) |    info)    | elimination |
1108   |            |             |            |             |  , from XSL |
1109   |            |             |            |             |   1.1 page  |
1110   |            |             |            |             |    index)   |
1111   |            |             |            |             |             |
1112   | Apache     |     yes     |  yes (from |     yes     |      no     |
1113   | FOP [11]   |             |   XSL 1.1  |             |             |
1114   |            |             | bookmarks) |             |             |
1115   |            |             |            |             |             |
1116
1117
1118
1119Reschke                                                        [Page 20]
1120
1121Documentation             RFC2629 through XSLT               August 2009
1122
1123
1124   | RenderX    |      no     |  yes [13]  |   yes [13]  |   yes [13]  |
1125   | XEP [12]   |             |  (from XSL |             |  (from XSL  |
1126   |            |             |     1.1    |             |   1.1 page  |
1127   |            |             | bookmarks) |             |    index)   |
1128   +------------+-------------+------------+-------------+-------------+
1129
11309.1.2.  Example: producing output for Apache FOP
1131
1132   Example:
1133
1134   saxon rfc2616.xml rfc2629toFo.xslt > tmp.fo
1135   saxon tmp.fo xsl11toFop-0.95.xslt > rfc2629.fo
1136
11379.2.  Via X(HTML)
1138
1139   PDF output can also be produced directly from (X)HTML.  One simple
1140   approach is to rely on the browser's printing function, and to use a
1141   printer driver that produces PDF.  Depending on the brower's CSS
1142   capabilities, the output will behave properly with respect to table
1143   breaks etc.
1144
1145   An alternative is PrinceXML (see <http://www.princexml.com/>), which
1146   can produce PDF directly from (X)HTML input, based on the CSS
1147   printing information.
1148
1149   For instance, PDF output with text justification turned on can be
1150   produced with:
1151
1152   saxon input.xml rfc2629toXHTML.xslt xml2rfc-ext-justification=print \
1153     > output.xhtml
1154   prince output.xhtml output.pdf
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175Reschke                                                        [Page 21]
1176
1177Documentation             RFC2629 through XSLT               August 2009
1178
1179
118010.  Generic Extensions
1181
1182   This section documents extensions implemented in "rfc2629.xslt",
1183   using the extension namespace "http://purl.org/net/xml2rfc/ext".
1184
118510.1.  <abnf-char-sequence> element
1186
1187   Converts the contained quoted string into a hex-encoded character
1188   sequence, for use in case-sensitive ABNF productions.
1189
1190   For instance, "<x:abnf-char-sequence>"HTTP"</x:abnf-char-sequence>"
1191   gets converted to "%x48.54.54.50".
1192
119310.2.  <anchor-alias> element
1194
1195   Using its "value" attribute, this element allows the definition of an
1196   internal link target alias for the enclosing element.  This alias can
1197   then be used with the <ref> element for intra-document references.
1198
1199   Note that the anchor alias is not subject to the naming constraints
1200   that apply to anchor elements (which are XML names).
1201
120210.3.  <bcp14> element
1203
1204   This element marks the content as being one of the normative keywords
1205   defined in [RFC2119].
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231Reschke                                                        [Page 22]
1232
1233Documentation             RFC2629 through XSLT               August 2009
1234
1235
1236   The DOCTYPE definition below allows using these keywords using XML
1237   entity expansion: such as in "...server &MUST; accept...".
1238
1239   <!DOCTYPE rfc [
1240    <!ENTITY MAY "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1241      >MAY</bcp14>">
1242    <!ENTITY MUST "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1243      >MUST</bcp14>">
1244    <!ENTITY MUST-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1245      >MUST NOT</bcp14>">
1246    <!ENTITY OPTIONAL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1247      >OPTIONAL</bcp14>">
1248    <!ENTITY RECOMMENDED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1249      >RECOMMENDED</bcp14>">
1250    <!ENTITY REQUIRED "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1251      >REQUIRED</bcp14>">
1252    <!ENTITY SHALL "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1253      >SHALL</bcp14>">
1254    <!ENTITY SHALL-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1255      >SHALL NOT</bcp14>">
1256    <!ENTITY SHOULD "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1257      >SHOULD</bcp14>">
1258    <!ENTITY SHOULD-NOT "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'
1259      >SHOULD NOT</bcp14>">]>
1260
126110.4.  <bb> element
1262
1263   Marking up a string as <bb> indicates that it represents the bottom
1264   line of a box drawing, replacing the "+" and "-" characters
1265   accordingly.
1266
126710.5.  <bc> element
1268
1269   Marking up a string as <bc> indicates that it represents a center
1270   line of a box drawing, replacing the "|" character accordingly.
1271
127210.6.  <blockquote> element
1273
1274   This element is like the "blockquote" element in [HTML] (note this is
1275   a block-level element!).  It should contain one or more <t> child
1276   elements.
1277
127810.7.  <boilerplate> element
1279
1280   Can be used to include boilerplate (status, copyright, ...) into the
1281   front or back section. <section> elements within <x:boilerplate>
1282   appear as unnumbered sections in the output.
1283
1284
1285
1286
1287Reschke                                                        [Page 23]
1288
1289Documentation             RFC2629 through XSLT               August 2009
1290
1291
1292   _This element currently can not be "down-translated" for use in
1293   xml2rfc!_
1294
129510.8.  <bt> element
1296
1297   Marking up a string as <bt> indicates that it represents the top line
1298   of a box drawing, replacing the "+" and "-" characters accordingly.
1299
130010.9.  <dfn> element
1301
1302   This element is like the "dfn" element in [HTML].
1303
130410.10.  <h> element
1305
1306   This element is like the "h" element in [XHTML2].
1307
130810.11.  <highlight> element
1309
1310   Used to highlight text passages, currently only allowed in <artwork>.
1311
1312   Note: this is stripped when generating input for xml2rfc, so please
1313   use with care.
1314
131510.12.  <length-of> element
1316
1317   This element can be used to insert the length of another formatted
1318   section (in decimal).
1319
1320   Example: computing the Content-Length header value
1321
1322   <artwork>
1323   ...
1324   Content-Length: <x:length-of target="req"/>
1325
1326   <x:span anchor="req">123456789
1327   <x:span><artwork/>
1328
1329   The lenght computation counts line ends as two characters (CRLF).
1330
1331   Note that indentation characters in artwork _will_ be counted.  The
1332   "indented" attribute allows to specify the amount of indentation to
1333   be substracted from the computed length.
1334
133510.13.  <link> element
1336
1337   This element can be added as a top-level child element below <rfc> to
1338   indicate additional link information.  It's currently used only when
1339   generating HTML output, in which case an HTML <link> element with
1340
1341
1342
1343Reschke                                                        [Page 24]
1344
1345Documentation             RFC2629 through XSLT               August 2009
1346
1347
1348   identical attributes gets generated.
1349
1350   Example: generating HTML link element
1351
1352           <x:link xmlns="http://purl.org/net/xml2rfc/ext"
1353               rel="Bookmark"
1354               title="IETF WEBDAV Working Group"
1355               href="http://ftp.ics.uci.edu/pub/ietf/webdav/"/>
1356
135710.14.  <lt> element
1358
1359   Used for grouping multiple <t> elements into a single list item.
1360
136110.15.  <note> element
1362
1363   Can be used to add a note, usually indented by a few characters.  It
1364   should contain one or more <t> child elements.
1365
136610.16.  <parse-xml> element
1367
1368   This element instructs the processor to parse the contents as XML and
1369   to warn when there's a problem (requires either MSXML or Saxon8 or
1370   newer).
1371
137210.17.  <q> element
1373
1374   This element is like the "q" element in [HTML].
1375
137610.18.  <ref> element
1377
1378   This element is a simplified variant of the <xref> element, in that
1379   no "target" attribute needs to be specified, instead the text
1380   contents acts as identifier.  That in itself wouldn't be terribly
1381   useful, but together with the <anchor-alias>, it allows referring to
1382   other parts of the document with minimal additional markup.
1383
1384   For instance, given an alias definition such as
1385
1386         <section title="Test" anchor="test">
1387           <x:anchor-alias value="alias1"/>
1388           <x:anchor-alias value="alias 2"/>
1389           ...
1390         </section>
1391
1392   the following simple references
1393
1394         <x:ref>test</x:ref>
1395         <x:ref>alias1</x:ref>
1396
1397
1398
1399Reschke                                                        [Page 25]
1400
1401Documentation             RFC2629 through XSLT               August 2009
1402
1403
1404         <x:ref>alias 2</x:ref>
1405
1406   are equivalent to...:
1407
1408         <xref target="test">test</xref>
1409         <xref target="test">alias1</xref>
1410         <xref target="test">alias 2</xref>
1411
141210.19.  <source> element
1413
1414   Can be used to enhance a <reference> with information about the
1415   location for the XML source.  This can be used by the <xref>
1416   processing code to automatically extract the target section number.
1417
1418   For example:
1419
1420         ...
1421         <xref target="RFC2616" x:fmt="of" x:rel="#PUT" />
1422         ...
1423
1424         <reference target="RFC2616"/>
1425           ...
1426           <x:source href="rfc2616.xml"/>
1427           ...
1428
142910.20.  <sup> element
1430
1431   This element is like the "sup" element in [HTML].
1432
1433   Note: the down conversion to RFC2629 format replaces "x^y" by "x^y".
1434
143510.21.  Extensions to Xml2rfc <artwork> element
1436
1437   Sometimes, artwork occurs inside lists.  To get it indent properly in
1438   xml2rfc's text output, it needs to be indented in the source.  This
1439   is sub-optimal, as this whitespace will also appear in the HTML
1440   output, where it's already indented due to HTML's semantics.
1441
1442   As a workaround, a "x:indent-with" attribute can be specified,
1443   containing a string that will be prepended to each line when
1444   "clean-for-DTD.xslt" is run (see Section 11.4).
1445
144610.22.  Extensions to Xml2rfc <iref> element
1447
1448   The extension attribute below is allowed on the standard <iref>
1449   element:
1450
1451
1452
1453
1454
1455Reschke                                                        [Page 26]
1456
1457Documentation             RFC2629 through XSLT               August 2009
1458
1459
1460   o  x:for-anchor specifies that the <iref> will also be automatically
1461      inserted whenever the specified anchor is cross-referenced -- this
1462      may save entering lots of <iref> instances.  As a special case, a
1463      value of "" (empty string) refers to the anchor attribute of the
1464      closest ancestor.
1465
146610.23.  Extensions to Xml2rfc <list> element
1467
1468   The extension attribute below is allowed on the standard <list>
1469   element:
1470
1471   o  x:indent specifies the amount of indentation for list items in
1472      hanging lists.  This can be useful when the output format, such as
1473      XSL-FO, does not support automatical formatting.  The value takes
1474      an XSL-FO width, such as "5em".  The default is _length of longest
1475      label in characters_ times _0.8em_.
1476
1477   Also, the <list> element can take <x:lt> child elements instead of
1478   <t>, allowing to insert multiple paragraphs into a single list item.
1479
148010.24.  Extensions to Xml2rfc <rfc> element
1481
1482   The extension attributes below are allowed on the standard <rfc>
1483   element:
1484
1485   o  grddl:transformation can be used to reference a GRDDL transform.
1486
1487   o  x:maturiy-level can be used to specify the IETF Standards Track
1488      Maturity Level of "proposed", "draft" or "internet" (see Section
1489      4.1 of [RFC2026]).
1490
149110.25.  Extensions to Xml2rfc <section> element
1492
1493   The extension attribute below is allowed on the standard <list>
1494   element:
1495
1496   o  x:fixed-section-number can be used to specify a fixed section
1497      number.  This can be useful when formatting historic documents
1498      that used a different numbering style.
1499
150010.26.  Extensions to Xml2rfc <xref> element
1501
1502   Three extension attributes are allowed on the standard <xref>
1503   element:
1504
1505   1.  x:sec can be specified to point to a specific section of the
1506       referenced document,
1507
1508
1509
1510
1511Reschke                                                        [Page 27]
1512
1513Documentation             RFC2629 through XSLT               August 2009
1514
1515
1516   2.  x:rel may specify a relative reference to use when linking into
1517       the referenced document (if linking by section number is not
1518       available),
1519
1520   3.  x:fmt defines the text format to be used.
1521
1522   The following formats are defined for the x:fmt attribute:
1523
1524   , (Comma)  [_reference_], Section _sec_
1525
1526   () [_reference_] (Section _sec_)
1527
1528   anchor  Like the default format, but without brackets.
1529
1530   of Section _sec_ of [_reference_]
1531
1532   number  _sec_
1533
1534   none  No output (can be used to have xrefs to references without
1535      having them rendered as such)
1536
1537   sec  Section _sec_
1538
1539   These extensions are currently only supported for <xref> elements
1540   without child nodes.
1541
1542   If the processor knows how to reference the target section, it will
1543   generate a link directly to the target section, such as in [RFC2119],
1544   Section 5.
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567Reschke                                                        [Page 28]
1568
1569Documentation             RFC2629 through XSLT               August 2009
1570
1571
157211.  Utilities
1573
157411.1.  Checking References
1575
1576   "check-references.xslt" can be used to check all references to RFC-
1577   and ID-series IETF publications and to W3C publications (note this
1578   script requires local copies of
1579   <ftp://ftp.isi.edu/in-notes/rfc-index.xml> and
1580   <http://www.w3.org/2002/01/tr-automation/tr.rdf> and will use the XML
1581   status information provided at <http://tools.ietf.org/>).
1582
1583   If the document is supposed to be published on the IETF standards
1584   track, the desired level can be specified using the parameter
1585   "intended-level" as 'proposed', 'draft' or 'internet'.
1586   Alternatively, it can be specified inside the document using the
1587   attribute x:maturity-level on the <rfc> element.
1588
1589   Note: Downward references should be annotated using the <annotate>
1590   element, containing an <xref> to [BCP97].
1591
1592   When an XSLT 2.0 processor is used, links in the document can be
1593   checked as well using the "link-check" paramerer ('yes' or 'no').
1594   Note that this only works for http links to documents of tytpe
1595   text/*.
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623Reschke                                                        [Page 29]
1624
1625Documentation             RFC2629 through XSLT               August 2009
1626
1627
1628   For instance, as of 2008-07-12, the script produces for
1629   <http://greenbytes.de/tech/webdav/rfc2518.xml>:
1630
1631   > saxon rfc2518.xml check-references.xslt intended-status=PROPOSED \
1632     link-check=yes
1633
1634   Normative References:
1635   ISO-11578: not checked
1636   ISO-639: not checked
1637   ISO-8601: not checked
1638   REC-xml-19980210: [FirstEdition] obsoleted by REC-xml-20001006
1639   REC-xml-names-19990114: [FirstEdition] obsoleted by
1640    REC-xml-names-20060816
1641   RFC1766: [PROPOSED STANDARD] obsoleted by RFC3066 RFC3282
1642   RFC2068: [PROPOSED STANDARD] obsoleted by RFC2616
1643   RFC2069: [PROPOSED STANDARD] obsoleted by RFC2617
1644   RFC2119: [BEST CURRENT PRACTICE] (-> BCP0014) ok
1645   RFC2141: [PROPOSED STANDARD] ok
1646   RFC2277: [BEST CURRENT PRACTICE] (-> BCP0018) ok
1647   RFC2396: [DRAFT STANDARD] obsoleted by RFC3986
1648   RFC2279: [DRAFT STANDARD] obsoleted by RFC3629
1649
1650   Informational References:
1651   REC-PICS-labels-961031: [REC] ok
1652   RFC1807: [INFORMATIONAL] ok
1653   RFC2026: [BEST CURRENT PRACTICE] (-> BCP0009) ok
1654   RFC2291: [INFORMATIONAL] ok
1655   RFC2376: [INFORMATIONAL] obsoleted by RFC3023
1656   RFC2413: [INFORMATIONAL] obsoleted by RFC5013
1657   USMARC: not checked
1658   WF: not checked
1659
1660   Link Targets
1661   <http://www.w3.org/TR/1998/REC-xml-19980210>: ok
1662   <http://www.w3.org/TR/1999/REC-xml-names-19990114>: ok
1663   <http://www.dlib.org/dlib/july96/lagoze/07lagoze.html>: ok
1664   <http://www.w3.org/pub/WWW/TR/REC-PICS-labels-961031.html>: ok
1665
1666   Recognized formats in the <seriesInfo> element are:
1667
1668   o  for RFCs, the name attribute must be "RFC", and the value
1669      attribute must be the number of the RFC,
1670
1671   o  for Internet Drafs, the name attribute must be "ID" or "Internet-
1672      Draft", and the value attribute must be the file name of the draft
1673      (including the two-digit running number, but excluding a file
1674      extension),
1675
1676
1677
1678
1679Reschke                                                        [Page 30]
1680
1681Documentation             RFC2629 through XSLT               August 2009
1682
1683
1684   o  for W3C documents, the name attribute must be "W3C", must start
1685      with "W3C ", or must start with "World Wide Web Consortium ", and
1686      the value attribute must be the "shorthand" name of the
1687      specification, such as "REC-xml-19980210".
1688
168911.2.  Generating Graphs from References
1690
1691   "gen-reference-graph.xslt" generates a graph of RFC dependencies,
1692   using the same base data as in "check-references.xslt" (see
1693   Section 11.1).  Its output is a "dot" file, to be processed by
1694   GraphViz (see <http://www.graphviz.org/>).
1695
1696   The picture below shows the RFC dependencies in RFC2629.
1697
1698
169911.3.  Producing reference entries for books
1700
1701   "amazon-asin.xslt" uses the Amazon web services to generate a
1702   <reference> element for a given ASIN (ISBN).
1703
1704   For instance:
1705
1706   <?xml version="1.0" encoding="utf-8"?>
1707   <references>
1708    <reference target="urn:isbn:0134516591">
1709      <front>
1710        <title>Simple Book, The: An Introduction to Internet Management,
1711                  Revised Second Edition</title>
1712        <author surname="Rose"
1713                   fullname="Marshall T. Rose" initials="M. T. ">
1714          <organization/>
1715        </author>
1716        <author surname="Marshall"
1717                   fullname="Rose T. Marshall" initials="R. T.">
1718          <organization/>
1719        </author>
1720        <date year="1996" month="March"/>
1721      </front>
1722      <seriesInfo name="Prentice Hall" value=""/>
1723    </reference>
1724   </references>
1725
1726   Note that the resulting XML usually requires checking, in this case
1727   Amazon's database is playing tricks with Marshall's name...
1728
1729
1730
1731
1732
1733
1734
1735Reschke                                                        [Page 31]
1736
1737Documentation             RFC2629 through XSLT               August 2009
1738
1739
174011.4.  Down-converting to RFC2629bis DTD
1741
1742   "clean-for-DTD.xslt" can be used to down-convert some extensions to a
1743   format that is supported by the base xml2rfc distribution.  Note that
1744   these extensions are experimental (feedback appreciated).
1745
1746   The following mappings are done:
1747
1748   o  <iref> elements inside <artwork> elements are moved in front of
1749      the enclosing <figure> element.
1750
1751   o  <xref> elements inside <artwork> are expanded just like in regular
1752      text (that is, the markup is stripped, but the element is replaced
1753      by the applicable replacement text).
1754
1755   o  <x:anchor-alias> elements get stripped.
1756
1757   o  <x:bcp14> elements get stripped.
1758
1759   o  <x:bb>, <x:bc> and <x:bt> elements get stripped.
1760
1761   o  <x:blockquote> elements get converted to indented text (through a
1762      <list> element).
1763
1764   o  <x:dfn> elements get stripped.
1765
1766   o  <x:h> elements get stripped.
1767
1768   o  <x:link> elements get stripped.
1769
1770   o  <x:note> elements get converted to indented text (through a <list>
1771      element).
1772
1773   o  <x:q> elements get stripped, with apostrophes added around the
1774      text.
1775
1776   o  <x:ref> elements get replaced by <xref> elements, targetting
1777      either the anchor or another anchor with matching <x:anchor-alias>
1778      child element.
1779
178011.5.  Extracting artwork
1781
1782   With "extract-artwork.xslt", artwork elements named through the
1783   "name" attribute can be extracted.  This can be used to automatically
1784   check their syntax (for instance, when ABNFs appear within a figure
1785   element).
1786
1787
1788
1789
1790
1791Reschke                                                        [Page 32]
1792
1793Documentation             RFC2629 through XSLT               August 2009
1794
1795
1796   For instance:
1797   saxon rfc3986.xml extract-artwork.xslt name=uri.abnf
1798
1799   In addition, artwork of a specific type can be extracted, such as
1800   with:
1801   saxon rfc3986.xml extract-artwork.xslt type=abnf
1802
180311.6.  GRRDL
1804
1805   "rfc2629grddl.xslt" extracts RDF information.  This is experimental
1806   work-in-progress.  See <http://www.w3.org/TR/grddl/> for more
1807   information.
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847Reschke                                                        [Page 33]
1848
1849Documentation             RFC2629 through XSLT               August 2009
1850
1851
185212.  Informative References
1853
1854   [BCP97]    Klensin, J. and S. Hartman, "Handling Normative References
1855              to Standards-Track Documents", BCP 97, RFC 4897,
1856              June 2007.
1857
1858   [DC-HTML]  Johnston, P. and A. Powell, "Expressing Dublin Core
1859              metadata using HTML/XHTML meta and link elements", Dublin
1860              Core Metadata Initiative , August 2008,
1861              <http://dublincore.org/documents/2008/08/04/dc-html/>.
1862
1863   [HTML]     Raggett, D., Hors, A., and I. Jacobs, "HTML 4.01
1864              Specification", W3C REC-html401-19991224, December 1999,
1865              <http://www.w3.org/TR/html401/>.
1866
1867   [RFC2026]  Bradner, S., "The Internet Standards Process -- Revision
1868              3", BCP 9, RFC 2026, October 1996.
1869
1870   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
1871              Requirement Levels", BCP 14, RFC 2119, March 1997.
1872
1873   [RFC2616]  Fielding, R., Gettys, J., Mogul, J., Nielsen, H.,
1874              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
1875              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
1876
1877   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
1878              June 1999.
1879
1880   [RFC2648]  Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
1881              August 1999.
1882
1883   [RFC2731]  Kunze, J., "Encoding Dublin Core Metadata in HTML",
1884              RFC 2731, December 1999.
1885
1886   [RFC5234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
1887              Specifications: ABNF", STD 68, RFC 5234, January 2008.
1888
1889   [RNC]      Clark, J., "RELAX NG Compact Syntax", OASIS , Nov 2002, <h
1890              ttp://www.oasis-open.org/committees/relax-ng/
1891              compact-20021121.html>.
1892
1893   [XHTML2]   Axelsson, J., Birbeck, M., Dubinko, M., Epperson, B.,
1894              Ishikawa, M., McCarron, S., Navarro, A., and S. Pemberton,
1895              "XHTML[TM] 2.0", W3C WD-xhtml2-20060726, July 2006,
1896              <http://www.w3.org/TR/xhtml2>.
1897
1898   [XML]      Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E., and
1899              F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth
1900
1901
1902
1903Reschke                                                        [Page 34]
1904
1905Documentation             RFC2629 through XSLT               August 2009
1906
1907
1908              Edition)", W3C REC-xml-20081126, November 2008,
1909              <http://www.w3.org/TR/2008/REC-xml-20081126/>.
1910
1911   [XSL-FO]   Berglund, A., "Extensible Stylesheet Language (XSL)
1912              Version 1.1", W3C REC-xsl11-20061205, Dec 2006,
1913              <http://www.w3.org/TR/2006/REC-xsl11-20061205/>.
1914
1915   [1]   <http://www.exslt.org/exsl/functions/node-set/
1916         exsl.node-set.html>
1917
1918   [2]   <http://www.microsoft.com/downloads/
1919         details.aspx?FamilyID=2FB55371-C94E-4373-B0E9-DB4816552E41>
1920
1921   [3]   <https://addons.mozilla.org/de/firefox/addon/722>
1922
1923   [4]   <https://bugzilla.mozilla.org/show_bug.cgi?id=22942>
1924
1925   [5]   <http://bugzilla.mozilla.org/show_bug.cgi?id=193678>
1926
1927   [6]   <https://addons.mozilla.org/firefox/2933/>
1928
1929   [7]   <http://microformats.org/wiki/hcard>
1930
1931   [8]   <http://www.w3.org/TR/2003/WD-xsl11-20031217/>
1932
1933   [9]   <http://www.antennahouse.com/>
1934
1935   [10]  <http://www.antennahouse.com/XSL20/axf-extension.htm>
1936
1937   [11]  <http://xml.apache.org/fop/>
1938
1939   [12]  <http://xep.xattic.com/>
1940
1941   [13]  <http://xep.xattic.com/xep/spec.html>
1942
1943   [14]  <http://www.thaiopensource.com/relaxng/jing.html>
1944
1945   [15]  <http://dpcarlisle.blogspot.com/2007/05/
1946         exslt-node-set-function.html>
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959Reschke                                                        [Page 35]
1960
1961Documentation             RFC2629 through XSLT               August 2009
1962
1963
1964Appendix A.  RELAX NG Compact Schema
1965
1966   The RelaxNG schema ([RNC]) below can be used to validate input
1967   documents (for instance, with Jing [14]).
1968
1969   _Note that this is work in progress, and doesn't yet cover all
1970   extensions completely._
1971
1972  # WORK IN PROGRESS! PLEASE REPORT PROBLEMS TO THE AUTHOR.
1973
1974  # Define our extension namespace
1975  namespace x = "http://purl.org/net/xml2rfc/ext"
1976
1977  # Define GRDDL namespace
1978  namespace grddl = "http://www.w3.org/2003/g/data-view#"
1979
1980  # Define RDF namespace
1981  namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1982
1983  # Include rfc2629bis RNC grammar
1984  include "rfc2629.rnc" {
1985
1986    # Redefine <artwork> to allow markup
1987    artwork =
1988      element artwork {
1989        attlist.artwork,
1990        (TEXT
1991          | eref
1992          | iref
1993          | spanx
1994          | xref
1995          | x_abnf-char-sequence
1996          | x_bb
1997          | x_bc
1998          | x_bt
1999          | x_highlight
2000          | x_length-of
2001          | x_parse-xml
2002          | x_ref
2003          | x_span
2004          | x_x)*
2005      }
2006
2007    # Redefine <back> to allow boilerplate
2008    back =
2009      element back {
2010        attlist.back,
2011        references*,
2012
2013
2014
2015Reschke                                                        [Page 36]
2016
2017Documentation             RFC2629 through XSLT               August 2009
2018
2019
2020        section*,
2021        x_boilerplate?
2022      }
2023
2024    # Redefine <c> to allow our extension elements
2025    c =
2026      element c {
2027        attlist.c,
2028        (TEXT
2029          | xref
2030          | eref
2031          | iref
2032          | cref
2033          | spanx
2034          | x_ref)*
2035      }
2036
2037    # Redefine <cref> to allow more child elements
2038    cref =
2039      element cref {
2040        attlist.cref,
2041        (TEXT
2042          | eref)*
2043      }
2044
2045    # Redefine <front> to allow boilerplate
2046    front =
2047      element front {
2048        attlist.front,
2049        title,
2050        author+,
2051        date,
2052        area*,
2053        workgroup*,
2054        keyword*,
2055        x_boilerplate?,
2056        abstract?,
2057        note*
2058      }
2059
2060    # Redefine <list> element to allow <x:lt> child elements
2061    \list =
2062      element list {
2063        attlist.list,
2064        (t+ | x_lt+)
2065      }
2066
2067    # Redefine <preamble> to allow our extension elements
2068
2069
2070
2071Reschke                                                        [Page 37]
2072
2073Documentation             RFC2629 through XSLT               August 2009
2074
2075
2076    preamble =
2077      element preamble {
2078        attlist.preamble,
2079        (TEXT
2080          | xref
2081          | eref
2082          | iref
2083          | cref
2084          | spanx
2085          | x_anchor-alias)*
2086      }
2087
2088    # Redefine <postamble> to allow our extension elements
2089    postamble =
2090      element postamble {
2091        attlist.postamble,
2092        (TEXT
2093          | xref
2094          | eref
2095          | iref
2096          | cref
2097          | spanx
2098          | x_bcp14)*
2099      }
2100
2101    # Redefine <reference> to allow our extension elements
2102    reference =
2103      element reference {
2104        attlist.reference,
2105        front,
2106        seriesInfo*,
2107        format*,
2108        annotation*,
2109        x_source?
2110      }
2111
2112    # Redefine <rfc> to allow our extension elements
2113    rfc =
2114      element rfc {
2115        attlist.rfc,
2116        x_link*,
2117        x_assign-section-number*,
2118        front,
2119        middle,
2120        back?
2121      }
2122
2123    # Redefine <section> to allow our extension elements
2124
2125
2126
2127Reschke                                                        [Page 38]
2128
2129Documentation             RFC2629 through XSLT               August 2009
2130
2131
2132    section =
2133      element section {
2134        attlist.section,
2135        (t
2136         | figure
2137         | texttable
2138         | iref
2139         | section
2140         | x_anchor-alias
2141         | x_blockquote
2142         | x_include-author
2143         | x_note
2144         | rdf_Description)*
2145      }
2146
2147    # Redefine <spanx> to allow some markup
2148    spanx =
2149      element spanx {
2150        attlist.spanx,
2151        (TEXT
2152          | iref
2153          | xref
2154          | x_ref)*
2155      }
2156
2157    # Redefine <t> to allow our extension elements
2158    t =
2159      element t {
2160        attlist.t,
2161        (TEXT
2162         | \list
2163         | figure
2164         | xref
2165         | eref
2166         | iref
2167         | cref
2168         | spanx
2169         | vspace
2170         | x_abnf-char-sequence
2171         | x_anchor-alias
2172         | x_bcp14
2173         | x_dfn
2174         | x_h
2175         | x_q
2176         | x_ref
2177         | x_sup)*
2178      }
2179  }
2180
2181
2182
2183Reschke                                                        [Page 39]
2184
2185Documentation             RFC2629 through XSLT               August 2009
2186
2187
2188  # Allow x:indent-with attribute on <artwork>
2189  attlist.artwork &=
2190    attribute x:indent-with { ATEXT }?
2191
2192  # Allow anchor attribute on <author>
2193  attlist.author &=
2194    attribute anchor { xsd:ID }?
2195
2196    # Extend attribute set for <iref> (see Section 10.22)
2197  attlist.iref &=
2198    attribute x:for-anchor { ATEXT }?
2199
2200  # Extend attribute set for <list> (see Section 10.23)
2201  attlist.list &=
2202    attribute x:indent { ATEXT }?
2203
2204  # Extend attribute set for <preamble>
2205  attlist.preamble &=
2206    attribute anchor { xsd:ID }?
2207
2208  # Extend attribute set for <rfc>
2209  attlist.rfc &=
2210    attribute grddl:transformation { ATEXT }?,
2211    attribute x:maturity-level { "proposed" | "draft" | "internet" }?
2212
2213  # Extend attribute set for <section> (see Section 10.25)
2214  attlist.section &=
2215    attribute x:fixed-section-number { ATEXT }?
2216
2217  # Allow anchor attribute on <spanx>
2218  attlist.spanx &=
2219    attribute anchor { xsd:ID }?
2220
2221  # Extend attribute set for <xref> (see Section 10.26)
2222  attlist.xref &=
2223    attribute x:fmt  { "()" | "," | "anchor" | "of" | "number" | "sec" |
2224                       "none" }?,
2225    attribute x:rel  { ATEXT }?,
2226    attribute x:sec  { ATEXT }?
2227
2228  # Conversion to ABNF char sequence (see Section 10.1)
2229  x_abnf-char-sequence =
2230    element x:abnf-char-sequence {
2231      TEXT
2232    }
2233
2234  # Aliasing of anchors (see Section 10.2)
2235  x_anchor-alias =
2236
2237
2238
2239Reschke                                                        [Page 40]
2240
2241Documentation             RFC2629 through XSLT               August 2009
2242
2243
2244    element x:anchor-alias {
2245      attribute value { TEXT },
2246      empty
2247    }
2248
2249  # Including Author information
2250  # (experimental)
2251  x_include-author =
2252    element x:include-author {
2253      attribute target { xsd:IDREF }
2254    }
2255
2256  # Setting section numbers for internally generated sections
2257  # (experimental)
2258  x_assign-section-number =
2259    element x:assign-section-number {
2260      attribute builtin-target { "authors" },
2261      attribute number { TEXT },
2262      empty
2263    }
2264
2265  # Bottom line of box drawing (see Section 10.4)
2266  x_bb =
2267    element x:bb {
2268      (TEXT
2269        | iref
2270        | xref
2271        | x_bb
2272        | x_bc
2273        | x_bt
2274        | x_ref)*
2275    }
2276
2277  # Center line of box drawing (see Section 10.5)
2278  x_bc =
2279    element x:bc {
2280      (TEXT
2281        | iref
2282        | xref
2283        | x_bb
2284        | x_bc
2285        | x_bt
2286        | x_ref)*
2287    }
2288
2289  # BCP14/RFC2119 keywords (see Section 10.3)
2290  x_bcp14 =
2291    element x:bcp14 {
2292
2293
2294
2295Reschke                                                        [Page 41]
2296
2297Documentation             RFC2629 through XSLT               August 2009
2298
2299
2300      "MAY"
2301      | "MUST"
2302      | "MUST NOT"
2303      | "NOT RECOMMENDED"
2304      | "OPTIONAL"
2305      | "RECOMMENDED"
2306      | "REQUIRED"
2307      | "SHALL"
2308      | "SHALL NOT"
2309      | "SHOULD"
2310      | "SHOULD NOT"
2311    }
2312
2313  # Blockquote (see Section 10.6)
2314  x_blockquote =
2315    element x:blockquote {
2316      attribute cite { URI }?,
2317      t+
2318    }
2319
2320  # Boilerplate (see Section 10.6)
2321  x_boilerplate =
2322    element x:boilerplate {
2323      section+
2324    }
2325
2326  # Top line of box drawing (see Section 10.8)
2327  x_bt =
2328    element x:bt {
2329      (TEXT
2330        | iref
2331        | xref
2332        | x_bb
2333        | x_bc
2334        | x_bt
2335        | x_ref)*
2336    }
2337
2338  # Definition (see Section 10.9)
2339  x_dfn =
2340    element x:dfn {
2341      attribute anchor { xsd:ID }?,
2342      (TEXT
2343        | iref)*
2344    }
2345
2346  # Heading (see Section 10.10)
2347  x_h =
2348
2349
2350
2351Reschke                                                        [Page 42]
2352
2353Documentation             RFC2629 through XSLT               August 2009
2354
2355
2356    element x:h {
2357      TEXT
2358    }
2359
2360  # Heading (see Section 10.11)
2361  x_highlight =
2362    element x:highlight {
2363      TEXT
2364    }
2365
2366  # Length Measurement (see Section 10.12)
2367  x_length-of =
2368    element x:length-of {
2369      attribute indented { NUMBER }?,
2370      attribute target { xsd:IDREF },
2371      empty
2372    }
2373
2374  # Link (see Section 10.13)
2375  x_link =
2376    element x:link {
2377      attribute href { URI },
2378      attribute title { TEXT }?,
2379      attribute rel { TEXT },
2380      empty
2381    }
2382
2383  # Extended list item (see Section 10.14)
2384  x_lt =
2385    element x:lt {
2386      attribute anchor { xsd:ID }?,
2387      attribute hangText { TEXT }?,
2388      t+
2389    }
2390
2391  # Note (see Section 10.15)
2392  x_note =
2393    element x:note {
2394      t+
2395    }
2396
2397  # Signal XML content (see Section 10.16)
2398  x_parse-xml =
2399    element x:parse-xml {
2400      TEXT
2401    }
2402
2403  # Inline quote (see Section 10.17)
2404
2405
2406
2407Reschke                                                        [Page 43]
2408
2409Documentation             RFC2629 through XSLT               August 2009
2410
2411
2412  x_q =
2413    element x:q {
2414      TEXT
2415    }
2416
2417  # Anchor reference (see Section 10.18)
2418  x_ref =
2419    element x:ref {
2420      attribute anchor { xsd:ID }?,
2421      TEXT
2422    }
2423
2424  # source information (see Section 10.19)
2425  x_source =
2426    element x:source {
2427      attribute basename { ATEXT }?,
2428      attribute href { URI },
2429      empty
2430    }
2431
2432  # superscript (see Section 10.20)
2433  x_sup =
2434    element x:sup {
2435      TEXT
2436    }
2437
2438  # Inline Span
2439  x_span =
2440    element x:span {
2441      attribute anchor { xsd:ID }?,
2442      (TEXT
2443        | x_parse-xml)*
2444    }
2445
2446  # Nop (for alignment in source)
2447  x_x =
2448    element x:x {
2449      empty
2450    }
2451
2452  # Embed RDF statements
2453  rdf_Description =
2454    element rdf:Description {
2455      rdf_content
2456    }
2457
2458  rdf_content =
2459    ( TEXT | element * { rdf_content })*
2460
2461
2462
2463Reschke                                                        [Page 44]
2464
2465Documentation             RFC2629 through XSLT               August 2009
2466
2467
2468Appendix B.  Implementation Notes
2469
2470B.1.  Recognized type attributes for <artwork> element
2471
2472   Specific values in the <artwork> element's "type" attribute are
2473   recognized and cause a different visual style to be used:
2474
2475   +-------------------------------------+-----------------------------+
2476   | Media Type                          | Comment                     |
2477   +-------------------------------------+-----------------------------+
2478   | abnf                                | ABNF as per [RFC5234]       |
2479   |                                     |                             |
2480   | abnf2616                            | ABNF as per [RFC2616],      |
2481   |                                     | Section 2.1                 |
2482   |                                     |                             |
2483   | application/relax-ng-compact-syntax | Relax NG Compact Syntax as  |
2484   |                                     | per [RNC]                   |
2485   |                                     |                             |
2486   | application/xml-dtd                 | XML DTD                     |
2487   |                                     |                             |
2488   | message/http; msgtype="request"     | HTTP message, as per        |
2489   |                                     | [RFC2616], Section 19.1     |
2490   |                                     |                             |
2491   | message/http; msgtype="response"    | HTTP message, as per        |
2492   |                                     | [RFC2616], Section 19.1     |
2493   +-------------------------------------+-----------------------------+
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519Reschke                                                        [Page 45]
2520
2521Documentation             RFC2629 through XSLT               August 2009
2522
2523
2524Appendix C.  Examples
2525
2526C.1.  Using the 'Internal Subset'
2527
2528   The prolog of the XML document can both be used to refer to an
2529   external DTD, and also to define internal entities (Section 2.8 of
2530   [XML]):
2531
2532   <?xml version="1.0"?>
2533   <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
2534
2535   <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
2536
2537     <!-- use "&MAY;" for a BCP 14 "MAY", see Section 10.3 -->
2538     <!ENTITY MAY
2539     "<bcp14 xmlns='http://purl.org/net/xml2rfc/ext'>MAY</bcp14>">
2540
2541     <!-- re-declare "&nbsp;" as code point 160 (non-breaking space) -->
2542     <!-- you may need this for UAs that do not read external DTDs -->
2543     <!ENTITY nbsp
2544     "&#160;">
2545
2546     <!-- allow later RFC2616 reference using "&rfc2616;" -->
2547     "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml">
2548
2549   ]>
2550
2551   Note: including entities from a remote site will not work in Firefox,
2552   see <https://bugzilla.mozilla.org/show_bug.cgi?id=22942>.
2553
2554C.2.  Customization
2555
2556   The XSLT code can be customized by creating a custom XSLT file that
2557   uses <xsl:import> to include the original code, and just overrides
2558   particular rules.
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575Reschke                                                        [Page 46]
2576
2577Documentation             RFC2629 through XSLT               August 2009
2578
2579
2580   For instance, the code below overrides several attributes in
2581   "rfc2629toFO.xslt", changing the color, spacing and font family for
2582   headers.
2583
2584   <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
2585                  version="1.0">
2586
2587     <xsl:import href="rfc2629toFO.xslt"/>
2588
2589     <xsl:attribute-set name="h1">
2590       <xsl:attribute name="color">darkblue</xsl:attribute>
2591       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
2592       <xsl:attribute name="space-before">24pt</xsl:attribute>
2593     </xsl:attribute-set>
2594
2595     <xsl:attribute-set name="h2">
2596       <xsl:attribute name="color">darkblue</xsl:attribute>
2597       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
2598       <xsl:attribute name="space-before">18pt</xsl:attribute>
2599       <xsl:attribute name="space-after">3pt</xsl:attribute>
2600     </xsl:attribute-set>
2601
2602     <xsl:attribute-set name="h3">
2603       <xsl:attribute name="color">darkblue</xsl:attribute>
2604       <xsl:attribute name="font-family">sans-serif</xsl:attribute>
2605       <xsl:attribute name="space-before">16pt</xsl:attribute>
2606       <xsl:attribute name="space-after">2pt</xsl:attribute>
2607     </xsl:attribute-set>
2608
2609   </xsl:transform>
2610
2611      Note: the name for the attribute sets may change in the future as
2612      more working is done with respect to customizability.  In any
2613      case, overriding the settings in a separate file will be easier to
2614      maintain.  Please contact the author if you find yourself trying
2615      to override style definitions that currently do not use attribute
2616      sets.
2617
2618      Note: the CSS style information used in "rfc2629.xslt" can be
2619      overriden in a similar (but less granular) way: just overwrite the
2620      template called "insertCss".  As for XSL-FO, the class names may
2621      change in future.
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631Reschke                                                        [Page 47]
2632
2633Documentation             RFC2629 through XSLT               August 2009
2634
2635
2636Appendix D.  License
2637
2638   Copyright (c) 2006-2009, Julian Reschke
2639   (julian.reschke@greenbytes.de)
2640
2641   All rights reserved.
2642
2643   Redistribution and use in source and binary forms, with or without
2644   modification, are permitted provided that the following conditions
2645   are met:
2646
2647   o  Redistributions of source code must retain the above copyright
2648      notice, this list of conditions and the following disclaimer.
2649
2650   o  Redistributions in binary form must reproduce the above copyright
2651      notice, this list of conditions and the following disclaimer in
2652      the documentation and/or other materials provided with the
2653      distribution.
2654
2655   o  Neither the name of Julian Reschke nor the names of its
2656      contributors may be used to endorse or promote products derived
2657      from this software without specific prior written permission.
2658
2659   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
2660   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2661   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2662   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
2663   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2664   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2665   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2666   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2667   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2668   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2669   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687Reschke                                                        [Page 48]
2688
2689Documentation             RFC2629 through XSLT               August 2009
2690
2691
2692Appendix E.  Change Logs
2693
2694E.1.  Package
2695
2696   2006-01-01  Switch to BSD License.
2697
2698   2007-01-12  Update to xml2rfc v1.33pre2.
2699
2700   2007-03-31  Update to xml2rfc v1.33pre3.
2701
2702   2007-05-01  Add XSLT test cases.
2703
2704   2008-07-18  Experimental support for inlined rdf:Description elements
2705      (ignored by the formatter, extracted by rfc2629grddl).
2706
2707   2008-12-04  Update to xml2rfc v1.34pre2.
2708
2709   2009-02-24  Experimental support for February 2009 boilerplate
2710      changes, and for the x:boilerplate element.
2711
2712   2009-07-08  Support new boilerplate ordering in RFCs published since
2713      July 2009.  Fix problems with one-column text tables.
2714
2715   2009-07-19  When possible, calculate the actual Expiry date for
2716      Internet Drafts (full date must be available).
2717
2718   2009-08-01  For '$xml2rfc-ext-authors-section='end'", move the index
2719      in front of the authors section.
2720
2721   2009-08-04  Consider /rfc/@ipr="pre5378Trust200902" when producing
2722      RFCs, not IDs.
2723
2724   2009-08-29  Support alignment for artwork containing images (as
2725      opposed to, well, artwork).
2726
2727E.2.  amazon-asin.xslt
2728
2729   2003-11-16  Initial release.
2730
2731   2005-04-02  Fix two DTD issues.
2732
2733E.3.  check-references.xslt
2734
2735   2003-11-16  Initial release.
2736
2737
2738
2739
2740
2741
2742
2743Reschke                                                        [Page 49]
2744
2745Documentation             RFC2629 through XSLT               August 2009
2746
2747
2748   2004-05-11  Add document status; print references type.
2749
2750   2005-01-01  Add experimental check for ID status.
2751
2752   2005-04-01  Add fixes from Bill Fenner.
2753
2754   2005-12-03  Add checks against local copy of
2755      <http://www.w3.org/2002/01/tr-automation/tr.rdf>.
2756
2757   2006-07-22  Add checks for standards levels.
2758
2759   2006-08-06  "check-ietf-references.xslt" replaced by "check-
2760      references.xslt".
2761
2762   2007-01-04  Use information online at <http://tools.ietf.org/> to
2763      retrieve Internet-Draft status information.
2764
2765   2007-06-16  Fix bug looking up ref type when inside change markup.
2766
2767   2008-06-14  Enhance output when draft was updated, and then published
2768      as RFC.
2769
2770   2008-07-12  Add XSLT2-based link target checking.
2771
2772   2008-08-10  Change keywords for "intended-level" to proposed/draft/
2773      internet, optionall extract intended level from /rfc/@
2774      x:maturity-level attribute.
2775
2776E.4.  gen-reference-graph.xslt
2777
2778   2006-09-03  New.
2779
2780   2007-06-07  Use Carlisle method [15] to define exslt:node-set in
2781      msxsml (which means that the stylesheet can now be used with MSXML
2782      as well).
2783
2784   2007-10-15  Use W3C data from tr.rdf as well (experimental).
2785
2786E.5.  rfc2629.xslt
2787
2788   2001-03-28  Code rearranged, generate numbered section anchors for
2789      paragraphs (t) as well.  Fixes in index handling.
2790
2791   2001-04-12  Moved HTML output into XHTML namespace.
2792
2793
2794
2795
2796
2797
2798
2799Reschke                                                        [Page 50]
2800
2801Documentation             RFC2629 through XSLT               August 2009
2802
2803
2804   2001-10-02  Fixed default location for RFCs and numbering of section
2805      references.  Support ?rfc editing processing instruction.
2806
2807   2001-10-07  Made telephone number links active.
2808
2809   2001-10-08  Support for vspace element.
2810
2811   2001-10-09  Experimental support for rfc-issue PI.
2812
2813   2001-11-11  Support rfc private PI.  Removed bogus code reporting the
2814      WG in the header.
2815
2816   2001-11-11  Support rfc private PI.  Removed bogus code reporting the
2817      WG in the header.
2818
2819   2001-12-17  Support title attribute on references element
2820
2821   2002-01-05  Support for list/@style="@format"
2822
2823   2002-01-09  Display "closed" RFC issues as deleted
2824
2825   2002-01-14  Experimentally and optionally parse XML encountered in
2826      artwork elements (requires MSXSL).
2827
2828   2002-01-27  Some cleanup.  Moved RFC issues from PIs into namespaced
2829      elements.
2830
2831   2002-01-29  Added support for sortrefs PI.  Added support for figure
2832      names.
2833
2834   2002-02-07  Highlight parts of artwork which are too wide (72
2835      characters).
2836
2837   2002-02-12  Code rearrangement for static texts.  Fixes for section
2838      numbering.  TOC generation rewritten.
2839
2840   2002-02-15  Support for irefs in sections; support iref @primary=true
2841
2842   2002-03-03  Moved anchor prefix into a constant.  Added sanity checks
2843      on user anchor names.
2844
2845   2002-03-23  Bugfix in detection of matching org names when creating
2846      the header.  Fixed sorting in subitems.
2847
2848   2002-04-02  Fix TOC link HTML generation when no TOC is generated
2849      (created broken HTML table code).
2850
2851
2852
2853
2854
2855Reschke                                                        [Page 51]
2856
2857Documentation             RFC2629 through XSLT               August 2009
2858
2859
2860   2002-04-03  Made rendering of references more tolerant re: missing
2861      parts.
2862
2863   2002-04-08  Fixed reference numbering when references are split into
2864      separate sections.
2865
2866   2002-04-16  Fix default namespace (shouldn't be set for HTML output
2867      method).
2868
2869   2002-04-19  Lowercase internal CSS selectors for Mozilla compliance.
2870      Do not put TOC into ul element.
2871
2872   2002-04-21  Make numbered list inside numbered lists use alphanumeric
2873      numbering.
2874
2875   2002-05-05  Updated issue/editing support.
2876
2877   2002-05-15  Bugfix for section numbering after introduction of ed:
2878      replace
2879
2880   2002-06-21  When producing private documents, do not include document
2881      status, copyright etc.
2882
2883   2002-07-08  Fix xrefs to Appendices.
2884
2885   2002-07-19  Make artwork lightyellow for easier reading. (fielding)
2886
2887   2002-10-09  Translate references title to anchor name to avoid non-
2888      uri characters. (fielding)
2889
2890   2002-10-13  Support for tocdepth PI.
2891
2892   2002-11-03  Added temporariry workaround for Mozilla/Transformiix
2893      result tree fragment problem. (search for
2894      'http://bugzilla.mozilla.org/show_bug.cgi?id=143668')
2895
2896   2002-12-25  xref code: attempt to uppercase "section" and "appendix"
2897      when at the start of a sentence.
2898
2899   2003-02-02  fixed code for vspace blankLines="0", enhanced display
2900      for list with "format" style, got rid of HTML blockquote elements,
2901      added support for "hangIndent"
2902
2903   2003-04-10  experimental support for appendix and spanx elements
2904
2905
2906
2907
2908
2909
2910
2911Reschke                                                        [Page 52]
2912
2913Documentation             RFC2629 through XSLT               August 2009
2914
2915
2916   2003-04-19  fixed counting of list numbers in "format %" styles (one
2917      counter per unique format string).  Added more spanx styles.
2918
2919   2003-05-02  experimental texttable support
2920
2921   2003-05-02  Make mailto links optional (default = none) (jre: default
2922      and PI name changed) (fielding)
2923
2924   2003-05-04  experimental support for HTML link elements; fix default
2925      for table header alignment default
2926
2927   2003-05-06  support for "background" PI.
2928
2929   2003-05-11  change %c format to lowercase alphabetic. add support for
2930      keyword elements (generate META tag). fix various HTML conformance
2931      problems. added experimental support for role attribute. do not
2932      number paragraphs in unnumbered sections. update boilerplate
2933      texts. support for "iprnotified" PI. bugfix list numbering. strip
2934      whitespace when building tel: URIs.
2935
2936   2003-05-12  more conformance fixes (layout moved into CSS, move lists
2937      and figures out of para content, do not use tables for list
2938      formatting)
2939
2940   2003-05-13  add DC.Creator meta tag, refactoring
2941
2942   2003-05-16  put nbsps between "section" and section number (xref).
2943
2944   2003-05-18  author summary: add missing comma.
2945
2946   2003-06-06  fix index generation bug (transposed characters in key
2947      generation).  Enhance sentence start detection (xref starting a
2948      section was using lowercase "section").
2949
2950   2003-06-22  exp. support for xref/@format.  Add missing support for
2951      eref w/o content. exp. support for annotations in reference
2952      elements.  Code cleanup reference table formatting.
2953
2954   2003-07-09  Another fix for DC.Creator meta tag creation based on
2955      RFC2731
2956
2957   2003-07-24  Fix namespace name for DC.Creator.
2958
2959   2003-08-06  Cleanup node-set support (only use exslt (saxon, xalan,
2960      libxslt) extension functions; remove Transformix workarounds that
2961      stopped to work in Moz 1.4)
2962
2963
2964
2965
2966
2967Reschke                                                        [Page 53]
2968
2969Documentation             RFC2629 through XSLT               August 2009
2970
2971
2972   2003-08-09  Generate HTML lang tag.
2973
2974   2003-08-10  Map spanx/verb to HTML "samp" element.  Fix author name
2975      display in references (reverse surname/initials for last author),
2976      add "Ed.".  Fix internal bookmark generation.
2977
2978   2003-08-17  Add DCMI dates, identifiers and abstract.  Add PI to
2979      suppress DCMI generation.  Do not add TOC entry to Copyright
2980      Statement when there is none.  Align RFC2629 PI names and
2981      parameter names.  Change style for inline URIs generated by eref.
2982      Add header and footer support.  Enhance CSS paging properties.
2983      Support topblock PI.  Added hooks for proper XHTML generation
2984      through separate XSLT.  Enhance warning and error messages.  Add
2985      support for artwork image display.  Table formatting fixes
2986      (borders, thead continuation).
2987
2988   2003-08-18  Add workaround for MSXML4 node-set and Mozilla node-set
2989      issues (fallback just displays are warning).
2990
2991   2003-10-06  Add workaround for broken pre/ins handling in Mozilla
2992      (see <http://bugzilla.mozilla.org/show_bug.cgi?id=204401>).  Make
2993      use of cite attribute on ed:replace.  CSS cleanup.
2994
2995   2003-10-08  Fix minor issue detecting the same org for the header
2996      (caused by IE's non-standard whitespace handling).  Fix default
2997      handling for /rfc/@category.
2998
2999   2003-11-09  Inherit ed:entered-by from ancestor elements.  Change CSS
3000      color for inserted text to green.  Generate issues-list anchor.
3001      Do not complain about missing targets when the xref element is
3002      below ed:del.  Remove code that attempted to distinguish section/
3003      Section when producing links - always use uppercase.  Fix date
3004      rendering for issue resolutions.
3005
3006   2003-11-29  Fix color values for table backgrounds for issue
3007      rendering.  Change rendering of issue links to use inline-styles.
3008      Add colored issue markers to issues.
3009
3010   2003-12-13  Fix inheritance of ed:entered-by attribute.  Display note
3011      elements inside change tracking as well.
3012
3013   2004-01-18  When PI compact = 'yes', make most CSS print page breaks
3014      conditional.
3015
3016   2004-02-20  Support for RFC3667 IPR changes (xml2rfc 1.22); see <http
3017      ://lists.xml.resource.org/pipermail/xml2rfc/2004-February/
3018      001088.html>.
3019
3020
3021
3022
3023Reschke                                                        [Page 54]
3024
3025Documentation             RFC2629 through XSLT               August 2009
3026
3027
3028   2004-03-11  Add "(if approved)" to "updates" and "obsoletes" unless
3029      the document has an RFC number.
3030
3031   2004-04-01  Fix RFC3667 output, see <http://lists.xml.resource.org/
3032      pipermail/xml2rfc/2004-April/001208.html>.
3033
3034   2004-04-04  Add support for section/top attribute.  Move references
3035      into plain section container.
3036
3037   2004-04-06  Do not emit identical para anchors for deleted content.
3038
3039   2004-04-14  Fix references TOC generation when there are no
3040      references.
3041
3042   2004-04-24  Fix RFC3667 output, see
3043      <http://xml.resource.org/pipermail/xml2rfc/2004-April/
3044      001246.html>.
3045
3046   2004-05-09  Add custom support for generating compound index
3047      documents.  Add anchors for each Index letter.  Add experimental
3048      cref support.  Fix conditional page breaks before References
3049      section.
3050
3051   2004-05-16  Refactor external index generation.
3052
3053   2004-05-20  Rewrite anchor generation for comments.
3054
3055   2004-05-22  Enhance issues rendering (add links to changes).
3056
3057   2004-05-30  Allow single quote as delimiter in processing
3058      instructions as well.  Move block-level issue pointers to floats.
3059      Disable issue pointers for print media.  Add "purple numbers".
3060      Add hrefs to section headings.  Add non-printing index key letter
3061      list to start of index.
3062
3063   2004-06-01  Use &#xb6; instead of # for PNs.
3064
3065   2004-07-18  Add support for list style=letters (thanks Roy F.).  Make
3066      PNs optional; add new PI.
3067
3068   2004-09-05  Fix index links into unnumbered sections.  Bring IPR
3069      boilerplate in-line with xml2rfc 1.25.  Add experimental CSS3
3070      paged media support.  Various HTML fixes.
3071
3072   2004-09-21  Enhance checking of artwork width.
3073
3074
3075
3076
3077
3078
3079Reschke                                                        [Page 55]
3080
3081Documentation             RFC2629 through XSLT               August 2009
3082
3083
3084   2004-09-26  Add check for unused references.  Uppercase letters in
3085      list style letters when nested into another list.
3086
3087   2004-10-10  Fix internal change track pointers.
3088
3089   2004-11-01  Allow change tracking on references (as a whole).
3090      Rewrite artwork handling so that it allows change tracking inside
3091      artwork.  Also allow a subset of text markup inside artwork, such
3092      as xrefs (note this requires post-processing the source to make it
3093      compliant to RFC2629bis).
3094
3095   2004-11-03  Enhanced placement of iref anchors.
3096
3097   2004-11-06  Index: display irefs that appeared (with primary=true)
3098      inside artwork elements in a monospaced font.
3099
3100   2004-11-14  Add special code so that changes in section titles can be
3101      change-tracked.
3102
3103   2005-01-14  Bugfixes for HtmlToXhtml converter.
3104
3105   2005-01-22  Enhance generation of HTML h* elements (for Mozilla
3106      Outliner).
3107
3108   2005-01-31  Put vertical space around top-level TOC entries in TOC.
3109      Switch to pt-based CSS.  Re-arrange top section.  Make hr elements
3110      reflect new-page settings in TXT output (compact-PI).  Fix page
3111      number in footer (CSS print) and add some more experimental
3112      support for paged media (tested with Prince 4.1 alpha).  Rewrite
3113      TOC and Index generation to generate HTML lists.  Cleanup id
3114      generation for paragraphs.  Reduce whitespace in output.  Fix
3115      vspace implementation.  Use right/left dqoutes and copyright sign
3116      where appropriate.
3117
3118   2005-02-04  Add <link> element to references section.  Fix newly
3119      introduced bug in references processing.
3120
3121   2005-02-05  Integrate various fixes/enhancements by Roy Fielding:
3122      spelling of "Authors' Addresses", comma setting in references,
3123      position of "Authors" section, optionally place authors addresses
3124      at end (PI), trailing dots in section numbers, switch to verdana
3125      default font in CSS.  Add experimental support for centered
3126      artwork.
3127
3128   2005-02-09  Fixes in spacing and links of references section titles.
3129      Enhance sorting in references when change tracking is in place.
3130      Re-add figure centering support.  Add missing 2nd part of
3131      "Author's Adresses" fix.
3132
3133
3134
3135Reschke                                                        [Page 56]
3136
3137Documentation             RFC2629 through XSLT               August 2009
3138
3139
3140   2005-02-25  Align section number format with xml2rfc1.29.
3141
3142   2005-03-28  Get rid of table elements in Author's section.  Add
3143      experimental hCard (<http://developers.technorati.com/wiki/hCard>)
3144      support.
3145
3146   2005-04-03  Add RFC3978-style IPR statement support.
3147      (fenner@research.att.com)
3148
3149   2005-04-11  Cleanup author display. hCard related fixes.
3150
3151   2005-05-07  Minor fixes to allow change tracking in doc title.  Add
3152      experimental support for table border styles.  CSS cleanup.
3153
3154   2005-06-18  Implement missing support for references to texttables.
3155
3156   2005-09-25  Use (-moz-)column-count when printing the index.
3157
3158   2005-10-04  Report missing element templates with xsl:message.
3159
3160   2005-10-15  Process t/@anchor.
3161
3162   2005-10-23  More workarounds for Mozilla's broken del/ins handling
3163      (this time for figures).
3164
3165   2005-10-27  lowercase hCard class names
3166
3167   2005-11-22  Enhance diagnostics for XML-in-artwork extension
3168
3169   2005-11-26  Fix formatting of section numbers for sections inserted
3170      into <back>.
3171
3172   2005-12-12  Fix some validity problems when change tracking occured
3173      inside lists.
3174
3175   2005-12-18  Add change tracking inside the index.
3176
3177   2006-02-04  Add prev/next links to highlighted changes (change
3178      tracking extension).
3179
3180   2006-02-10  Catch errors instantiating MSXML component.
3181
3182   2006-02-11  References: add "work in progress" for Internet Drafts.
3183
3184   2006-02-27  Fix front matter (lowercase Internet-Draft, say "Intended
3185      status" for non-RFC documents).  Start work on experimental
3186      extension for simplified internal links.
3187
3188
3189
3190
3191Reschke                                                        [Page 57]
3192
3193Documentation             RFC2629 through XSLT               August 2009
3194
3195
3196   2006-03-19  Tweaks to IESG Copyright stuff; support submissionType
3197      attribute.  Fix duplicate reference anchors in HTML output.
3198      Reduce HTML Tidy warnings.  Fix reference to normative ASCII
3199      version (now requires trailing ".txt").  Tweaks to hCard
3200      generation.  Started to move non-issue-tracking extensions into
3201      namespace "http://purl.org/net/xml2rfc/ext".
3202
3203   2006-03-27  Moved "simple reference" extension into namespace
3204      "http://purl.org/net/xml2rfc/ext" and add documentation.  HTML
3205      conformance enhancements.
3206
3207   2006-04-02  Cleanup special code for automated XHTML XSLT generation.
3208
3209   2006-04-21  Generate <CITE> elements where appropiate.  Introduce
3210      x:blockquote, x:dfn, x:h and x:q elements.
3211
3212   2006-05-06  Introduce x:bcp14 element.
3213
3214   2006-05-14  Fix content model for x:blockquote.
3215
3216   2006-06-18  Add box drawing support (x:bt, x:bc, x:bb).
3217
3218   2006-06-20  HTML validity fixes (legal chars in anchors in index).
3219
3220   2006-06-24  Reduce leading empty lines in artwork.  Move <dt> style
3221      info into CSS.
3222
3223   2006-07-14  Fix rendering of multiple street address entries (missing
3224      line break).
3225
3226   2006-07-24  Add extension for deep linking into RFCs, do not generate
3227      empty list items in TOC output, avoid empty <dt> elements for list
3228      items without hangText attribute.
3229
3230   2006-08-01  Allow @anchor on more elements; start work on Relax NG
3231      grammar for extensions.  Reduce generated style elements (use CSS
3232      classes instead).  Consistently use "id" instead of "name".
3233      Change default target for RFC links to
3234      "http://tools.ietf.org/html/rfcNNNN".
3235
3236   2006-08-06  Include appendices defined in <appendix> elements in TOC
3237      (please consider them deprecated anyhow!).  Generate links to
3238      "http://tools.ietf.org/html/draft-*" for Internet Drafts.  Replace
3239      x:frag by x:rel, allowing any kind of relative reference instead
3240      of just fragments.
3241
3242
3243
3244
3245
3246
3247Reschke                                                        [Page 58]
3248
3249Documentation             RFC2629 through XSLT               August 2009
3250
3251
3252   2006-08-30  Reduce textual differences between HTML output and what
3253      xml2rfc produces in TXT output mode (section refs/reference
3254      targets).  Add small workaround for Opera 9.0.1's problem with
3255      node-set().
3256
3257   2006-10-29  Fix problem generating internal links to change markup
3258      within references section.  Enhancements when generating numbered
3259      references for deleted references.  Allow inclusion of references
3260      into the index (through include-references-in-index extension).
3261      Fix a bug that caused the newer version of the IETF boilerplate to
3262      be produced rather than the pre-RFC3667 one.  Update to RFC4287
3263      boilerplate.
3264
3265   2006-11-11  Add extension attribute x:for-anchor to <iref> handling.
3266
3267   2006-11-26  Experimental (and limited) support for <x:lt>.
3268
3269   2006-12-04  Fix bugs in processing documents that have both the ipr
3270      and the number attribute set on the rfc root element.  Add support
3271      for x:fmt='none' on xrefs.  Add different pre style based on
3272      artwork type attributes (experimental).
3273
3274   2006-12-13  Add x:fmt='anchor' for xref elements.
3275
3276   2007-01-07  Fix root template for compatibility for the exslt:node-
3277      set implementation in Firefox3.
3278
3279   2007-01-29  Avoid empty table entry in front matter when organization
3280      is not specified for an author.
3281
3282   2007-02-10  Allow change tracking in table rows.
3283
3284   2007-03-09  Add hcard profile URI (<http://www.w3.org/2006/03/hcard>)
3285      to head element.  Add warning for misplaced <t> elements (after
3286      section).
3287
3288   2007-03-21  Fix internal linking from reference entries in index for
3289      some xref types.  Minor CSS tweaks contributed by MTR.  Allow
3290      turning on text justification through a PI.  Improve iref anchor
3291      generation to generate less instable anchors.
3292
3293   2007-03-28  Fixes for numbering of ed:inserted references sections.
3294
3295   2007-05-04  Do not generate anchors for edits in deleted sections.
3296      Enhance HTML conformance.
3297
3298
3299
3300
3301
3302
3303Reschke                                                        [Page 59]
3304
3305Documentation             RFC2629 through XSLT               August 2009
3306
3307
3308   2007-05-19  Enhance diagnostics when using Saxon (needs Saxon's "-l"
3309      command line parameter to keep line number information).  Add
3310      warning when symref PI is missing (default will change in the
3311      future).  Add support for overriding computed section numbers
3312      (when formatting historic documents).
3313
3314   2007-06-07  Change default for symrefs PI to "yes" (see change in
3315      xml2rfc 1.33pre4).  Warn about docName attributes that appear to
3316      contain a file extension.
3317
3318   2007-06-26  Workaround author/@initials values without trailing dot,
3319      as in xml2rfc.tcl.
3320
3321   2007-07-14  Enhance index generation for references that use @x:sec
3322      attribute.
3323
3324   2007-09-09  Fix: sortrefs is a nop when symrefs=no.
3325
3326   2007-10-17  Work in progress: add support for referencing sections in
3327      sibling documents by anchor name.
3328
3329   2007-10-17  Work in progress (continued): support for referencing
3330      sections in sibling documents by anchor name.
3331
3332   2007-12-31  Emit warning when updating/obsoleting stuff that's not
3333      referenced.
3334
3335   2008-02-03  Support xml2rfc-1.33pre5's suppress-title attribute on
3336      texttable and figure.
3337
3338   2008-02-06  Extension: allow <eref> below <cref>.
3339
3340   2008-02-17  Extensions: add x:span and x:length-of.
3341
3342   2008-02-20  Add new RFC boilerplate (as changed in 2007-08).
3343
3344   2008-02-27  Improve diagnostics for artwork width problems; add
3345      defaulting of publication dates (requires XSLT processor
3346      supporting exslt:date, or msxml).
3347
3348   2008-02-29  Enhance CSS for link elements in the front header, update
3349      rules for generating "Acknowledgment" statement.
3350
3351   2008-03-01  Use line numbers in diagnostics in Saxon8/9 as well.
3352
3353
3354
3355
3356
3357
3358
3359Reschke                                                        [Page 60]
3360
3361Documentation             RFC2629 through XSLT               August 2009
3362
3363
3364   2008-03-02  Fix a bug in the logic choosing the boilerplate,
3365      resulting in obsolete text being inserted into IDs.
3366
3367   2008-04-01  Add support for superscript element.
3368
3369   2008-06-28  Add sanity checks for email addresses, allow multiple
3370      email elements.
3371
3372   2008-07-06  Add x:abnf-char-sequence.
3373
3374   2008-08-21  Add x:note.
3375
3376   2008-09-06  Add experimental support for SVG images.
3377
3378   2008-09-17  Add experimental support for x:author.  Fix xref/@
3379      format=none.
3380
3381   2008-10-10  Fix a huge bug, causing text content after an XML comment
3382      to be ignored.
3383
3384   2009-02-24  Use table/caption when needed.
3385
3386   2009-03-07  Fix bug that caused text to disappear in the output in
3387      presence of processing instructions.
3388
3389   2009-03-12  Make inlined comments bookmarkable.
3390
3391   2009-04-09  Upgrade to DC-HTML from RFC 2731 (affects head/@profile).
3392
3393   2009-07-08  Remove table/@summary in output; the value getting
3394      inserted was just repeating stuff that appeared in the preamble.
3395
3396   2009-08-01  Implement table alignment (HTML output only for now).
3397
3398   2009-08-18  Replicate Dublin Core "abstract" metadata into meta/@
3399      name=description (search engines do use it).
3400
3401E.6.  rfc2629toFO.xslt
3402
3403   2003-11-16  Initial release.
3404
3405   2003-11-29  Enhance handling of unknown list styles.
3406
3407   2004-04-04  Update reference section handling.
3408
3409
3410
3411
3412
3413
3414
3415Reschke                                                        [Page 61]
3416
3417Documentation             RFC2629 through XSLT               August 2009
3418
3419
3420   2004-04-17  Use XSL-WD-1.1-style fo:bookmark and index handling and
3421      add postprocessors for existing implementations.  Unify PDF info
3422      generation by using XEP (postprocessors) will convert.
3423
3424   2004-04-20  Add experimental cref support.
3425
3426   2004-06-14  Set correct index-item defaults.
3427
3428   2004-07-18  Add list style=letters.
3429
3430   2004-09-03  Make URLs in text break where they are allowed to break
3431      by inserting zero-width spaces.
3432
3433   2004-09-26  Fix letter-style inside nested lists.
3434
3435   2004-10-31  Update handling of artwork.
3436
3437   2004-11-13  Fix handling of references inside ed:* markup.  Fix
3438      whitespace handling in artwork.
3439
3440   2004-11-27  Irefs in artwork generate monospaced entries in index.
3441
3442   2005-01-31  Fix TOC generation that was broken after changes in main
3443      XSLT.
3444
3445   2005-02-05  Bring in sync with cosmetic changes in rfc2629.xslt.
3446
3447   2005-05-07  Minor fix for change tracking in document title.  Support
3448      for table styles.
3449
3450   2005-06-18  Fix references to tables.
3451
3452   2005-10-15  Process t/@anchor.
3453
3454   2006-02-11  References: add "work in progress" for Internet Drafts.
3455
3456   2006-06-02  Use XSL 1.1 WD Feb 2006.
3457
3458   2007-03-21  Support optional text justification.
3459
3460   2007-05-19  Various improvements in spacing; also allow overriding
3461      the automatic list indentation via list/x:indent.
3462
3463   2009-04-08  Fix spacing in headers; add support for formatting for
3464      double-sided printing.
3465
3466
3467
3468
3469
3470
3471Reschke                                                        [Page 62]
3472
3473Documentation             RFC2629 through XSLT               August 2009
3474
3475
3476   2009-08-01  Remove surplus empty pages when not generating double-
3477      sided output.
3478
3479E.7.  xsl11toAn.xslt
3480
3481   2004-05-17  Initial release.
3482
3483   2006-06-02  Use XSL 1.1 WD Feb 2006.
3484
3485E.8.  xsl11toFop.xslt
3486
3487   2004-05-17  Initial release.
3488
3489   2006-06-02  Use XSL 1.1 WD Feb 2006.
3490
3491E.9.  xsl11toFop-0.93.xslt
3492
3493   2008-03-15  Add a workaround to the fo:inline workaround (sigh).
3494
3495E.10.  xsl11toXep.xslt
3496
3497   2004-05-17  Initial release.
3498
3499   2004-09-04  Fix xep:index-item attributes.
3500
3501   2006-06-02  Use XSL 1.1 WD Feb 2006.
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527Reschke                                                        [Page 63]
3528
3529Documentation             RFC2629 through XSLT               August 2009
3530
3531
3532Index
3533
3534   A
3535      abnf-char-sequence Extension Element  22, 36
3536      allow-markup-in-artwork PI pseudo-attribute  8
3537      alternate HTML LINK element  16
3538      anchor-alias Extension Element  22, 36
3539      Anchors
3540         rfc.abstract  13
3541         rfc.authors  13
3542         rfc.copyright  13
3543         rfc.copyrightnotice  13
3544         rfc.figure.n  13
3545         rfc.figure.u.n  13
3546         rfc.index  13
3547         rfc.ipr  13
3548         rfc.iref.n  13
3549         rfc.note.n  13
3550         rfc.references  13
3551         rfc.section.n  13
3552         rfc.section.n.p.m  13
3553         rfc.status  13
3554         rfc.toc  13
3555         rfc.xref.name.n  13
3556      AntennaHouse XSL Formatter  20
3557      Apache FOP  20
3558      appendix HTML LINK element  16
3559      assign-section-number Extension Element  36
3560      author HTML LINK element  16
3561      authors-section PI pseudo-attribute  8
3562
3563   B
3564      background PI pseudo-attribute  6
3565      bb Extension Element  23, 36
3566      bc Extension Element  23, 36
3567      bcp14 Extension Element  22, 36
3568      blockquote Extension Element  23, 36
3569      boilerplate Extension Element  23, 36
3570      bt Extension Element  24, 36
3571
3572   C
3573      chapter HTML LINK element  16
3574      CHM format  19
3575      comments PI pseudo-attribute  6
3576      compact PI pseudo-attribute  6
3577      contents HTML LINK element  16
3578      copyright HTML LINK element  16
3579      Creator DCMI property  17
3580
3581
3582
3583Reschke                                                        [Page 64]
3584
3585Documentation             RFC2629 through XSLT               August 2009
3586
3587
3588   D
3589      Date.Issued DCMI property  17
3590      DCMI properties
3591         Creator  17
3592         Date.Issued  17
3593         Description.Abstract  17
3594         Identifier  17
3595         isPartOf  17
3596         Relation.Replaces  17
3597      Description.Abstract DCMI property  17
3598      dfn Extension Element  24, 36
3599      duplex PI pseudo-attribute  8
3600
3601   E
3602      editing PI pseudo-attribute  6
3603      Extension Elements
3604         abnf-char-sequence  22, 36
3605         anchor-alias  22, 36
3606         assign-section-number  36
3607         bb  23, 36
3608         bc  23, 36
3609         bcp14  22, 36
3610         blockquote  23, 36
3611         boilerplate  23, 36
3612         bt  24, 36
3613         dfn  24, 36
3614         h  24, 36
3615         highlight  24, 36
3616         include-author  36
3617         length-of  24, 36
3618         link  24, 36
3619         lt  25, 36
3620         note  25, 36
3621         parse-xml  25, 36
3622         q  25, 36
3623         rdf:Description  36
3624         ref  25, 36
3625         source  26, 36
3626         span  36
3627         sup  26, 36
3628         x  36
3629
3630   F
3631      Firefox
3632         1.*/2.*  15
3633         3.*  14
3634      footer PI pseudo-attribute  6
3635
3636
3637
3638
3639Reschke                                                        [Page 65]
3640
3641Documentation             RFC2629 through XSLT               August 2009
3642
3643
3644   G
3645      generator HTML META element  17
3646      Google Chrome  14
3647      Grammar  36
3648
3649   H
3650      h Extension Element  24, 36
3651      header PI pseudo-attribute  6
3652      highlight Extension Element  24, 36
3653      HTML compliance  16
3654      HTML LINK elements
3655         alternate  16
3656         appendix  16
3657         author  16
3658         chapter  16
3659         contents  16
3660         copyright  16
3661         index  16
3662      HTML META elements
3663         generator  17
3664         keywords  17
3665
3666   I
3667      Identifier DCMI property  17
3668      include PI pseudo-attribute  7
3669      include-author Extension Element  36
3670      include-references-in-index PI pseudo-attribute  8
3671      index HTML LINK element  16
3672      inline PI pseudo-attribute  6
3673      Internet Explorer 5.5  14
3674      Internet Explorer 6  14
3675      Internet Explorer 7  14
3676      Internet Explorer 8  14
3677      iprnotified PI pseudo-attribute  6
3678      isPartOf DCMI property  17
3679
3680   J
3681      justification PI pseudo-attribute  8
3682
3683   K
3684      keywords HTML META element  17
3685
3686   L
3687      length-of Extension Element  24, 36
3688      link Extension Element  24, 36
3689      linkmailto PI pseudo-attribute  6
3690      lt Extension Element  25, 36
3691
3692
3693
3694
3695Reschke                                                        [Page 66]
3696
3697Documentation             RFC2629 through XSLT               August 2009
3698
3699
3700   M
3701      Microsoft Help  19
3702      Mozilla  14-15
3703      MSXML3  14
3704      MSXML4  14
3705
3706   N
3707      needLines PI pseudo-attribute  7
3708      NoScript  14
3709      note Extension Element  25, 36
3710
3711   O
3712      Opera  14-15
3713
3714   P
3715      Parameters
3716         xml2rfc-background  6
3717         xml2rfc-comments  6
3718         xml2rfc-compact  6
3719         xml2rfc-editing  6
3720         xml2rfc-ext-allow-markup-in-artwork  8
3721         xml2rfc-ext-authors-section  8
3722         xml2rfc-ext-duplex  8
3723         xml2rfc-ext-include-references-in-index  8
3724         xml2rfc-ext-justification  8
3725         xml2rfc-ext-parse-xml-in-artwork  8
3726         xml2rfc-ext-sec-no-trailing-dots  8
3727         xml2rfc-ext-support-rfc2731  8
3728         xml2rfc-footer  6
3729         xml2rfc-header  6
3730         xml2rfc-inline  6
3731         xml2rfc-iprnotified  6
3732         xml2rfc-linkmailto  6
3733         xml2rfc-private  6
3734         xml2rfc-rfcedstyle  6
3735         xml2rfc-sortrefs  6
3736         xml2rfc-symrefs  6
3737         xml2rfc-toc  6
3738         xml2rfc-tocdepth  6
3739         xml2rfc-topblock  6
3740      parse-xml Extension Element  25, 36
3741      parse-xml-in-artwork PI pseudo-attribute  8
3742      private PI pseudo-attribute  6
3743      Processing Instruction pseudo attributes
3744         allow-markup-in-artwork  8
3745         authors-section  8
3746         background  6
3747         comments  6
3748
3749
3750
3751Reschke                                                        [Page 67]
3752
3753Documentation             RFC2629 through XSLT               August 2009
3754
3755
3756         compact  6
3757         duplex  8
3758         editing  6
3759         footer  6
3760         header  6
3761         ijustification  8
3762         include  7
3763         include-references-in-index  8
3764         inline  6
3765         iprnotified  6
3766         linkmailto  6
3767         needLines  7
3768         parse-xml-in-artwork  8
3769         private  6
3770         rfcedstyle  6
3771         sec-no-trailing-dots  8
3772         slides  7
3773         sortrefs  6
3774         strict  7
3775         subcompact  7
3776         support-rfc2731  8
3777         symrefs  6
3778         toc  6
3779         tocdepth  6
3780         tocindent  7
3781         tocompact  7
3782         topblock  6
3783
3784   Q
3785      q Extension Element  25, 36
3786
3787   R
3788      rdf:Description Extension Element  36
3789      ref Extension Element  25, 36
3790      Relation.Replaces DCMI property  17
3791      RELAX NG Compact Schema  36
3792      rfc.abstract anchor  13
3793      rfc.authors anchor  13
3794      rfc.copyright anchor  13
3795      rfc.copyrightnotice anchor  13
3796      rfc.figure.n anchor  13
3797      rfc.figure.u.n anchor  13
3798      rfc.index anchor  13
3799      rfc.ipr anchor  13
3800      rfc.iref.n anchor  13
3801      rfc.note.n anchor  13
3802      rfc.references anchor  13
3803      rfc.references.n anchor  13
3804
3805
3806
3807Reschke                                                        [Page 68]
3808
3809Documentation             RFC2629 through XSLT               August 2009
3810
3811
3812      rfc.section.n anchor  13
3813      rfc.section.n.p.m anchor  13
3814      rfc.status anchor  13
3815      rfc.toc anchor  13
3816      rfc.xref.name.n anchor  13
3817      rfcedstyle PI pseudo-attribute  6
3818
3819   S
3820      Safari  14-15
3821         3.*  14
3822      Saxon  14
3823      Schema  36
3824      sec-no-trailing-dots PI pseudo-attribute  8
3825      slides PI pseudo-attribute  7
3826      sortrefs PI pseudo-attribute  6
3827      source Extension Element  26, 36
3828      span Extension Element  36
3829      strict PI pseudo-attribute  7
3830      subcompact PI pseudo-attribute  7
3831      sup Extension Element  26, 36
3832      support-rfc2731 PI pseudo-attribute  8
3833      symrefs PI pseudo-attribute  6
3834
3835   T
3836      toc PI pseudo-attribute  6
3837      tocdepth PI pseudo-attribute  6
3838      tocindent PI pseudo-attribute  7
3839      tocompact PI pseudo-attribute  7
3840      topblock PI pseudo-attribute  6
3841
3842   X
3843      x Extension Element  36
3844      Xalan  14
3845      xml-stylesheet PI  16
3846      xml2rfc-background parameter  6
3847      xml2rfc-comments parameter  6
3848      xml2rfc-editing parameter  6
3849      xml2rfc-ext-allow-markup-in-artwork parameter  8
3850      xml2rfc-ext-authors-section parameter  8
3851      xml2rfc-ext-duplex  8
3852      xml2rfc-ext-include-references-in-index parameter  8
3853      xml2rfc-ext-justification parameter  8
3854      xml2rfc-ext-parse-xml-in-artwork parameter  8
3855      xml2rfc-ext-sec-no-trailing-dots parameter  8
3856      xml2rfc-ext-support-rfc2731 parameter  8
3857      xml2rfc-footer parameter  6
3858      xml2rfc-header parameter  6
3859      xml2rfc-inline parameter  6
3860
3861
3862
3863Reschke                                                        [Page 69]
3864
3865Documentation             RFC2629 through XSLT               August 2009
3866
3867
3868      xml2rfc-iprnotified parameter  6
3869      xml2rfc-linkmailto parameter  6
3870      xml2rfc-private parameter  6
3871      xml2rfc-rfcedstyle parameter  6
3872      xml2rfc-sortrefs parameter  6
3873      xml2rfc-symrefs parameter  6
3874      xml2rfc-toc parameter  6
3875      xml2rfc-tocdepth parameter  6
3876      xml2rfc-topblock parameter  6
3877      xsltproc  14
3878         passing parameters  5
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919Reschke                                                        [Page 70]
3920
3921Documentation             RFC2629 through XSLT               August 2009
3922
3923
3924Author's Address
3925
3926   Julian F. Reschke
3927   greenbytes GmbH
3928   Hafenweg 16
3929   Muenster, NW  48155
3930   Germany
3931
3932   Phone: +49 251 2807760
3933   Email: julian.reschke@greenbytes.de
3934   URI:   http://greenbytes.de/tech/webdav/
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975Reschke                                                        [Page 71]
3976
Note: See TracBrowser for help on using the repository browser.