Changeset 1145 for rfc2629xslt/rfc2629xslt.html
- Timestamp:
- Mar 1, 2011, 1:24:49 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rfc2629xslt/rfc2629xslt.html
r1103 r1145 93 93 margin-right: 2em; 94 94 } 95 ol.la { 96 list-style-type: lower-alpha; 97 } 98 ol.ua { 99 list-style-type: upper-alpha; 100 } 95 101 ol p { 96 102 margin-left: 0em; … … 350 356 } 351 357 @top-right { 352 content: " January 2011";358 content: "February 2011"; 353 359 } 354 360 @top-center { … … 377 383 } 378 384 } 379 </style><link rel="Contents" href="#rfc.toc"><link rel="Author" href="#rfc.authors"><link rel="Index" href="#rfc.index"><link rel="Chapter" title="1 Introduction" href="#rfc.section.1"><link rel="Chapter" title="2 Supported RFC2629 elements" href="#rfc.section.2"><link rel="Chapter" title="3 Processing Instructions" href="#rfc.section.3"><link rel="Chapter" title="4 Anchors" href="#rfc.section.4"><link rel="Chapter" title="5 Supported XSLT engines" href="#rfc.section.5"><link rel="Chapter" title="6 Transforming to HTML" href="#rfc.section.6"><link rel="Chapter" title="7 Transforming to XHTML" href="#rfc.section.7"><link rel="Chapter" title="8 Transforming to CHM (Microsoft Compiled Help)" href="#rfc.section.8"><link rel="Chapter" title="9 Transforming to PDF" href="#rfc.section.9"><link rel="Chapter" title="10 Transforming to ePub" href="#rfc.section.10"><link rel="Chapter" title="11 Generic Extensions" href="#rfc.section.11"><link rel="Chapter" title="12 Utilities" href="#rfc.section.12"><link rel="Chapter" href="#rfc.section.13" title="13 Informative References"><link rel="Appendix" title="A RELAX NG Compact Schema" href="#rfc.section.A"><link rel="Appendix" title="B Implementation Notes" href="#rfc.section.B"><link rel="Appendix" title="C Examples" href="#rfc.section.C"><link rel="Appendix" title="D Producing the IETF 'Boilerplate'" href="#rfc.section.D"><link rel="Appendix" title="E License" href="#rfc.section.E"><link rel="Appendix" title="F Change Logs" href="#rfc.section.F"><meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.54 0, 2011-01-10 09:27:20, XSLT vendor: SAXON 6.5.5 from Michael Kay http://saxon.sf.net/"><meta name="keywords" content="RFC2629, xml2rfc, XSLT, hCard, XSL-FO, PDF, GRDDL, epub, Dublin Core"><link rel="schema.dct" href="http://purl.org/dc/terms/"><meta name="dct.creator" content="Reschke, J. F."></head><body><table class="header"><tbody><tr><td class="left">RFC2629 through XSLT</td><td class="right">J. Reschke</td></tr><tr><td class="left"></td><td class="right">greenbytes</td></tr><tr><td class="left"></td><td class="right">January 2011</td></tr></tbody></table><p class="title">Transforming RFC2629-formatted XML through XSLT</p><hr class="noprint"><h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1><ul class="toc"><li>1. <a href="#rfc.section.1">Introduction</a></li><li>2. <a href="#supported.elements">Supported RFC2629 elements</a><ul><li>2.1 <a href="#rfc.section.2.1">Extension elements</a></li></ul></li><li>3. <a href="#processing.instructions">Processing Instructions</a><ul><li>3.1 <a href="#rfc.section.3.1">Supported xml2rfc-compatible PIs</a></li><li>3.2 <a href="#rfc.section.3.2">Unsupported xml2rfc-compatible PIs</a></li><li>3.3 <a href="#rfc.section.3.3">Extension PIs</a></li></ul></li><li>4. <a href="#anchors">Anchors</a></li><li>5. <a href="#xslt.engines">Supported XSLT engines</a><ul><li>5.1 <a href="#rfc.section.5.1">Standalone Engines</a></li><li>5.2 <a href="#xslt.engines.browser">In-Browser Engines</a></li></ul></li><li>6. <a href="#output.html">Transforming to HTML</a><ul><li>6.1 <a href="#rfc.section.6.1">HTML compliance</a></li><li>6.2 <a href="#html.link">Standard HTML LINK elements</a></li><li>6.3 <a href="#rfc.section.6.3">Standard HTML metadata</a></li><li>6.4 <a href="#rfc2731.properties">Dublin Core (RFC2731) metadata</a></li><li>6.5 <a href="#hcard">Experimental hCard support</a></li></ul></li><li>7. <a href="#output.xhtml">Transforming to XHTML</a></li><li>8. <a href="#output.chm">Transforming to CHM (Microsoft Compiled Help)</a></li><li>9. <a href="#output.pdf">Transforming to PDF</a><ul><li>9.1 <a href="#output.pdf.fop">Via XSL-FO</a><ul><li>9.1.1 <a href="#rfc.section.9.1.1">Extension feature matrix</a></li><li>9.1.2 <a href="#rfc.section.9.1.2">Example: producing output for Apache FOP</a></li></ul></li><li>9.2 <a href="#output.pdf.html">Via X(HTML)</a></li></ul></li><li>10. <a href="#output.epub">Transforming to ePub</a></li><li>11. <a href="#extensions">Generic Extensions</a><ul><li>11.1 <a href="#ext.element.abnf-char-sequence"><abnf-char-sequence> element</a></li><li>11.2 <a href="#ext.element.anchor-alias"><anchor-alias> element</a></li><li>11.3 <a href="#ext.element.bcp14"><bcp14> element</a></li><li>11.4 <a href="#ext.element.bb"><bb> element</a></li><li>11.5 <a href="#ext.element.bc"><bc> element</a></li><li>11.6 <a href="#ext.element.blockquote"><blockquote> element</a></li><li>11.7 <a href="#ext.element.boilerplate"><boilerplate> element</a></li><li>11.8 <a href="#ext.element.bt"><bt> element</a></li><li>11.9 <a href="#ext.element.dfn"><dfn> element</a></li><li>11.10 <a href="#ext.element.h"><h> element</a></li><li>11.11 <a href="#ext.element.highlight"><highlight> element</a></li><li>11.12 <a href="#ext.element.length-of"><length-of> element</a></li><li>11.13 <a href="#ext.element.link"><link> element</a></li><li>11.14 <a href="#ext.element.lt"><lt> element</a></li><li>11.15 <a href="#ext.element.note"><note> element</a></li><li>11.16 <a href="#ext.element.parse-xml"><parse-xml> element</a></li><li>11.17 <a href="#ext.element.prose"><prose> element</a></li><li>11.18 <a href="#ext.element.q"><q> element</a></li><li>11.19 <a href="#ext.element.ref"><ref> element</a></li><li>11.20 <a href="#ext.element.source"><source> element</a></li><li>11.21 <a href="#ext.element.sup"><sup> element</a></li><li>11.22 <a href="#ext-rfc2629.artwork">Extensions to Xml2rfc <artwork> element</a></li><li>11.23 <a href="#ext-rfc2629.iref">Extensions to Xml2rfc <iref> element</a></li><li>11.24 <a href="#ext-rfc2629.list">Extensions to Xml2rfc <list> element</a></li><li>11.25 <a href="#ext-rfc2629.rfc">Extensions to Xml2rfc <rfc> element</a></li><li>11.26 <a href="#ext-rfc2629.section">Extensions to Xml2rfc <section> element</a></li><li>11.27 <a href="#ext-rfc2629.xref">Extensions to Xml2rfc <xref> element</a></li></ul></li><li>12. <a href="#utilities">Utilities</a><ul><li>12.1 <a href="#checking-references">Checking References</a></li><li>12.2 <a href="#rfc.section.12.2">Generating Graphs from References</a></li><li>12.3 <a href="#rfc.section.12.3">Producing reference entries for books</a></li><li>12.4 <a href="#clean-for-dtd">Down-converting to RFC2629bis DTD</a></li><li>12.5 <a href="#extract-artwork">Extracting artwork</a></li><li>12.6 <a href="#grddl">GRRDL</a></li></ul></li><li>13. <a href="#rfc.references">Informative References</a></li><li><a href="#rfc.authors">Author's Address</a></li><li>A. <a href="#grammar">RELAX NG Compact Schema</a></li><li>B. <a href="#rfc.section.B">Implementation Notes</a><ul><li>B.1 <a href="#rfc.section.B.1">Recognized type attributes for <artwork> element</a></li></ul></li><li>C. <a href="#examples">Examples</a><ul><li>C.1 <a href="#examples.internalsubset">Using the 'Internal Subset'</a></li><li>C.2 <a href="#examples.customizing">Customization</a></li></ul></li><li>D. <a href="#boilerplate">Producing the IETF 'Boilerplate'</a><ul><li>D.1 <a href="#attribute-ipr">The /rfc/@ipr Attribute</a><ul><li>D.1.1 <a href="#attribute-ipr-current">Current Values: '*trust200902'</a><ul><li>D.1.1.1 <a href="#attribute-ipr-trust200902">trust200902</a></li><li>D.1.1.2 <a href="#attribute-ipr-noModificationTrust200902">noModificationTrust200902</a></li><li>D.1.1.3 <a href="#attribute-ipr-noDerivativesTrust200902">noDerivativesTrust200902</a></li><li>D.1.1.4 <a href="#attribute-ipr-pre5378Trust200902">pre5378Trust200902</a></li></ul></li><li>D.1.2 <a href="#attribute-ipr-historic">Historic Values</a><ul><li>D.1.2.1 <a href="#attribute-ipr-200811">Historic Values: '*trust200811'</a></li><li>D.1.2.2 <a href="#attribute-ipr-3978">Historic Values: '*3978'</a></li><li>D.1.2.3 <a href="#attribute-ipr-3667">Historic Values: '*3667'</a></li><li>D.1.2.4 <a href="#attribute-ipr-2026">Historic Values: '*2026'</a></li></ul></li></ul></li><li>D.2 <a href="#attribute-category">The /rfc/@category Attribute</a></li><li>D.3 <a href="#attribute-submissiontype">The /rfc/@submissionType Attribute</a></li><li>D.4 <a href="#attribute-consensus">The /rfc/@consensus Attribute</a></li><li>D.5 <a href="#attribute-number">The /rfc/@number Attribute</a></li><li>D.6 <a href="#attribute-docname">The /rfc/@docName Attribute</a></li><li>D.7 <a href="#attribute-obsoletes">The /rfc/@obsoletes Attribute</a></li><li>D.8 <a href="#attribute-updates">The /rfc/@updates Attribute</a></li></ul></li><li>E. <a href="#license">License</a></li><li>F. <a href="#rfc.section.F">Change Logs</a><ul><li>F.1 <a href="#rfc.section.F.1">Package</a></li><li>F.2 <a href="#rfc.section.F.2">amazon-asin.xslt</a></li><li>F.3 <a href="#rfc.section.F.3">check-references.xslt</a></li><li>F.4 <a href="#rfc.section.F.4">gen-reference-graph.xslt</a></li><li>F.5 <a href="#rfc.section.F.5">rfc2629.xslt</a></li><li>F.6 <a href="#rfc.section.F.6">rfc2629toFO.xslt</a></li><li>F.7 <a href="#rfc.section.F.7">xsl11toAn.xslt</a></li><li>F.8 <a href="#rfc.section.F.8">xsl11toFop.xslt</a></li><li>F.9 <a href="#rfc.section.F.9">xsl11toXep.xslt</a></li></ul></li><li><a href="#rfc.index">Index</a></li></ul><hr class="noprint"><h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a> Introduction</h1><p id="rfc.section.1.p.1">This document describes a set of XSLT transformations that can be used to transform RFC2629-compliant XML (see <a href="#RFC2629" id="rfc.xref.RFC2629.1"><cite title="Writing I-Ds and RFCs using XML">[RFC2629]</cite></a>) to various output formats, such as HTML and PDF. The main topics are </p><ul><li>compliance to the xml2rfc XML element set (<a href="#supported.elements" title="Supported RFC2629 elements">Section 2</a>),</li><li>support for xml2rfc processing instructions (<a href="#processing.instructions" title="Processing Instructions">Section 3</a>),</li><li>the names of anchor elements generated in HTML and PDF output (<a href="#anchors" title="Anchors">Section 4</a>),</li><li>various XSLT engines that can be used (<a href="#xslt.engines" title="Supported XSLT engines">Section 5</a>),</li><li>outputting HTML (<a href="#output.html" title="Transforming to HTML">Section 6</a>) and XHTML (<a href="#output.xhtml" title="Transforming to XHTML">Section 7</a>),</li><li>outputting CHM (Compiled Microsoft Help, <a href="#output.chm" title="Transforming to CHM (Microsoft Compiled Help)">Section 8</a>),</li><li>outputting PDF (<a href="#output.pdf" title="Transforming to PDF">Section 9</a>),</li><li>extensions to the xml2rfc vocabulary (<a href="#extensions" title="Generic Extensions">Section 11</a>).</li><li>various utilities (<a href="#utilities" title="Utilities">Section 12</a>).</li></ul><p id="rfc.section.1.p.2">The full distribution is available at <<a href="http://greenbytes.de/tech/webdav/rfc2629xslt.zip">http://greenbytes.de/tech/webdav/rfc2629xslt.zip</a>>.</p><hr class="noprint"><h1 id="rfc.section.2" class="np"><a href="#rfc.section.2">2.</a> <a id="supported.elements" href="#supported.elements">Supported RFC2629 elements</a></h1><p id="rfc.section.2.p.1"> <samp>rfc2629.xslt</samp> supports both all RFC2629 grammar elements and the extensions implemented in xml2rfc 1.33.</p><h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a> Extension elements</h2><p id="rfc.section.2.1.p.1"> <samp>rfc2629.xslt</samp> supports two kind of extension elements, using different XML namespaces.</p><p id="rfc.section.2.1.p.2">The first set contains (hopefully) generally useful extensions, see <a href="#extensions" title="Generic Extensions">Section 11</a>.</p><p id="rfc.section.2.1.p.3">The second set is used for change and issue tracking and currently is not documented here. Please email the author in case you're interested in using these extensions.</p><hr class="noprint"><h1 id="rfc.section.3" class="np"><a href="#rfc.section.3">3.</a> <a id="processing.instructions" href="#processing.instructions">Processing Instructions</a></h1><p id="rfc.section.3.p.1">All PIs can be set as XSLT parameter as well, overriding any value that is found in the source file to be transformed.</p><div id="rfc.figure.u.1"></div> <p>Using processing instructions:</p> <pre class="text"><?rfc toc="yes"?>385 </style><link rel="Contents" href="#rfc.toc"><link rel="Author" href="#rfc.authors"><link rel="Index" href="#rfc.index"><link rel="Chapter" title="1 Introduction" href="#rfc.section.1"><link rel="Chapter" title="2 Supported RFC2629 elements" href="#rfc.section.2"><link rel="Chapter" title="3 Processing Instructions" href="#rfc.section.3"><link rel="Chapter" title="4 Anchors" href="#rfc.section.4"><link rel="Chapter" title="5 Supported XSLT engines" href="#rfc.section.5"><link rel="Chapter" title="6 Transforming to HTML" href="#rfc.section.6"><link rel="Chapter" title="7 Transforming to XHTML" href="#rfc.section.7"><link rel="Chapter" title="8 Transforming to CHM (Microsoft Compiled Help)" href="#rfc.section.8"><link rel="Chapter" title="9 Transforming to PDF" href="#rfc.section.9"><link rel="Chapter" title="10 Transforming to ePub" href="#rfc.section.10"><link rel="Chapter" title="11 Generic Extensions" href="#rfc.section.11"><link rel="Chapter" title="12 Utilities" href="#rfc.section.12"><link rel="Chapter" href="#rfc.section.13" title="13 Informative References"><link rel="Appendix" title="A RELAX NG Compact Schema" href="#rfc.section.A"><link rel="Appendix" title="B Implementation Notes" href="#rfc.section.B"><link rel="Appendix" title="C Examples" href="#rfc.section.C"><link rel="Appendix" title="D Producing the IETF 'Boilerplate'" href="#rfc.section.D"><link rel="Appendix" title="E License" href="#rfc.section.E"><link rel="Appendix" title="F Change Logs" href="#rfc.section.F"><meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.543, 2011-02-18 21:03:40, XSLT vendor: SAXON 6.5.5 from Michael Kay http://saxon.sf.net/"><meta name="keywords" content="RFC2629, xml2rfc, XSLT, hCard, XSL-FO, PDF, GRDDL, epub, Dublin Core"><link rel="schema.dct" href="http://purl.org/dc/terms/"><meta name="dct.creator" content="Reschke, J. F."></head><body><table class="header"><tbody><tr><td class="left">RFC2629 through XSLT</td><td class="right">J. Reschke</td></tr><tr><td class="left"></td><td class="right">greenbytes</td></tr><tr><td class="left"></td><td class="right">February 2011</td></tr></tbody></table><p class="title">Transforming RFC2629-formatted XML through XSLT</p><hr class="noprint"><h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1><ul class="toc"><li>1. <a href="#rfc.section.1">Introduction</a></li><li>2. <a href="#supported.elements">Supported RFC2629 elements</a><ul><li>2.1 <a href="#rfc.section.2.1">Extension elements</a></li></ul></li><li>3. <a href="#processing.instructions">Processing Instructions</a><ul><li>3.1 <a href="#rfc.section.3.1">Supported xml2rfc-compatible PIs</a></li><li>3.2 <a href="#rfc.section.3.2">Unsupported xml2rfc-compatible PIs</a></li><li>3.3 <a href="#rfc.section.3.3">Extension PIs</a></li></ul></li><li>4. <a href="#anchors">Anchors</a></li><li>5. <a href="#xslt.engines">Supported XSLT engines</a><ul><li>5.1 <a href="#rfc.section.5.1">Standalone Engines</a></li><li>5.2 <a href="#xslt.engines.browser">In-Browser Engines</a></li></ul></li><li>6. <a href="#output.html">Transforming to HTML</a><ul><li>6.1 <a href="#rfc.section.6.1">HTML compliance</a></li><li>6.2 <a href="#html.link">Standard HTML LINK elements</a></li><li>6.3 <a href="#rfc.section.6.3">Standard HTML metadata</a></li><li>6.4 <a href="#rfc2731.properties">Dublin Core (RFC2731) metadata</a></li><li>6.5 <a href="#hcard">Experimental hCard support</a></li></ul></li><li>7. <a href="#output.xhtml">Transforming to XHTML</a></li><li>8. <a href="#output.chm">Transforming to CHM (Microsoft Compiled Help)</a></li><li>9. <a href="#output.pdf">Transforming to PDF</a><ul><li>9.1 <a href="#output.pdf.fop">Via XSL-FO</a><ul><li>9.1.1 <a href="#rfc.section.9.1.1">Extension feature matrix</a></li><li>9.1.2 <a href="#rfc.section.9.1.2">Example: producing output for Apache FOP</a></li></ul></li><li>9.2 <a href="#output.pdf.html">Via X(HTML)</a></li></ul></li><li>10. <a href="#output.epub">Transforming to ePub</a></li><li>11. <a href="#extensions">Generic Extensions</a><ul><li>11.1 <a href="#ext.element.abnf-char-sequence"><abnf-char-sequence> element</a></li><li>11.2 <a href="#ext.element.anchor-alias"><anchor-alias> element</a></li><li>11.3 <a href="#ext.element.bcp14"><bcp14> element</a></li><li>11.4 <a href="#ext.element.bb"><bb> element</a></li><li>11.5 <a href="#ext.element.bc"><bc> element</a></li><li>11.6 <a href="#ext.element.blockquote"><blockquote> element</a></li><li>11.7 <a href="#ext.element.boilerplate"><boilerplate> element</a></li><li>11.8 <a href="#ext.element.bt"><bt> element</a></li><li>11.9 <a href="#ext.element.dfn"><dfn> element</a></li><li>11.10 <a href="#ext.element.h"><h> element</a></li><li>11.11 <a href="#ext.element.highlight"><highlight> element</a></li><li>11.12 <a href="#ext.element.length-of"><length-of> element</a></li><li>11.13 <a href="#ext.element.link"><link> element</a></li><li>11.14 <a href="#ext.element.lt"><lt> element</a></li><li>11.15 <a href="#ext.element.note"><note> element</a></li><li>11.16 <a href="#ext.element.parse-xml"><parse-xml> element</a></li><li>11.17 <a href="#ext.element.prose"><prose> element</a></li><li>11.18 <a href="#ext.element.q"><q> element</a></li><li>11.19 <a href="#ext.element.ref"><ref> element</a></li><li>11.20 <a href="#ext.element.source"><source> element</a></li><li>11.21 <a href="#ext.element.sup"><sup> element</a></li><li>11.22 <a href="#ext-rfc2629.artwork">Extensions to Xml2rfc <artwork> element</a></li><li>11.23 <a href="#ext-rfc2629.iref">Extensions to Xml2rfc <iref> element</a></li><li>11.24 <a href="#ext-rfc2629.list">Extensions to Xml2rfc <list> element</a></li><li>11.25 <a href="#ext-rfc2629.rfc">Extensions to Xml2rfc <rfc> element</a></li><li>11.26 <a href="#ext-rfc2629.section">Extensions to Xml2rfc <section> element</a></li><li>11.27 <a href="#ext-rfc2629.xref">Extensions to Xml2rfc <xref> element</a></li></ul></li><li>12. <a href="#utilities">Utilities</a><ul><li>12.1 <a href="#checking-references">Checking References</a></li><li>12.2 <a href="#rfc.section.12.2">Generating Graphs from References</a></li><li>12.3 <a href="#rfc.section.12.3">Producing reference entries for books</a></li><li>12.4 <a href="#clean-for-dtd">Down-converting to RFC2629bis DTD</a></li><li>12.5 <a href="#extract-artwork">Extracting artwork</a></li><li>12.6 <a href="#grddl">GRRDL</a></li></ul></li><li>13. <a href="#rfc.references">Informative References</a></li><li><a href="#rfc.authors">Author's Address</a></li><li>A. <a href="#grammar">RELAX NG Compact Schema</a></li><li>B. <a href="#rfc.section.B">Implementation Notes</a><ul><li>B.1 <a href="#rfc.section.B.1">Recognized type attributes for <artwork> element</a></li></ul></li><li>C. <a href="#examples">Examples</a><ul><li>C.1 <a href="#examples.internalsubset">Using the 'Internal Subset'</a></li><li>C.2 <a href="#examples.customizing">Customization</a></li></ul></li><li>D. <a href="#boilerplate">Producing the IETF 'Boilerplate'</a><ul><li>D.1 <a href="#attribute-ipr">The /rfc/@ipr Attribute</a><ul><li>D.1.1 <a href="#attribute-ipr-current">Current Values: '*trust200902'</a><ul><li>D.1.1.1 <a href="#attribute-ipr-trust200902">trust200902</a></li><li>D.1.1.2 <a href="#attribute-ipr-noModificationTrust200902">noModificationTrust200902</a></li><li>D.1.1.3 <a href="#attribute-ipr-noDerivativesTrust200902">noDerivativesTrust200902</a></li><li>D.1.1.4 <a href="#attribute-ipr-pre5378Trust200902">pre5378Trust200902</a></li></ul></li><li>D.1.2 <a href="#attribute-ipr-historic">Historic Values</a><ul><li>D.1.2.1 <a href="#attribute-ipr-200811">Historic Values: '*trust200811'</a></li><li>D.1.2.2 <a href="#attribute-ipr-3978">Historic Values: '*3978'</a></li><li>D.1.2.3 <a href="#attribute-ipr-3667">Historic Values: '*3667'</a></li><li>D.1.2.4 <a href="#attribute-ipr-2026">Historic Values: '*2026'</a></li></ul></li></ul></li><li>D.2 <a href="#attribute-category">The /rfc/@category Attribute</a></li><li>D.3 <a href="#attribute-submissiontype">The /rfc/@submissionType Attribute</a></li><li>D.4 <a href="#attribute-consensus">The /rfc/@consensus Attribute</a></li><li>D.5 <a href="#attribute-number">The /rfc/@number Attribute</a></li><li>D.6 <a href="#attribute-docname">The /rfc/@docName Attribute</a></li><li>D.7 <a href="#attribute-obsoletes">The /rfc/@obsoletes Attribute</a></li><li>D.8 <a href="#attribute-updates">The /rfc/@updates Attribute</a></li></ul></li><li>E. <a href="#license">License</a></li><li>F. <a href="#rfc.section.F">Change Logs</a><ul><li>F.1 <a href="#rfc.section.F.1">Package</a></li><li>F.2 <a href="#rfc.section.F.2">amazon-asin.xslt</a></li><li>F.3 <a href="#rfc.section.F.3">check-references.xslt</a></li><li>F.4 <a href="#rfc.section.F.4">gen-reference-graph.xslt</a></li><li>F.5 <a href="#rfc.section.F.5">rfc2629.xslt</a></li><li>F.6 <a href="#rfc.section.F.6">rfc2629toFO.xslt</a></li><li>F.7 <a href="#rfc.section.F.7">xsl11toAn.xslt</a></li><li>F.8 <a href="#rfc.section.F.8">xsl11toFop.xslt</a></li><li>F.9 <a href="#rfc.section.F.9">xsl11toXep.xslt</a></li></ul></li><li><a href="#rfc.index">Index</a></li></ul><hr class="noprint"><h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a> Introduction</h1><p id="rfc.section.1.p.1">This document describes a set of XSLT transformations that can be used to transform RFC2629-compliant XML (see <a href="#RFC2629" id="rfc.xref.RFC2629.1"><cite title="Writing I-Ds and RFCs using XML">[RFC2629]</cite></a>) to various output formats, such as HTML and PDF. The main topics are </p><ul><li>compliance to the xml2rfc XML element set (<a href="#supported.elements" title="Supported RFC2629 elements">Section 2</a>),</li><li>support for xml2rfc processing instructions (<a href="#processing.instructions" title="Processing Instructions">Section 3</a>),</li><li>the names of anchor elements generated in HTML and PDF output (<a href="#anchors" title="Anchors">Section 4</a>),</li><li>various XSLT engines that can be used (<a href="#xslt.engines" title="Supported XSLT engines">Section 5</a>),</li><li>outputting HTML (<a href="#output.html" title="Transforming to HTML">Section 6</a>) and XHTML (<a href="#output.xhtml" title="Transforming to XHTML">Section 7</a>),</li><li>outputting CHM (Compiled Microsoft Help, <a href="#output.chm" title="Transforming to CHM (Microsoft Compiled Help)">Section 8</a>),</li><li>outputting PDF (<a href="#output.pdf" title="Transforming to PDF">Section 9</a>),</li><li>extensions to the xml2rfc vocabulary (<a href="#extensions" title="Generic Extensions">Section 11</a>).</li><li>various utilities (<a href="#utilities" title="Utilities">Section 12</a>).</li></ul><p id="rfc.section.1.p.2">The full distribution is available at <<a href="http://greenbytes.de/tech/webdav/rfc2629xslt.zip">http://greenbytes.de/tech/webdav/rfc2629xslt.zip</a>>.</p><hr class="noprint"><h1 id="rfc.section.2" class="np"><a href="#rfc.section.2">2.</a> <a id="supported.elements" href="#supported.elements">Supported RFC2629 elements</a></h1><p id="rfc.section.2.p.1"> <samp>rfc2629.xslt</samp> supports both all RFC2629 grammar elements and the extensions implemented in xml2rfc 1.33.</p><h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a> Extension elements</h2><p id="rfc.section.2.1.p.1"> <samp>rfc2629.xslt</samp> supports two kind of extension elements, using different XML namespaces.</p><p id="rfc.section.2.1.p.2">The first set contains (hopefully) generally useful extensions, see <a href="#extensions" title="Generic Extensions">Section 11</a>.</p><p id="rfc.section.2.1.p.3">The second set is used for change and issue tracking and currently is not documented here. Please email the author in case you're interested in using these extensions.</p><hr class="noprint"><h1 id="rfc.section.3" class="np"><a href="#rfc.section.3">3.</a> <a id="processing.instructions" href="#processing.instructions">Processing Instructions</a></h1><p id="rfc.section.3.p.1">All PIs can be set as XSLT parameter as well, overriding any value that is found in the source file to be transformed.</p><div id="rfc.figure.u.1"></div> <p>Using processing instructions:</p> <pre class="text"><?rfc toc="yes"?> 380 386 <?rfc-ext support-rfc2731="no"?> 381 387 </pre> <div id="rfc.figure.u.2"></div> <p>Using XSLT parameters (Saxon):</p> <pre class="text">java -cp saxon.jar com.icl.saxon.StyleSheet source.xml rfc2629.xslt \ … … 492 498 </reference> 493 499 </references> 494 </pre><p id="rfc.section.12.3.p.3">Note that the resulting XML usually requires checking, in this case Amazon's database is playing tricks with Marshall's name...</p><h2 id="rfc.section.12.4"><a href="#rfc.section.12.4">12.4</a> <a id="clean-for-dtd" href="#clean-for-dtd">Down-converting to RFC2629bis DTD</a></h2><p id="rfc.section.12.4.p.1"> <samp>clean-for-DTD.xslt</samp> 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).</p><p id="rfc.section.12.4.p.2">The following mappings are done: </p><ul><li><iref> elements inside <artwork> elements are moved in front of the enclosing <figure> element.</li><li><xref> elements inside <artwork> are expanded just like in regular text (that is, the markup is stripped, but the element is replaced by the applicable replacement text).</li><li><x:<a href="#ext.element.anchor-alias" class="smpl">anchor-alias</a>> elements get stripped.</li><li><x:<a href="#ext.element.bcp14" class="smpl">bcp14</a>> elements get stripped.</li><li><x:<a href="#ext.element.bb" class="smpl">bb</a>>, <x:<a href="#ext.element.bc" class="smpl">bc</a>> and <x:<a href="#ext.element.bt" class="smpl">bt</a>> elements get stripped.</li><li><x:<a href="#ext.element.blockquote" class="smpl">blockquote</a>> elements get converted to indented text (through a <list> element).</li><li><x:<a href="#ext.element.dfn" class="smpl">dfn</a>> elements get stripped.</li><li><x:<a href="#ext.element.h" class="smpl">h</a>> elements get stripped.</li><li><x:<a href="#ext.element.link" class="smpl">link</a>> elements get stripped.</li><li><x:<a href="#ext.element. note" class="smpl">note</a>> elements get converted to indented text (through a <list> element).</li><li><x:<a href="#ext.element.q" class="smpl">q</a>> elements get stripped, with apostrophes added around the text.</li><li><x:<a href="#ext.element.prose" class="smpl">prose</a>> elements are transformed into <seriesInfo> elements (which is an abuse of the element and only a workaround until xml2rfc gets a matching extension).</li><li><x:<a href="#ext.element.ref" class="smpl">ref</a>> elements get replaced by <xref> elements, targetting either the anchor or another anchor with matching <x:<a href="#ext.element.anchor-alias" class="smpl">anchor-alias</a>> child element.</li></ul><h2 id="rfc.section.12.5"><a href="#rfc.section.12.5">12.5</a> <a id="extract-artwork" href="#extract-artwork">Extracting artwork</a></h2><p id="rfc.section.12.5.p.1">With <samp>extract-artwork.xslt</samp>, artwork elements named through the "name" attribute can be extracted. This can be used to automatically check their syntax (for instance, when ABNFs appear within a figure element).</p><div id="rfc.figure.u.20"></div><p>For instance:</p> <pre class="text">saxon rfc3986.xml extract-artwork.xslt name=uri.abnf500 </pre><p id="rfc.section.12.3.p.3">Note that the resulting XML usually requires checking, in this case Amazon's database is playing tricks with Marshall's name...</p><h2 id="rfc.section.12.4"><a href="#rfc.section.12.4">12.4</a> <a id="clean-for-dtd" href="#clean-for-dtd">Down-converting to RFC2629bis DTD</a></h2><p id="rfc.section.12.4.p.1"> <samp>clean-for-DTD.xslt</samp> 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).</p><p id="rfc.section.12.4.p.2">The following mappings are done: </p><ul><li><iref> elements inside <artwork> elements are moved in front of the enclosing <figure> element.</li><li><xref> elements inside <artwork> are expanded just like in regular text (that is, the markup is stripped, but the element is replaced by the applicable replacement text).</li><li><x:<a href="#ext.element.anchor-alias" class="smpl">anchor-alias</a>> elements get stripped.</li><li><x:<a href="#ext.element.bcp14" class="smpl">bcp14</a>> elements get stripped.</li><li><x:<a href="#ext.element.bb" class="smpl">bb</a>>, <x:<a href="#ext.element.bc" class="smpl">bc</a>> and <x:<a href="#ext.element.bt" class="smpl">bt</a>> elements get stripped.</li><li><x:<a href="#ext.element.blockquote" class="smpl">blockquote</a>> elements get converted to indented text (through a <list> element).</li><li><x:<a href="#ext.element.dfn" class="smpl">dfn</a>> elements get stripped.</li><li><x:<a href="#ext.element.h" class="smpl">h</a>> elements get stripped.</li><li><x:<a href="#ext.element.link" class="smpl">link</a>> elements get stripped.</li><li><x:<a href="#ext.element.lt" class="smpl">lt</a>> elements get collapsed into a single <lt> element with added <vspace> added to simulate paragraph breaks.</li><li><x:<a href="#ext.element.note" class="smpl">note</a>> elements get converted to indented text (through a <list> element).</li><li><x:<a href="#ext.element.q" class="smpl">q</a>> elements get stripped, with apostrophes added around the text.</li><li><x:<a href="#ext.element.prose" class="smpl">prose</a>> elements are transformed into <seriesInfo> elements (which is an abuse of the element and only a workaround until xml2rfc gets a matching extension).</li><li><x:<a href="#ext.element.ref" class="smpl">ref</a>> elements get replaced by <xref> elements, targetting either the anchor or another anchor with matching <x:<a href="#ext.element.anchor-alias" class="smpl">anchor-alias</a>> child element.</li></ul><h2 id="rfc.section.12.5"><a href="#rfc.section.12.5">12.5</a> <a id="extract-artwork" href="#extract-artwork">Extracting artwork</a></h2><p id="rfc.section.12.5.p.1">With <samp>extract-artwork.xslt</samp>, artwork elements named through the "name" attribute can be extracted. This can be used to automatically check their syntax (for instance, when ABNFs appear within a figure element).</p><div id="rfc.figure.u.20"></div><p>For instance:</p> <pre class="text">saxon rfc3986.xml extract-artwork.xslt name=uri.abnf 495 501 </pre> <p id="rfc.section.12.5.p.3">In addition, artwork of a specific type can be extracted, such as with:</p><div id="rfc.figure.u.21"></div> <pre class="text">saxon rfc3986.xml extract-artwork.xslt type=abnf 496 502 </pre> <p id="rfc.section.12.5.p.5">When extracting by type, artwork elements with a specified name can be excluded; this can be handy when the document uses some kind of schema language, and an appendix contains the collected schema, repeating definitions from earlier on. Example:</p><div id="rfc.figure.u.22"></div><pre class="text">saxon rfc3986.xml extract-artwork.xslt type=abnf except-name=clschm
Note: See TracChangeset
for help on using the changeset viewer.