


RFC2629 through XSLT                                          J. Reschke
                                                              greenbytes
                                                           June 18, 2005


            Transforming RFC2629-formatted XML through XSLT


Table of Contents

   1.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.   Supported RFC2629 elements . . . . . . . . . . . . . . . . .   3
     2.1  Extension elements . . . . . . . . . . . . . . . . . . . .   3
   3.   Processing Instructions  . . . . . . . . . . . . . . . . . .   4
     3.1  Supported xml2rfc-compatible PIs . . . . . . . . . . . . .   5
     3.2  Unsupported xml2rfc-compatible PIs . . . . . . . . . . . .   6
     3.3  Extension PIs  . . . . . . . . . . . . . . . . . . . . . .   6
   4.   Anchors  . . . . . . . . . . . . . . . . . . . . . . . . . .   9
   5.   Supported XSLT engines . . . . . . . . . . . . . . . . . . .  11
     5.1  Standalone Engines . . . . . . . . . . . . . . . . . . . .  11
     5.2  In-Browser Engines . . . . . . . . . . . . . . . . . . . .  11
   6.   Transforming to HTML . . . . . . . . . . . . . . . . . . . .  12
     6.1  HTML compliance  . . . . . . . . . . . . . . . . . . . . .  12
     6.2  Standard HTML LINK elements  . . . . . . . . . . . . . . .  12
     6.3  Standard HTML metadata . . . . . . . . . . . . . . . . . .  13
     6.4  Dublin Core (RFC2731) metadata . . . . . . . . . . . . . .  13
     6.5  Experimental hCard support . . . . . . . . . . . . . . . .  13
   7.   Transforming to XHTML  . . . . . . . . . . . . . . . . . . .  14
   8.   Transforming to CHM (Microsoft Compiled Help)  . . . . . . .  15
   9.   Transforming to PDF via XSL-FO . . . . . . . . . . . . . . .  16
     9.1  Extension feature matrix . . . . . . . . . . . . . . . . .  16
     9.2  Example: producing output for Apache FOP . . . . . . . . .  17
   10.  Utilities  . . . . . . . . . . . . . . . . . . . . . . . . .  18
     10.1   Checking References  . . . . . . . . . . . . . . . . . .  18
     10.2   Producing reference entries for books  . . . . . . . . .  18
     10.3   Down-converting to RFC2629bis DTD  . . . . . . . . . . .  19
     10.4   Extracting artwork . . . . . . . . . . . . . . . . . . .  19
   11.  Informative References . . . . . . . . . . . . . . . . . . .  20
        Author's Address . . . . . . . . . . . . . . . . . . . . . .  21
        Index  . . . . . . . . . . . . . . . . . . . . . . . . . . .  22











Reschke                                                         [Page 1]

Documentation             RFC2629 through XSLT                 June 2005


1.  Introduction

   This document describes a set of XSLT transformations that can be
   used to transform RFC2629-compliant XML (see [RFC2629]) to various
   output formats, such as HTML and PDF.  The main topics are

   o  compliance to the xml2rfc XML element set (Section 2),

   o  support for xml2rfc processing instructions (Section 3),

   o  the names of anchor elements generated in HTML and PDF output
      (Section 4),

   o  various XSLT engines that can be used (Section 5),

   o  outputting HTML (Section 6) and XHTML (Section 7),

   o  outputting CHM (Compiled Microsoft Help, Section 8),

   o  outputting PDF through XSL-FO (Section 9) and

   o  various utilities (Section 10).





























Reschke                                                         [Page 2]

Documentation             RFC2629 through XSLT                 June 2005


2.  Supported RFC2629 elements

   "rfc2629.xslt" supports both all RFC2629 grammar elements and the
   extensions implemented in xml2rfc 1.21.

2.1  Extension elements

   In addition, "rfc2629.xslt" supports a set of extension elements,
   using elements and attributes in the namespace
   "http://greenbytes.de/2002/rfcedit".  They are used for

   o  simple issue tracking and change tracking and

   o  adding additional metadata to the generated documents (such as
      HTML LINK elements to related documents, see Section 6.2).

   Note that these extensions are experimental.  Please email the author
   in case you're interested in using these extensions.

































Reschke                                                         [Page 3]

Documentation             RFC2629 through XSLT                 June 2005


3.  Processing Instructions

   All PIs can be set as XSLT parameter as well, overriding any value
   that is found in the source file to be transformed.

   Using processing instructions:

   <?rfc toc="yes"?>
   <?rfc-ext support-rfc2731="no"?>

   Using XSLT parameters:

   saxon foo.xml rfc2629.xslt xml2rfc-toc=yes \
     xml2rfc-ext-support-rfc2731=no > result.hzml





































Reschke                                                         [Page 4]

Documentation             RFC2629 through XSLT                 June 2005


3.1  Supported xml2rfc-compatible PIs

   +------------+------------+-------------+-------------+-------------+
   | PI target  | PI         | XSLT        | default     | comment     |
   |            | pseudo-att | parameter   |             |             |
   |            | ribute     | name        |             |             |
   +------------+------------+-------------+-------------+-------------+
   | rfc        | background | xml2rfc-bac | (not set)   |             |
   |            |            | kground     |             |             |
   |            |            |             |             |             |
   | rfc        | compact    | xml2rfc-com | "no"        | only        |
   |            |            | pact        |             | applies to  |
   |            |            |             |             | HTML output |
   |            |            |             |             | method when |
   |            |            |             |             | printing    |
   |            |            |             |             |             |
   | rfc        | comments   | xml2rfc-com | (not set)   |             |
   |            |            | ments       |             |             |
   |            |            |             |             |             |
   | rfc        | editing    | xml2rfc-edi | "no"        |             |
   |            |            | ting        |             |             |
   |            |            |             |             |             |
   | rfc        | footer     | xml2rfc-foo | (not set)   |             |
   |            |            | ter         |             |             |
   |            |            |             |             |             |
   | rfc        | header     | xml2rfc-hea | (not set)   |             |
   |            |            | der         |             |             |
   |            |            |             |             |             |
   | rfc        | inline     | xml2rfc-inl | (not set)   |             |
   |            |            | ine         |             |             |
   |            |            |             |             |             |
   | rfc        | iprnotifie | xml2rfc-ipr | "no"        |             |
   |            | d          | notified    |             |             |
   |            |            |             |             |             |
   | rfc        | linkmailto | xml2rfc-lin | "yes"       |             |
   |            |            | kmailto     |             |             |
   |            |            |             |             |             |
   | rfc        | private    | xml2rfc-pri | (not set)   |             |
   |            |            | vate        |             |             |
   |            |            |             |             |             |
   | rfc        | sortrefs   | xml2rfc-sor | "no"        |             |
   |            |            | trefs       |             |             |
   |            |            |             |             |             |
   | rfc        | symrefs    | xml2rfc-sym | "no"        |             |
   |            |            | refs        |             |             |
   |            |            |             |             |             |
   | rfc        | toc        | xml2rfc-toc | "no"        |             |
   |            |            |             |             |             |



Reschke                                                         [Page 5]

Documentation             RFC2629 through XSLT                 June 2005


   | rfc        | tocdepth   | xml2rfc-toc | 99          |             |
   |            |            | depth       |             |             |
   |            |            |             |             |             |
   | rfc        | topblock   | xml2rfc-top | "yes"       |             |
   |            |            | block       |             |             |
   +------------+------------+-------------+-------------+-------------+


3.2  Unsupported xml2rfc-compatible PIs

   +----------------------+----------------------+---------------------+
   | PI target            | PI pseudo-attribute  | comment             |
   +----------------------+----------------------+---------------------+
   | rfc                  | include              | incompatible with   |
   |                      |                      | XML/XSLT processing |
   |                      |                      | model               |
   |                      |                      |                     |
   | rfc                  | needLines            |                     |
   |                      |                      |                     |
   | rfc                  | slides               |                     |
   |                      |                      |                     |
   | rfc                  | strict               |                     |
   |                      |                      |                     |
   | rfc                  | subcompact           |                     |
   |                      |                      |                     |
   | rfc                  | tocindent            | (defaults to "yes") |
   |                      |                      |                     |
   | rfc                  | tocompact            |                     |
   +----------------------+----------------------+---------------------+


3.3  Extension PIs



















Reschke                                                         [Page 6]

Documentation             RFC2629 through XSLT                 June 2005


   +------------+------------+-------------+-------------+-------------+
   | PI target  | PI         | XSLT        | default     | description |
   |            | pseudo-att | parameter   |             |             |
   |            | ribute     | name        |             |             |
   +------------+------------+-------------+-------------+-------------+
   | rfc-ext    | allow-mark | xml2rfc-all | "no"        | Enables     |
   |            | up-in-artw | ow-markup-i |             | support for |
   |            | ork        | n-artwork   |             | specific    |
   |            |            |             |             | elements    |
   |            |            |             |             | inside      |
   |            |            |             |             | abstract    |
   |            |            |             |             | elements    |
   |            |            |             |             | (using this |
   |            |            |             |             | extension   |
   |            |            |             |             | makes the   |
   |            |            |             |             | document    |
   |            |            |             |             | incompatibl |
   |            |            |             |             | e to the    |
   |            |            |             |             | RFC2629bis  |
   |            |            |             |             | DTD; see    |
   |            |            |             |             | description |
   |            |            |             |             | of          |
   |            |            |             |             | conversion  |
   |            |            |             |             | XSLT in     |
   |            |            |             |             | Section 10. |
   |            |            |             |             | 3).         |
   |            |            |             |             |             |
   | rfc-ext    | authors-se | xml2rfc-ext |             | When "end", |
   |            | ction      | -authors-se |             | place the   |
   |            |            | ction       |             | authors     |
   |            |            |             |             | section at  |
   |            |            |             |             | the end     |
   |            |            |             |             | (just       |
   |            |            |             |             | before the  |
   |            |            |             |             | copyright   |
   |            |            |             |             | statements) |
   |            |            |             |             | . This      |
   |            |            |             |             | seems to be |
   |            |            |             |             | the         |
   |            |            |             |             | preferred   |
   |            |            |             |             | order in    |
   |            |            |             |             | the newest  |
   |            |            |             |             | RFCs.       |
   |            |            |             |             |             |







Reschke                                                         [Page 7]

Documentation             RFC2629 through XSLT                 June 2005


   | rfc-ext    | parse-xml- | xml2rfc-par | "no"        | May be used |
   |            | in-artwork | se-xml-in-a |             | to enable   |
   |            |            | rtwork      |             | parsing of  |
   |            |            |             |             | XML content |
   |            |            |             |             | in figures  |
   |            |            |             |             | (MSXML      |
   |            |            |             |             | only).      |
   |            |            |             |             |             |
   | rfc-ext    | support-rf | xml2rfc-ext | "yes"       | Decides     |
   |            | c2731      | -support-rf |             | whether the |
   |            |            | c2731       |             | HTML        |
   |            |            |             |             | transformat |
   |            |            |             |             | ion should  |
   |            |            |             |             | generate    |
   |            |            |             |             | META tags   |
   |            |            |             |             | according   |
   |            |            |             |             | Section 6.4 |
   |            |            |             |             | .           |
   |            |            |             |             |             |
   | rfc-ext    | sec-no-tra | xml2rfc-ext |             | When set to |
   |            | iling-dots | -sec-no-tra |             | "yes", add  |
   |            |            | iling-dots  |             | trailing    |
   |            |            |             |             | dots to     |
   |            |            |             |             | section     |
   |            |            |             |             | numbers.    |
   |            |            |             |             | This seems  |
   |            |            |             |             | to be the   |
   |            |            |             |             | preferred   |
   |            |            |             |             | format in   |
   |            |            |             |             | the newest  |
   |            |            |             |             | RFCs.       |
   +------------+------------+-------------+-------------+-------------+



















Reschke                                                         [Page 8]

Documentation             RFC2629 through XSLT                 June 2005


4.  Anchors

   The transformation automatically generates anchors that are supposed
   to be stable and predictable and that can be used to identify
   specific parts of the document.  Anchors are generated both in HTML
   and XSL-FO content (but the latter will only be used for PDF output
   when the XSL-FO engine supports producing PDF anchors).












































Reschke                                                         [Page 9]

Documentation             RFC2629 through XSLT                 June 2005


   The following anchors get auto-generated:

        +------------------------+----------------------------+
        | Anchor name            | Description                |
        +------------------------+----------------------------+
        | rfc.abstract           | Abstract                   |
        |                        |                            |
        | rfc.authors            | Authors section            |
        |                        |                            |
        | rfc.copyright          | Copyright section          |
        |                        |                            |
        | rfc.copyrightnotice    | Copyright notice           |
        |                        |                            |
        | rfc.figure._n_         | Figures (titled)           |
        |                        |                            |
        | rfc.figure.u._n_       | Figures (untitled)         |
        |                        |                            |
        | rfc.index              | Index                      |
        |                        |                            |
        | rfc.ipr                | Intellectual Property      |
        |                        |                            |
        | rfc.iref._n_           | Internal references        |
        |                        |                            |
        | rfc.note._n_           | Notes (from front section) |
        |                        |                            |
        | rfc.references         | References                 |
        |                        |                            |
        | rfc.references._n_     | Additional references      |
        |                        |                            |
        | rfc.section._n_        | Section _n_                |
        |                        |                            |
        | rfc.section._n_.p._m_  | Section _n_, paragraph _m_ |
        |                        |                            |
        | rfc.status             | Status of memo             |
        |                        |                            |
        | rfc.table._n_          | Tables (titled)            |
        |                        |                            |
        | rfc.table.u._n_        | Tables (untitled)          |
        |                        |                            |
        | rfc.toc                | Table of contents          |
        +------------------------+----------------------------+










Reschke                                                        [Page 10]

Documentation             RFC2629 through XSLT                 June 2005


5.  Supported XSLT engines

   The transformation requires a non-standard extension function (see
   exsl:node-set [1]) which is however widely available.  XSLT
   processors that do not support this extension (or a functional
   equivalent) currently are not supported.

5.1  Standalone Engines

   The following XSLT engines are believed to work well:

   o  MSXML3 and MSXML4 (<http://msdn.microsoft.com/xml>; these
      processors do not support exsl:node-set(), but have a similar
      proprietary extension)

   o  Saxon (<http://saxon.sourceforge.net/>)

   o  Xalan (<http://xml.apache.org/xalan-j/>)

   o  xsltproc (libxslt) (<http://xmlsoft.org/XSLT/>, make sure that you
      have a current version)


5.2  In-Browser Engines

   The following browsers seem to work fine:

   o  Internet Explorer 5.5 (Windows version, if MSXML3 is installed)

   o  Internet Explorer 6 (Windows version)

   The following browsers are known not to work properly:

   o  Mozilla (missing extension function - see change request at
      Mozilla bugs 193678 [6] and 215242 [7])

   o  Safari supports client-side XSLT as of MacOS X 10.4, but misses
      required extension functions.  There also seems to be a problem
      with stylesheets producing non-ASCII output (such as NBSP
      characters).  Both problems have been reported through Apple's bug
      tracking system.










Reschke                                                        [Page 11]

Documentation             RFC2629 through XSLT                 June 2005


6.  Transforming to HTML

   Transformation to HTML can be done inside the browser if it supports
   XSLT.  To enable this, add the following processing instruction to
   the start of the source file:

     <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

   (and ensure that "rfc2629.xslt" is present).

6.1  HTML compliance

   The transformation result is supposed to conform to the HTML 4.01
   strict DTD [HTML].  This can be checked using the W3C's online
   validator at <http://validator.w3.org>.

6.2  Standard HTML LINK elements

   LINK elements exist since HTML 2.0.  They can be used to embed
   content-independant links inside the document.  Unfortunately, only
   few user agents fully support this element, namely Mozilla where it's
   called "Site Navigation Bar" (by default disabled!).

   The following LINK elements are produced:

   +---------------------------------+---------------------------------+
   | LINK type                       | description                     |
   +---------------------------------+---------------------------------+
   | alternate                       | for RFCs, a link to the         |
   |                                 | authorative ASCII version on    |
   |                                 | the IETF web site               |
   |                                 |                                 |
   | appendic                        | pointer to all top-level        |
   |                                 | appendics                       |
   |                                 |                                 |
   | author                          | pointer to "authors" section    |
   |                                 |                                 |
   | chapter                         | pointer to all top-level        |
   |                                 | sections                        |
   |                                 |                                 |
   | contents                        | pointer to table of contents    |
   |                                 |                                 |
   | copyright                       | pointer to copyright statement  |
   |                                 |                                 |
   | index                           | pointer to index                |
   +---------------------------------+---------------------------------+





Reschke                                                        [Page 12]

Documentation             RFC2629 through XSLT                 June 2005


   The figure below shows how Mozilla Firefox displays the Site
   Navigation Bar for rfc2396.xml.

   (LINK elements displayed in Mozilla Firefox for RFC2396.xml)


6.3  Standard HTML metadata

   The following standard HTML META elements are produced:

    +-----------+-------------------------------------------------+
    | META name | description                                     |
    +-----------+-------------------------------------------------+
    | generator | from XSLT engine version and stylesheet version |
    |           |                                                 |
    | keywords  | from keyword elements in front section          |
    +-----------+-------------------------------------------------+


6.4  Dublin Core (RFC2731) metadata

   Unless turned off using the "rfc-ext support-rfc2731" processing
   instruction, the transformation will generate metadata according to
   [RFC2731].

   The following DCMI properties are produced:

   +---------------------------------+---------------------------------+
   | META name                       | description                     |
   +---------------------------------+---------------------------------+
   | DC.Creator                      | from author information in      |
   |                                 | front section                   |
   |                                 |                                 |
   | DC.Date.Issued                  | from date information in front  |
   |                                 | section                         |
   |                                 |                                 |
   | DC.Description.Abstract         | from abstract                   |
   |                                 |                                 |
   | DC.Identifier                   | document URN [RFC2648] from     |
   |                                 | "docName" attribute             |
   |                                 |                                 |
   | DC.Relation.Replaces            | from "obsoletes" attribute      |
   +---------------------------------+---------------------------------+


6.5  Experimental hCard support

   The generated author information is formatted in hCard [9] format.



Reschke                                                        [Page 13]

Documentation             RFC2629 through XSLT                 June 2005


7.  Transforming to XHTML

   Transforming to XHTML requires slightly different XSLT output options
   and is implemented by the derived transformation script
   "rfc2629toXHTML.xslt".

   Note: Microsoft Internet Explorer does _not_ support XHTML.
   Therefore it usually makes more sense to generate plain old HTML.











































Reschke                                                        [Page 14]

Documentation             RFC2629 through XSLT                 June 2005


8.  Transforming to CHM (Microsoft Compiled Help)

   To generate a CHM file using Microsoft's HTML Help Compiler (hhc),
   three files are required in addition to the HTML file.

   1.  hhc - table of contents file (HTML)

   2.  hhk - index file (HTML)

   3.  hhp - project file (plain text)

   The three files are generated with three specific transformations,
   each requiring the additional XSLT parameter "basename" to specify
   the filename prefix.

   Example:

   saxon rfc2616.xml rfc2629toHhp.xslt basename=rfc2616  > rfc2616.hhp
   saxon rfc2616.xml rfc2629toHhc.xslt basename=rfc2616  > rfc2616.hhc
   saxon rfc2616.xml rfc2629toHhk.xslt basename=rfc2616  > rfc2616.hhk
   hhc rfc2616.hhp






























Reschke                                                        [Page 15]

Documentation             RFC2629 through XSLT                 June 2005


9.  Transforming to PDF via XSL-FO

   Transformation to XSL-FO [XSL-FO] format is available through
   "rfc2629toFO.xslt" (which includes "rfc2629.xslt", so keep both in
   the same folder).

   Compared to HTML user agents, XSL-FO engines unfortunately either
   come as open source (for instance, Apache FOP) or feature-complete
   (for instance, AntennaHouse XSL Formatter), but not both at the same
   time.

   As Apache FOP needs special workarounds (page breaking, table
   layout), and some popular extensions aren't standardized yet, the
   translation produces a generic output (hopefully) conforming to [XSL-
   FO-11-WD].  Specific backends ("xsl11toFop.xslt", "xsl11toXep.xslt",
   "xsl11toAn.xslt") the provide post-processing for the individual
   processors.

9.1  Extension feature matrix

   +------------+------------+-------------+-------------+-------------+
   |            |     PDF    |     PDF     |     PDF     |    Index    |
   |            |   anchors  |  bookmarks  |   document  |   cleanup   |
   |            |            |             | information |             |
   +------------+------------+-------------+-------------+-------------+
   | XSL 1.1    |   no, but  |     yes     |   no, but   |     yes     |
   | WD [10]    |   can be   |             |   uses XEP  |             |
   |            | auto-gener |             |    output   |             |
   |            |  ated from |             |  extensions |             |
   |            |    "id"    |             |             |             |
   |            | attributes |             |             |             |
   |            |            |             |             |             |
   | Antenna    |     no     |   yes [12]  |   yes [12]  |   yes [12]  |
   | House XSL  |            |  (from XSL  |  (from XEP  |  (just page |
   | formatter  |            |     1.1     |   document  |  duplicate  |
   | [11]       |            |  bookmarks) |    info)    | elimination |
   |            |            |             |             |  , from XSL |
   |            |            |             |             |   1.1 page  |
   |            |            |             |             |    index)   |
   |            |            |             |             |             |
   | Apache     |     yes    |  yes (from  |      no     |      no     |
   | FOP [13]   |            |   XSL 1.1   |             |             |
   |            |            |  bookmarks) |             |             |
   |            |            |             |             |             |







Reschke                                                        [Page 16]

Documentation             RFC2629 through XSLT                 June 2005


   | RenderX    |     no     |   yes [15]  |   yes [15]  |   yes [15]  |
   | XEP [14]   |            |  (from XSL  |             |  (from XSL  |
   |            |            |     1.1     |             |   1.1 page  |
   |            |            |  bookmarks) |             |    index)   |
   +------------+------------+-------------+-------------+-------------+


9.2  Example: producing output for Apache FOP

   Example:

   saxon rfc2616.xml rfc2629toFo.xslt > tmp.fo
   saxon tmp.fo xsl11toFop > rfc2629.fo






































Reschke                                                        [Page 17]

Documentation             RFC2629 through XSLT                 June 2005


10.  Utilities

10.1  Checking References

   "check-ietf-references.xslt" can be used to check all references to
   RFC-series IETF publications (note this script requires a local copy
   of <ftp://ftp.isi.edu/in-notes/rfc-index.xml>).  For instance:

   > saxon rfc2518.xml check-ietf-references.xslt
   Normative References:
   RFC1766: [PROPOSED STANDARD] obsoleted by RFC3066 RFC3282
   RFC2277: [BEST CURRENT PRACTICE] (-> BCP0018) ok
   RFC2119: [BEST CURRENT PRACTICE] (-> BCP0014) ok
   RFC2396: [DRAFT STANDARD] ok
   RFC2069: [PROPOSED STANDARD] obsoleted by RFC2617
   RFC2068: [PROPOSED STANDARD] obsoleted by RFC2616
   RFC2141: [PROPOSED STANDARD] ok
   RFC2279: [PROPOSED STANDARD] obsoleted by RFC3629
   Informational References:
   RFC2026: [BEST CURRENT PRACTICE] (-> BCP0009) ok
   RFC1807: [INFORMATIONAL] ok
   RFC2291: [INFORMATIONAL] ok
   RFC2413: [INFORMATIONAL] ok
   RFC2376: [INFORMATIONAL] obsoleted by RFC3023


10.2  Producing reference entries for books

   "amazon-asin.xslt" uses the Amazon web services to generate a
   <reference> element for a given ASIN (ISBN).





















Reschke                                                        [Page 18]

Documentation             RFC2629 through XSLT                 June 2005


   For instance:

   <?xml version="1.0" encoding="utf-8"?>
   <references>
    <reference target="urn:isbn:0134516591">
      <front>
        <title>Simple Book, The: An Introduction to Internet Management,
                  Revised Second Edition</title>
        <author surname="Rose"
                   fullname="Marshall T. Rose" initials="M. T. ">
          <organization/>
        </author>
        <author surname="Marshall"
                   fullname="Rose T. Marshall" initials="R. T.">
          <organization/>
        </author>
        <date year="1996" month="March"/>
      </front>
      <seriesInfo name="Prentice Hall" value=""/>
    </reference>
   </references>

   Note that the resulting XML usually requires checking, in this case
   Amazon's database is playing tricks with Marshall's name...

10.3  Down-converting to RFC2629bis DTD

   "clean-for-DTD.xslt" can be used to down-convert some extensions to a
   format that is supported by the base xml2rfc distribution.  Note that
   these extensions are experimental (feedback appreciated).

   The following mappings are done:

   o  <iref> elements inside <artwork> elements are moved in front of
      the enclosing <figure> element.

   o  <xref> elements inside <artwork> are expanded just like in regular
      text (that is, the marlup is stripped, but the element is replaced
      by the applicable replacement text).


10.4  Extracting artwork

   With "extract-artwork.xslt", artwork elements named through the
   "name" attribute can be extracted.  This can be used to automatically
   check it's syntax (for instance, when ABNFs appear within a figure
   element).




Reschke                                                        [Page 19]

Documentation             RFC2629 through XSLT                 June 2005


   For instance:
   saxon rfc3986.xml extract-artwork.xslt name=uri.abnf


11.  Informative References

   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
              June 1999.

   [RFC2648]  Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
              August 1999.

   [RFC2731]  Kunze, J., "Encoding Dublin Core Metadata in HTML",
              RFC 2731, December 1999.

   [HTML]     Raggett, D., Hors, A., and I. Jacobs, "HTML 4.01
              Specification", W3C REC REC-html401-19991224,
              December 1999, <http://www.w3.org/TR/html401/>.

   [XSL-FO]   Adler, S., Berglund, A., Caruso, J., Deach, S., Graham,
              T., Grosso, P., Gutentag, E., Milowski, R., Parnell, S.,
              Richman, J., and S. Zilles, "Extensible Stylesheet
              Language (XSL) Version 1.0", W3C REC REC-xsl-20011015,
              October 2001,
              <http://www.w3.org/TR/2001/REC-xsl-20011015>.

   [XSL-FO-11-WD]
              Berglund, A., "Extensible Stylesheet Language (XSL)
              Version 1.1", W3C REC WD-xsl11-20041216, December 2004,
              <http://www.w3.org/TR/2004/WD-xsl11-20041216>.

   [1]   <http://www.exslt.org/exsl/functions/node-set/
         exsl.node-set.html>

   [6]   <http://bugzilla.mozilla.org/show_bug.cgi?id=193678>

   [7]   <http://bugzilla.mozilla.org/show_bug.cgi?id=215242>

   [9]   <http://developers.technorati.com/wiki/hCard>

   [10]  <http://www.w3.org/TR/2003/WD-xsl11-20031217/>

   [11]  <http://www.antennahouse.com/>

   [12]  <http://www.antennahouse.com/XSL20/axf-extension.htm>

   [13]  <http://xml.apache.org/fop/>




Reschke                                                        [Page 20]

Documentation             RFC2629 through XSLT                 June 2005


   [14]  <http://xep.xattic.com/>

   [15]  <http://xep.xattic.com/xep/spec.html>


Author's Address

   Julian F. Reschke
   greenbytes GmbH
   Salzmannstrasse 152
   Muenster, NW  48159
   Germany

   Phone: +49 251 2807760
   Fax:   +49 251 2807761
   Email: julian.reschke@greenbytes.de
   URI:   http://greenbytes.de/tech/webdav/


































Reschke                                                        [Page 21]

Documentation             RFC2629 through XSLT                 June 2005


Index

   A
      allow-markup-in-artwork PI pseudo-attribute  6
      alternate HTML LINK element  12
      Anchors
         rfc.abstract  10
         rfc.authors  10
         rfc.copyright  10
         rfc.copyrightnotice  10
         rfc.figure.n  10
         rfc.figure.u.n  10
         rfc.index  10
         rfc.ipr  10
         rfc.iref.n  10
         rfc.note.n  10
         rfc.references  10
         rfc.section.n  10
         rfc.section.n.p.m  10
         rfc.status  10
         rfc.toc  10
      AntennaHouse XSL Formatter  16
      Apache FOP  16
      appendix HTML LINK element  12
      author HTML LINK element  12
      authors-section PI pseudo-attribute  6

   B
      background PI pseudo-attribute  5

   C
      chapter HTML LINK element  12
      CHM format  15
      comments PI pseudo-attribute  5
      compact PI pseudo-attribute  5
      contents HTML LINK element  12
      copyright HTML LINK element  12
      Creator DCMI property  13

   D
      Date.Issued DCMI property  13
      DCMI properties
         Creator  13
         Date.Issued  13
         Description.Abstract  13
         Identifier  13
         Relation.Replaces  13
      Description.Abstract DCMI property  13



Reschke                                                        [Page 22]

Documentation             RFC2629 through XSLT                 June 2005


   E
      editing PI pseudo-attribute  5

   F
      footer PI pseudo-attribute  5

   G
      generator HTML META element  13

   H
      header PI pseudo-attribute  5
      HTML compliance  12
      HTML LINK elements
         alternate  12
         appendix  12
         author  12
         chapter  12
         contents  12
         copyright  12
         index  12
      HTML META elements
         generator  13
         keywords  13

   I
      Identifier DCMI property  13
      include PI pseudo-attribute  6
      index HTML LINK element  12
      inline PI pseudo-attribute  5
      Internet Explorer 5.5  11
      Internet Explorer 6  11
      iprnotified PI pseudo-attribute  5

   K
      keywords HTML META element  13

   L
      linkmailto PI pseudo-attribute  5

   M
      Microsoft Help  15
      Mozilla  11
      MSXML3  11
      MSXML4  11

   N
      needLines PI pseudo-attribute  6




Reschke                                                        [Page 23]

Documentation             RFC2629 through XSLT                 June 2005


   P
      Parameters
         xml2rfc-background  5
         xml2rfc-comments  5
         xml2rfc-compact  5
         xml2rfc-editing  5
         xml2rfc-ext-allow-markup-in-artwork  6
         xml2rfc-ext-authors-section  6
         xml2rfc-ext-parse-xml-in-artwork  6
         xml2rfc-ext-sec-no-trailing-dots  6
         xml2rfc-ext-support-rfc2731  6
         xml2rfc-footer  5
         xml2rfc-header  5
         xml2rfc-inline  5
         xml2rfc-iprnotified  5
         xml2rfc-linkmailto  5
         xml2rfc-private  5
         xml2rfc-sortrefs  5
         xml2rfc-symrefs  5
         xml2rfc-toc  5
         xml2rfc-tocdepth  5
         xml2rfc-topblock  5
      parse-xml-in-artwork PI pseudo-attribute  6
      private PI pseudo-attribute  5
      Processing Instruction pseudo attributes
         allow-markup-in-artwork  6
         authors-section  6
         background  5
         comments  5
         compact  5
         editing  5
         footer  5
         header  5
         include  6
         inline  5
         iprnotified  5
         linkmailto  5
         needLines  6
         parse-xml-in-artwork  6
         private  5
         sec-no-trailing-dots  6
         slides  6
         sortrefs  5
         strict  6
         subcompact  6
         support-rfc2731  6
         symrefs  5
         toc  5



Reschke                                                        [Page 24]

Documentation             RFC2629 through XSLT                 June 2005


         tocdepth  5
         tocindent  6
         tocompact  6
         topblock  5

   R
      Relation.Replaces DCMI property  13
      rfc.abstract anchor  10
      rfc.authors anchor  10
      rfc.copyright anchor  10
      rfc.copyrightnotice anchor  10
      rfc.figure.n anchor  10
      rfc.figure.u.n anchor  10
      rfc.index anchor  10
      rfc.ipr anchor  10
      rfc.iref.n anchor  10
      rfc.note.n anchor  10
      rfc.references anchor  10
      rfc.references.n anchor  10
      rfc.section.n anchor  10
      rfc.section.n.p.m anchor  10
      rfc.status anchor  10
      rfc.toc anchor  10

   S
      Safari  11
      Saxon  11
      sec-no-trailing-dots PI pseudo-attribute  6
      slides PI pseudo-attribute  6
      sortrefs PI pseudo-attribute  5
      strict PI pseudo-attribute  6
      subcompact PI pseudo-attribute  6
      support-rfc2731 PI pseudo-attribute  6
      symrefs PI pseudo-attribute  5

   T
      toc PI pseudo-attribute  5
      tocdepth PI pseudo-attribute  5
      tocindent PI pseudo-attribute  6
      tocompact PI pseudo-attribute  6
      topblock PI pseudo-attribute  5

   X
      Xalan  11
      xml-stylesheet PI  12
      xml2rfc-background parameter  5
      xml2rfc-comments parameter  5
      xml2rfc-editing parameter  5



Reschke                                                        [Page 25]

Documentation             RFC2629 through XSLT                 June 2005


      xml2rfc-ext-allow-markup-in-artwork parameter  6
      xml2rfc-ext-authors-section parameter  6
      xml2rfc-ext-parse-xml-in-artwork parameter  6
      xml2rfc-ext-sec-no-trailing-dots parameter  6
      xml2rfc-ext-support-rfc2731 parameter  6
      xml2rfc-footer parameter  5
      xml2rfc-header parameter  5
      xml2rfc-inline parameter  5
      xml2rfc-iprnotified parameter  5
      xml2rfc-linkmailto parameter  5
      xml2rfc-private parameter  5
      xml2rfc-sortrefs parameter  5
      xml2rfc-symrefs parameter  5
      xml2rfc-toc parameter  5
      xml2rfc-tocdepth parameter  5
      xml2rfc-topblock parameter  5
      xsltproc  11


































Reschke                                                        [Page 26]

