Changeset 1497 for rfc2629xslt


Ignore:
Timestamp:
Jan 1, 2012, 6:50:59 AM (8 years ago)
Author:
julian.reschke@…
Message:

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

Location:
rfc2629xslt
Files:
56 edited

Legend:

Unmodified
Added
Removed
  • rfc2629xslt/rfc2629.xslt

    r1472 r1497  
    316316    <xsl:with-param name="nodes" select="/processing-instruction('rfc-ext')"/>
    317317    <xsl:with-param name="attr" select="'sec-no-trailing-dots'"/>
     318  </xsl:call-template>
     319</xsl:param>
     320
     321<!-- check artwork width? -->
     322
     323<xsl:param name="xml2rfc-ext-check-artwork-width">
     324  <xsl:call-template name="parse-pis">
     325    <xsl:with-param name="nodes" select="/processing-instruction('rfc-ext')"/>
     326    <xsl:with-param name="attr" select="'check-artwork-width'"/>
     327    <xsl:with-param name="default" select="'yes'"/>
    318328  </xsl:call-template>
    319329</xsl:param>
     
    746756  <xsl:param name="indent"/>
    747757  <xsl:choose>
     758    <xsl:when test="$xml2rfc-ext-check-artwork-width='no'">
     759      <!-- skip check -->
     760    </xsl:when>
    748761    <xsl:when test="not(contains($content,'&#10;'))">
    749762      <xsl:if test="string-length($content) > 69 + $indent">
     
    855868      <xsl:if test="address/postal">
    856869        <span class="adr">
    857           <xsl:if test="address/postal/street!=''">
     870          <xsl:if test="address/postal/street">
    858871            <xsl:for-each select="address/postal/street">
    859               <span class="street-address vcardline">
     872              <xsl:variable name="street">
    860873                <xsl:call-template name="extract-normalized">
    861874                  <xsl:with-param name="node" select="."/>
    862875                  <xsl:with-param name="name" select="'street'"/>
    863876                </xsl:call-template>
    864               </span>
     877              </xsl:variable>
     878              <xsl:if test="$street!=''">
     879                <span class="street-address vcardline">
     880                  <xsl:value-of select="$street"/>
     881                </span>
     882              </xsl:if>
    865883            </xsl:for-each>
    866884          </xsl:if>
     
    868886            <span class="vcardline">
    869887              <xsl:if test="address/postal/city">
    870                 <span class="locality">
     888                <xsl:variable name="city">
    871889                  <xsl:call-template name="extract-normalized">
    872890                    <xsl:with-param name="node" select="address/postal/city"/>
    873891                    <xsl:with-param name="name" select="'address/postal/city'"/>
    874892                  </xsl:call-template>
    875                 </span>
    876                 <xsl:text>, </xsl:text>
     893                </xsl:variable>
     894                <xsl:if test="$city!=''">
     895                  <span class="locality">
     896                    <xsl:value-of select="$city"/>
     897                  </span>
     898                  <xsl:text>, </xsl:text>
     899                </xsl:if>
    877900              </xsl:if>
    878901              <xsl:if test="address/postal/region">
    879                 <span class="region">
     902                <xsl:variable name="region">
    880903                  <xsl:call-template name="extract-normalized">
    881904                    <xsl:with-param name="node" select="address/postal/region"/>
    882905                    <xsl:with-param name="name" select="'address/postal/region'"/>
    883906                  </xsl:call-template>
    884                 </span>
    885                 <xsl:text>&#160;</xsl:text>
     907                </xsl:variable>
     908                <xsl:if test="$region!=''">
     909                  <span class="region">
     910                    <xsl:value-of select="$region"/>
     911                  </span>
     912                  <xsl:text>&#160;</xsl:text>
     913                </xsl:if>
    886914              </xsl:if>
    887915              <xsl:if test="address/postal/code">
    888                 <span class="postal-code">
     916                <xsl:variable name="code">
    889917                  <xsl:call-template name="extract-normalized">
    890918                    <xsl:with-param name="node" select="address/postal/code"/>
    891919                    <xsl:with-param name="name" select="'address/postal/code'"/>
    892920                  </xsl:call-template>
    893                 </span>
     921                </xsl:variable>
     922                <xsl:if test="$code!=''">
     923                  <span class="postal-code">
     924                    <xsl:value-of select="$code"/>
     925                  </span>
     926                </xsl:if>
    894927              </xsl:if>
    895928            </span>
    896929          </xsl:if>
    897930          <xsl:if test="address/postal/country">
    898             <span class="country-name vcardline">
     931            <xsl:variable name="country">
    899932              <xsl:call-template name="extract-normalized">
    900933                <xsl:with-param name="node" select="address/postal/country"/>
    901934                <xsl:with-param name="name" select="'address/postal/country'"/>
    902935              </xsl:call-template>
    903             </span>
     936            </xsl:variable>
     937            <xsl:if test="$country!=''">
     938              <span class="country-name vcardline">
     939                <xsl:value-of select="$country"/>
     940              </span>
     941            </xsl:if>
    904942          </xsl:if>
    905943        </span>
    906944      </xsl:if>
    907945      <xsl:if test="address/phone">
    908         <span class="vcardline tel">
    909           <xsl:text>Phone: </xsl:text>
    910           <a href="tel:{translate(address/phone,' ','')}"><span class="value"><xsl:value-of select="address/phone" /></span></a>
    911         </span>
     946        <xsl:variable name="phone">
     947          <xsl:call-template name="extract-normalized">
     948            <xsl:with-param name="node" select="address/phone"/>
     949            <xsl:with-param name="name" select="'address/phone'"/>
     950          </xsl:call-template>
     951        </xsl:variable>
     952        <xsl:if test="$phone!=''">
     953          <span class="vcardline tel">
     954            <xsl:text>Phone: </xsl:text>
     955            <a href="tel:{translate($phone,' ','')}"><span class="value"><xsl:value-of select="$phone" /></span></a>
     956          </span>
     957        </xsl:if>
    912958      </xsl:if>
    913959      <xsl:if test="address/facsimile">
    914         <span class="vcardline tel">
    915           <span class="type">Fax</span><xsl:text>: </xsl:text>
    916           <a href="fax:{translate(address/facsimile,' ','')}"><span class="value"><xsl:value-of select="address/facsimile" /></span></a>
    917         </span>
     960        <xsl:variable name="facsimile">
     961          <xsl:call-template name="extract-normalized">
     962            <xsl:with-param name="node" select="address/facsimile"/>
     963            <xsl:with-param name="name" select="'address/facsimile'"/>
     964          </xsl:call-template>
     965        </xsl:variable>
     966        <xsl:if test="$facsimile!=''">
     967          <span class="vcardline tel">
     968            <span class="type">Fax</span><xsl:text>: </xsl:text>
     969            <a href="fax:{translate($facsimile,' ','')}"><span class="value"><xsl:value-of select="$facsimile" /></span></a>
     970          </span>
     971        </xsl:if>
    918972      </xsl:if>
    919973      <xsl:for-each select="address/email">
     
    939993          <xsl:call-template name="extract-uri"/>
    940994        </xsl:variable>
    941 
    942         <span class="vcardline">
    943           <xsl:text>URI: </xsl:text>
    944           <a href="{$uri}" class="url"><xsl:value-of select="$uri" /></a>
    945           <xsl:if test="@x:annotation">
    946             <xsl:text> </xsl:text>
    947             <i><xsl:value-of select="@x:annotation"/></i>
    948           </xsl:if>
    949         </span>
     995        <xsl:if test="$uri!=''">
     996          <span class="vcardline">
     997            <xsl:text>URI: </xsl:text>
     998            <a href="{$uri}" class="url"><xsl:value-of select="$uri" /></a>
     999            <xsl:if test="@x:annotation">
     1000              <xsl:text> </xsl:text>
     1001              <i><xsl:value-of select="@x:annotation"/></i>
     1002            </xsl:if>
     1003          </span>
     1004        </xsl:if>
    9501005      </xsl:for-each>
    9511006    </address>
     
    36603715  .print2col {
    36613716    column-count: 2;
    3662     -moz-column-count: 2;<!-- for Firefox -->
    3663     column-fill: auto;<!-- for PrinceXML -->
     3717    column-fill: auto;
    36643718  }
    36653719<xsl:if test="$xml2rfc-ext-justification='print'">
     
    63606414    <xsl:text>http://greenbytes.de/tech/webdav/rfc2629.xslt, </xsl:text>
    63616415    <!-- when RCS keyword substitution in place, add version info -->
    6362     <xsl:if test="contains('$Revision: 1.558 $',':')">
    6363       <xsl:value-of select="concat('Revision ',normalize-space(translate(substring-after('$Revision: 1.558 $', 'Revision: '),'$','')),', ')" />
     6416    <xsl:if test="contains('$Revision: 1.561 $',':')">
     6417      <xsl:value-of select="concat('Revision ',normalize-space(translate(substring-after('$Revision: 1.561 $', 'Revision: '),'$','')),', ')" />
    63646418    </xsl:if>
    6365     <xsl:if test="contains('$Date: 2011-11-05 16:48:52 $',':')">
    6366       <xsl:value-of select="concat(normalize-space(translate(substring-after('$Date: 2011-11-05 16:48:52 $', 'Date: '),'$','')),', ')" />
     6419    <xsl:if test="contains('$Date: 2011-12-24 13:06:50 $',':')">
     6420      <xsl:value-of select="concat(normalize-space(translate(substring-after('$Date: 2011-12-24 13:06:50 $', 'Date: '),'$','')),', ')" />
    63676421    </xsl:if>
    63686422    <xsl:value-of select="concat('XSLT vendor: ',system-property('xsl:vendor'),' ',system-property('xsl:vendor-url'))" />
     
    65696623    </xsl:call-template>
    65706624  </xsl:if>
     6625  <xsl:if test="$text=''">
     6626    <xsl:call-template name="warning">
     6627      <xsl:with-param name="msg">missing text in <xsl:value-of select="$name"/></xsl:with-param>
     6628    </xsl:call-template>
     6629  </xsl:if>
    65716630  <xsl:value-of select="$text"/>
    65726631</xsl:template>
     
    66046663    <xsl:call-template name="warning">
    66056664      <xsl:with-param name="msg">excessive whitespace in URI: '<xsl:value-of select="."/>'</xsl:with-param>
     6665    </xsl:call-template>
     6666  </xsl:if>
     6667  <xsl:if test="$uri=''">
     6668    <xsl:call-template name="warning">
     6669      <xsl:with-param name="msg">URI is empty</xsl:with-param>
    66066670    </xsl:call-template>
    66076671  </xsl:if>
     
    67456809                      <xsl:when test="$attrname='allow-markup-in-artwork'"/>
    67466810                      <xsl:when test="$attrname='authors-section'"/>
     6811                      <xsl:when test="$attrname='check-artwork-width'"/>
    67476812                      <xsl:when test="$attrname='duplex'"/>
    67486813                      <xsl:when test="$attrname='include-index'"/>
  • rfc2629xslt/rfc2629toXHTML.xslt

    r1472 r1497  
    272272    <xsl:with-param name="nodes" select="/processing-instruction('rfc-ext')"/>
    273273    <xsl:with-param name="attr" select="'sec-no-trailing-dots'"/>
     274  </xsl:call-template>
     275</xsl:param>
     276
     277<!-- check artwork width? -->
     278
     279<xsl:param name="xml2rfc-ext-check-artwork-width">
     280  <xsl:call-template name="parse-pis">
     281    <xsl:with-param name="nodes" select="/processing-instruction('rfc-ext')"/>
     282    <xsl:with-param name="attr" select="'check-artwork-width'"/>
     283    <xsl:with-param name="default" select="'yes'"/>
    274284  </xsl:call-template>
    275285</xsl:param>
     
    614624  <xsl:param name="indent"/>
    615625  <xsl:choose>
     626    <xsl:when test="$xml2rfc-ext-check-artwork-width='no'">
     627      <!-- skip check -->
     628    </xsl:when>
    616629    <xsl:when test="not(contains($content,'&#xA;'))">
    617630      <xsl:if test="string-length($content) &gt; 69 + $indent">
     
    723736      <xsl:if test="address/postal">
    724737        <span class="adr">
    725           <xsl:if test="address/postal/street!=''">
     738          <xsl:if test="address/postal/street">
    726739            <xsl:for-each select="address/postal/street">
    727               <span class="street-address vcardline">
     740              <xsl:variable name="street">
    728741                <xsl:call-template name="extract-normalized">
    729742                  <xsl:with-param name="node" select="."/>
    730743                  <xsl:with-param name="name" select="'street'"/>
    731744                </xsl:call-template>
    732               </span>
     745              </xsl:variable>
     746              <xsl:if test="$street!=''">
     747                <span class="street-address vcardline">
     748                  <xsl:value-of select="$street"/>
     749                </span>
     750              </xsl:if>
    733751            </xsl:for-each>
    734752          </xsl:if>
     
    736754            <span class="vcardline">
    737755              <xsl:if test="address/postal/city">
    738                 <span class="locality">
     756                <xsl:variable name="city">
    739757                  <xsl:call-template name="extract-normalized">
    740758                    <xsl:with-param name="node" select="address/postal/city"/>
    741759                    <xsl:with-param name="name" select="'address/postal/city'"/>
    742760                  </xsl:call-template>
    743                 </span>
    744                 <xsl:text>, </xsl:text>
     761                </xsl:variable>
     762                <xsl:if test="$city!=''">
     763                  <span class="locality">
     764                    <xsl:value-of select="$city"/>
     765                  </span>
     766                  <xsl:text>, </xsl:text>
     767                </xsl:if>
    745768              </xsl:if>
    746769              <xsl:if test="address/postal/region">
    747                 <span class="region">
     770                <xsl:variable name="region">
    748771                  <xsl:call-template name="extract-normalized">
    749772                    <xsl:with-param name="node" select="address/postal/region"/>
    750773                    <xsl:with-param name="name" select="'address/postal/region'"/>
    751774                  </xsl:call-template>
    752                 </span>
    753                 <xsl:text> </xsl:text>
     775                </xsl:variable>
     776                <xsl:if test="$region!=''">
     777                  <span class="region">
     778                    <xsl:value-of select="$region"/>
     779                  </span>
     780                  <xsl:text> </xsl:text>
     781                </xsl:if>
    754782              </xsl:if>
    755783              <xsl:if test="address/postal/code">
    756                 <span class="postal-code">
     784                <xsl:variable name="code">
    757785                  <xsl:call-template name="extract-normalized">
    758786                    <xsl:with-param name="node" select="address/postal/code"/>
    759787                    <xsl:with-param name="name" select="'address/postal/code'"/>
    760788                  </xsl:call-template>
    761                 </span>
     789                </xsl:variable>
     790                <xsl:if test="$code!=''">
     791                  <span class="postal-code">
     792                    <xsl:value-of select="$code"/>
     793                  </span>
     794                </xsl:if>
    762795              </xsl:if>
    763796            </span>
    764797          </xsl:if>
    765798          <xsl:if test="address/postal/country">
    766             <span class="country-name vcardline">
     799            <xsl:variable name="country">
    767800              <xsl:call-template name="extract-normalized">
    768801                <xsl:with-param name="node" select="address/postal/country"/>
    769802                <xsl:with-param name="name" select="'address/postal/country'"/>
    770803              </xsl:call-template>
    771             </span>
     804            </xsl:variable>
     805            <xsl:if test="$country!=''">
     806              <span class="country-name vcardline">
     807                <xsl:value-of select="$country"/>
     808              </span>
     809            </xsl:if>
    772810          </xsl:if>
    773811        </span>
    774812      </xsl:if>
    775813      <xsl:if test="address/phone">
    776         <span class="vcardline tel">
    777           <xsl:text>Phone: </xsl:text>
    778           <a href="tel:{translate(address/phone,' ','')}"><span class="value"><xsl:value-of select="address/phone"/></span></a>
    779         </span>
     814        <xsl:variable name="phone">
     815          <xsl:call-template name="extract-normalized">
     816            <xsl:with-param name="node" select="address/phone"/>
     817            <xsl:with-param name="name" select="'address/phone'"/>
     818          </xsl:call-template>
     819        </xsl:variable>
     820        <xsl:if test="$phone!=''">
     821          <span class="vcardline tel">
     822            <xsl:text>Phone: </xsl:text>
     823            <a href="tel:{translate($phone,' ','')}"><span class="value"><xsl:value-of select="$phone"/></span></a>
     824          </span>
     825        </xsl:if>
    780826      </xsl:if>
    781827      <xsl:if test="address/facsimile">
    782         <span class="vcardline tel">
    783           <span class="type">Fax</span><xsl:text>: </xsl:text>
    784           <a href="fax:{translate(address/facsimile,' ','')}"><span class="value"><xsl:value-of select="address/facsimile"/></span></a>
    785         </span>
     828        <xsl:variable name="facsimile">
     829          <xsl:call-template name="extract-normalized">
     830            <xsl:with-param name="node" select="address/facsimile"/>
     831            <xsl:with-param name="name" select="'address/facsimile'"/>
     832          </xsl:call-template>
     833        </xsl:variable>
     834        <xsl:if test="$facsimile!=''">
     835          <span class="vcardline tel">
     836            <span class="type">Fax</span><xsl:text>: </xsl:text>
     837            <a href="fax:{translate($facsimile,' ','')}"><span class="value"><xsl:value-of select="$facsimile"/></span></a>
     838          </span>
     839        </xsl:if>
    786840      </xsl:if>
    787841      <xsl:for-each select="address/email">
     
    807861          <xsl:call-template name="extract-uri"/>
    808862        </xsl:variable>
    809 
    810         <span class="vcardline">
    811           <xsl:text>URI: </xsl:text>
    812           <a href="{$uri}" class="url"><xsl:value-of select="$uri"/></a>
    813           <xsl:if test="@x:annotation">
    814             <xsl:text> </xsl:text>
    815             <i><xsl:value-of select="@x:annotation"/></i>
    816           </xsl:if>
    817         </span>
     863        <xsl:if test="$uri!=''">
     864          <span class="vcardline">
     865            <xsl:text>URI: </xsl:text>
     866            <a href="{$uri}" class="url"><xsl:value-of select="$uri"/></a>
     867            <xsl:if test="@x:annotation">
     868              <xsl:text> </xsl:text>
     869              <i><xsl:value-of select="@x:annotation"/></i>
     870            </xsl:if>
     871          </span>
     872        </xsl:if>
    818873      </xsl:for-each>
    819874    </address>
     
    35283583  .print2col {
    35293584    column-count: 2;
    3530     -moz-column-count: 2;<!-- for Firefox -->
    3531     column-fill: auto;<!-- for PrinceXML -->
     3585    column-fill: auto;
    35323586  }
    35333587<xsl:if test="$xml2rfc-ext-justification='print'">
     
    62156269    <xsl:text>http://greenbytes.de/tech/webdav/rfc2629.xslt, </xsl:text>
    62166270    <!-- when RCS keyword substitution in place, add version info -->
    6217     <xsl:if test="contains('$Revision: 1.558 $',':')">
    6218       <xsl:value-of select="concat('Revision ',normalize-space(translate(substring-after('$Revision: 1.558 $', 'Revision: '),'$','')),', ')"/>
     6271    <xsl:if test="contains('$Revision: 1.561 $',':')">
     6272      <xsl:value-of select="concat('Revision ',normalize-space(translate(substring-after('$Revision: 1.561 $', 'Revision: '),'$','')),', ')"/>
    62196273    </xsl:if>
    6220     <xsl:if test="contains('$Date: 2011-11-05 16:48:52 $',':')">
    6221       <xsl:value-of select="concat(normalize-space(translate(substring-after('$Date: 2011-11-05 16:48:52 $', 'Date: '),'$','')),', ')"/>
     6274    <xsl:if test="contains('$Date: 2011-12-24 13:06:50 $',':')">
     6275      <xsl:value-of select="concat(normalize-space(translate(substring-after('$Date: 2011-12-24 13:06:50 $', 'Date: '),'$','')),', ')"/>
    62226276    </xsl:if>
    62236277    <xsl:value-of select="concat('XSLT vendor: ',system-property('xsl:vendor'),' ',system-property('xsl:vendor-url'))"/>
     
    64246478    </xsl:call-template>
    64256479  </xsl:if>
     6480  <xsl:if test="$text=''">
     6481    <xsl:call-template name="warning">
     6482      <xsl:with-param name="msg">missing text in <xsl:value-of select="$name"/></xsl:with-param>
     6483    </xsl:call-template>
     6484  </xsl:if>
    64266485  <xsl:value-of select="$text"/>
    64276486</xsl:template>
     
    64596518    <xsl:call-template name="warning">
    64606519      <xsl:with-param name="msg">excessive whitespace in URI: '<xsl:value-of select="."/>'</xsl:with-param>
     6520    </xsl:call-template>
     6521  </xsl:if>
     6522  <xsl:if test="$uri=''">
     6523    <xsl:call-template name="warning">
     6524      <xsl:with-param name="msg">URI is empty</xsl:with-param>
    64616525    </xsl:call-template>
    64626526  </xsl:if>
     
    66006664                      <xsl:when test="$attrname='allow-markup-in-artwork'"/>
    66016665                      <xsl:when test="$attrname='authors-section'"/>
     6666                      <xsl:when test="$attrname='check-artwork-width'"/>
    66026667                      <xsl:when test="$attrname='duplex'"/>
    66036668                      <xsl:when test="$attrname='include-index'"/>
  • rfc2629xslt/rfc2629xslt.html

    r1472 r1497  
    346346  .print2col {
    347347    column-count: 2;
    348     -moz-column-count: 2;
    349348    column-fill: auto;
    350349  }
     
    383382    }
    384383}
    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.558, 2011-11-05 16:48:52, 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">November 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.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1">Introduction</a></li><li>2.&nbsp;&nbsp;&nbsp;<a href="#supported.elements">Supported RFC2629 elements</a><ul><li>2.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.1">Extension elements</a></li></ul></li><li>3.&nbsp;&nbsp;&nbsp;<a href="#processing.instructions">Processing Instructions</a><ul><li>3.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.1">Supported xml2rfc-compatible PIs</a></li><li>3.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.2">Unsupported xml2rfc-compatible PIs</a></li><li>3.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.3">Extension PIs</a></li></ul></li><li>4.&nbsp;&nbsp;&nbsp;<a href="#anchors">Anchors</a></li><li>5.&nbsp;&nbsp;&nbsp;<a href="#xslt.engines">Supported XSLT engines</a><ul><li>5.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.1">Standalone Engines</a></li><li>5.2&nbsp;&nbsp;&nbsp;<a href="#xslt.engines.browser">In-Browser Engines</a></li></ul></li><li>6.&nbsp;&nbsp;&nbsp;<a href="#output.html">Transforming to HTML</a><ul><li>6.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.6.1">HTML compliance</a></li><li>6.2&nbsp;&nbsp;&nbsp;<a href="#html.link">Standard HTML LINK elements</a></li><li>6.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.6.3">Standard HTML metadata</a></li><li>6.4&nbsp;&nbsp;&nbsp;<a href="#rfc2731.properties">Dublin Core (RFC2731) metadata</a></li><li>6.5&nbsp;&nbsp;&nbsp;<a href="#hcard">Experimental hCard support</a></li></ul></li><li>7.&nbsp;&nbsp;&nbsp;<a href="#output.xhtml">Transforming to XHTML</a></li><li>8.&nbsp;&nbsp;&nbsp;<a href="#output.chm">Transforming to CHM (Microsoft Compiled Help)</a></li><li>9.&nbsp;&nbsp;&nbsp;<a href="#output.pdf">Transforming to PDF</a><ul><li>9.1&nbsp;&nbsp;&nbsp;<a href="#output.pdf.fop">Via XSL-FO</a><ul><li>9.1.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.9.1.1">Extension feature matrix</a></li><li>9.1.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.9.1.2">Example: producing output for Apache FOP</a></li></ul></li><li>9.2&nbsp;&nbsp;&nbsp;<a href="#output.pdf.html">Via X(HTML)</a></li></ul></li><li>10.&nbsp;&nbsp;&nbsp;<a href="#output.epub">Transforming to ePub</a></li><li>11.&nbsp;&nbsp;&nbsp;<a href="#extensions">Generic Extensions</a><ul><li>11.1&nbsp;&nbsp;&nbsp;<a href="#ext.element.abnf-char-sequence">&lt;abnf-char-sequence&gt; element</a></li><li>11.2&nbsp;&nbsp;&nbsp;<a href="#ext.element.anchor-alias">&lt;anchor-alias&gt; element</a></li><li>11.3&nbsp;&nbsp;&nbsp;<a href="#ext.element.bcp14">&lt;bcp14&gt; element</a></li><li>11.4&nbsp;&nbsp;&nbsp;<a href="#ext.element.bb">&lt;bb&gt; element</a></li><li>11.5&nbsp;&nbsp;&nbsp;<a href="#ext.element.bc">&lt;bc&gt; element</a></li><li>11.6&nbsp;&nbsp;&nbsp;<a href="#ext.element.blockquote">&lt;blockquote&gt; element</a></li><li>11.7&nbsp;&nbsp;&nbsp;<a href="#ext.element.boilerplate">&lt;boilerplate&gt; element</a></li><li>11.8&nbsp;&nbsp;&nbsp;<a href="#ext.element.bt">&lt;bt&gt; element</a></li><li>11.9&nbsp;&nbsp;&nbsp;<a href="#ext.element.dfn">&lt;dfn&gt; element</a></li><li>11.10&nbsp;&nbsp;&nbsp;<a href="#ext.element.h">&lt;h&gt; element</a></li><li>11.11&nbsp;&nbsp;&nbsp;<a href="#ext.element.highlight">&lt;highlight&gt; element</a></li><li>11.12&nbsp;&nbsp;&nbsp;<a href="#ext.element.length-of">&lt;length-of&gt; element</a></li><li>11.13&nbsp;&nbsp;&nbsp;<a href="#ext.element.link">&lt;link&gt; element</a></li><li>11.14&nbsp;&nbsp;&nbsp;<a href="#ext.element.lt">&lt;lt&gt; element</a></li><li>11.15&nbsp;&nbsp;&nbsp;<a href="#ext.element.note">&lt;note&gt; element</a></li><li>11.16&nbsp;&nbsp;&nbsp;<a href="#ext.element.parse-xml">&lt;parse-xml&gt; element</a></li><li>11.17&nbsp;&nbsp;&nbsp;<a href="#ext.element.prose">&lt;prose&gt; element</a></li><li>11.18&nbsp;&nbsp;&nbsp;<a href="#ext.element.q">&lt;q&gt; element</a></li><li>11.19&nbsp;&nbsp;&nbsp;<a href="#ext.element.ref">&lt;ref&gt; element</a></li><li>11.20&nbsp;&nbsp;&nbsp;<a href="#ext.element.source">&lt;source&gt; element</a></li><li>11.21&nbsp;&nbsp;&nbsp;<a href="#ext.element.sup">&lt;sup&gt; element</a></li><li>11.22&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.artwork">Extensions to Xml2rfc &lt;artwork&gt; element</a></li><li>11.23&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.iref">Extensions to Xml2rfc &lt;iref&gt; element</a></li><li>11.24&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.list">Extensions to Xml2rfc &lt;list&gt; element</a></li><li>11.25&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.rfc">Extensions to Xml2rfc &lt;rfc&gt; element</a></li><li>11.26&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.section">Extensions to Xml2rfc &lt;section&gt; element</a></li><li>11.27&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.xref">Extensions to Xml2rfc &lt;xref&gt; element</a></li></ul></li><li>12.&nbsp;&nbsp;&nbsp;<a href="#utilities">Utilities</a><ul><li>12.1&nbsp;&nbsp;&nbsp;<a href="#checking-references">Checking References</a></li><li>12.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12.2">Generating Graphs from References</a></li><li>12.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12.3">Producing reference entries for books</a></li><li>12.4&nbsp;&nbsp;&nbsp;<a href="#clean-for-dtd">Down-converting to RFC2629bis DTD</a></li><li>12.5&nbsp;&nbsp;&nbsp;<a href="#extract-artwork">Extracting artwork</a></li><li>12.6&nbsp;&nbsp;&nbsp;<a href="#grddl">GRRDL</a></li></ul></li><li>13.&nbsp;&nbsp;&nbsp;<a href="#rfc.references">Informative References</a></li><li><a href="#rfc.authors">Author's Address</a></li><li>A.&nbsp;&nbsp;&nbsp;<a href="#grammar">RELAX NG Compact Schema</a></li><li>B.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.B">Implementation Notes</a><ul><li>B.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.B.1">Recognized type attributes for &lt;artwork&gt; element</a></li></ul></li><li>C.&nbsp;&nbsp;&nbsp;<a href="#examples">Examples</a><ul><li>C.1&nbsp;&nbsp;&nbsp;<a href="#examples.internalsubset">Using the 'Internal Subset'</a></li><li>C.2&nbsp;&nbsp;&nbsp;<a href="#examples.customizing">Customization</a></li></ul></li><li>D.&nbsp;&nbsp;&nbsp;<a href="#boilerplate">Producing the IETF 'Boilerplate'</a><ul><li>D.1&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr">The /rfc/@ipr Attribute</a><ul><li>D.1.1&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-current">Current Values: '*trust200902'</a><ul><li>D.1.1.1&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-trust200902">trust200902</a></li><li>D.1.1.2&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-noModificationTrust200902">noModificationTrust200902</a></li><li>D.1.1.3&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-noDerivativesTrust200902">noDerivativesTrust200902</a></li><li>D.1.1.4&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-pre5378Trust200902">pre5378Trust200902</a></li></ul></li><li>D.1.2&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-historic">Historic Values</a><ul><li>D.1.2.1&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-200811">Historic Values: '*trust200811'</a></li><li>D.1.2.2&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-3978">Historic Values: '*3978'</a></li><li>D.1.2.3&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-3667">Historic Values: '*3667'</a></li><li>D.1.2.4&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-2026">Historic Values: '*2026'</a></li></ul></li></ul></li><li>D.2&nbsp;&nbsp;&nbsp;<a href="#attribute-category">The /rfc/@category Attribute</a></li><li>D.3&nbsp;&nbsp;&nbsp;<a href="#attribute-submissiontype">The /rfc/@submissionType Attribute</a></li><li>D.4&nbsp;&nbsp;&nbsp;<a href="#attribute-consensus">The /rfc/@consensus Attribute</a></li><li>D.5&nbsp;&nbsp;&nbsp;<a href="#attribute-number">The /rfc/@number Attribute</a></li><li>D.6&nbsp;&nbsp;&nbsp;<a href="#attribute-docname">The /rfc/@docName Attribute</a></li><li>D.7&nbsp;&nbsp;&nbsp;<a href="#attribute-obsoletes">The /rfc/@obsoletes Attribute</a></li><li>D.8&nbsp;&nbsp;&nbsp;<a href="#attribute-updates">The /rfc/@updates Attribute</a></li></ul></li><li>E.&nbsp;&nbsp;&nbsp;<a href="#license">License</a></li><li>F.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F">Change Logs</a><ul><li>F.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.1">Package</a></li><li>F.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.2">amazon-asin.xslt</a></li><li>F.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.3">check-references.xslt</a></li><li>F.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.4">gen-reference-graph.xslt</a></li><li>F.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.5">rfc2629.xslt</a></li><li>F.6&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.6">rfc2629toFO.xslt</a></li><li>F.7&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.7">xsl11toAn.xslt</a></li><li>F.8&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.8">xsl11toFop.xslt</a></li><li>F.9&nbsp;&nbsp;&nbsp;<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>&nbsp;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&nbsp;2</a>),</li><li>support for xml2rfc processing instructions (<a href="#processing.instructions" title="Processing Instructions">Section&nbsp;3</a>),</li><li>the names of anchor elements generated in HTML and PDF output (<a href="#anchors" title="Anchors">Section&nbsp;4</a>),</li><li>various XSLT engines that can be used (<a href="#xslt.engines" title="Supported XSLT engines">Section&nbsp;5</a>),</li><li>outputting HTML (<a href="#output.html" title="Transforming to HTML">Section&nbsp;6</a>) and XHTML (<a href="#output.xhtml" title="Transforming to XHTML">Section&nbsp;7</a>),</li><li>outputting CHM (Compiled Microsoft Help, <a href="#output.chm" title="Transforming to CHM (Microsoft Compiled Help)">Section&nbsp;8</a>),</li><li>outputting PDF (<a href="#output.pdf" title="Transforming to PDF">Section&nbsp;9</a>),</li><li>outputting ePub (<a href="#output.epub" title="Transforming to ePub">Section&nbsp;10</a>),</li><li>extensions to the xml2rfc vocabulary (<a href="#extensions" title="Generic Extensions">Section&nbsp;11</a>).</li><li>various utilities (<a href="#utilities" title="Utilities">Section&nbsp;12</a>).</li></ul><p id="rfc.section.1.p.2">The full distribution is available at &lt;<a href="http://greenbytes.de/tech/webdav/rfc2629xslt.zip">http://greenbytes.de/tech/webdav/rfc2629xslt.zip</a>&gt;.</p><hr class="noprint"><h1 id="rfc.section.2" class="np"><a href="#rfc.section.2">2.</a>&nbsp;<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.36.</p><h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a>&nbsp;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&nbsp;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>&nbsp;<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">&lt;?rfc toc="yes"?&gt;
     384</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.561, 2011-12-24 13:06:50, 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">November 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.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1">Introduction</a></li><li>2.&nbsp;&nbsp;&nbsp;<a href="#supported.elements">Supported RFC2629 elements</a><ul><li>2.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2.1">Extension elements</a></li></ul></li><li>3.&nbsp;&nbsp;&nbsp;<a href="#processing.instructions">Processing Instructions</a><ul><li>3.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.1">Supported xml2rfc-compatible PIs</a></li><li>3.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.2">Unsupported xml2rfc-compatible PIs</a></li><li>3.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.3">Extension PIs</a></li></ul></li><li>4.&nbsp;&nbsp;&nbsp;<a href="#anchors">Anchors</a></li><li>5.&nbsp;&nbsp;&nbsp;<a href="#xslt.engines">Supported XSLT engines</a><ul><li>5.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.1">Standalone Engines</a></li><li>5.2&nbsp;&nbsp;&nbsp;<a href="#xslt.engines.browser">In-Browser Engines</a></li></ul></li><li>6.&nbsp;&nbsp;&nbsp;<a href="#output.html">Transforming to HTML</a><ul><li>6.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.6.1">HTML compliance</a></li><li>6.2&nbsp;&nbsp;&nbsp;<a href="#html.link">Standard HTML LINK elements</a></li><li>6.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.6.3">Standard HTML metadata</a></li><li>6.4&nbsp;&nbsp;&nbsp;<a href="#rfc2731.properties">Dublin Core (RFC2731) metadata</a></li><li>6.5&nbsp;&nbsp;&nbsp;<a href="#hcard">Experimental hCard support</a></li></ul></li><li>7.&nbsp;&nbsp;&nbsp;<a href="#output.xhtml">Transforming to XHTML</a></li><li>8.&nbsp;&nbsp;&nbsp;<a href="#output.chm">Transforming to CHM (Microsoft Compiled Help)</a></li><li>9.&nbsp;&nbsp;&nbsp;<a href="#output.pdf">Transforming to PDF</a><ul><li>9.1&nbsp;&nbsp;&nbsp;<a href="#output.pdf.fop">Via XSL-FO</a><ul><li>9.1.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.9.1.1">Extension feature matrix</a></li><li>9.1.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.9.1.2">Example: producing output for Apache FOP</a></li></ul></li><li>9.2&nbsp;&nbsp;&nbsp;<a href="#output.pdf.html">Via X(HTML)</a></li></ul></li><li>10.&nbsp;&nbsp;&nbsp;<a href="#output.epub">Transforming to ePub</a></li><li>11.&nbsp;&nbsp;&nbsp;<a href="#extensions">Generic Extensions</a><ul><li>11.1&nbsp;&nbsp;&nbsp;<a href="#ext.element.abnf-char-sequence">&lt;abnf-char-sequence&gt; element</a></li><li>11.2&nbsp;&nbsp;&nbsp;<a href="#ext.element.anchor-alias">&lt;anchor-alias&gt; element</a></li><li>11.3&nbsp;&nbsp;&nbsp;<a href="#ext.element.bcp14">&lt;bcp14&gt; element</a></li><li>11.4&nbsp;&nbsp;&nbsp;<a href="#ext.element.bb">&lt;bb&gt; element</a></li><li>11.5&nbsp;&nbsp;&nbsp;<a href="#ext.element.bc">&lt;bc&gt; element</a></li><li>11.6&nbsp;&nbsp;&nbsp;<a href="#ext.element.blockquote">&lt;blockquote&gt; element</a></li><li>11.7&nbsp;&nbsp;&nbsp;<a href="#ext.element.boilerplate">&lt;boilerplate&gt; element</a></li><li>11.8&nbsp;&nbsp;&nbsp;<a href="#ext.element.bt">&lt;bt&gt; element</a></li><li>11.9&nbsp;&nbsp;&nbsp;<a href="#ext.element.dfn">&lt;dfn&gt; element</a></li><li>11.10&nbsp;&nbsp;&nbsp;<a href="#ext.element.h">&lt;h&gt; element</a></li><li>11.11&nbsp;&nbsp;&nbsp;<a href="#ext.element.highlight">&lt;highlight&gt; element</a></li><li>11.12&nbsp;&nbsp;&nbsp;<a href="#ext.element.length-of">&lt;length-of&gt; element</a></li><li>11.13&nbsp;&nbsp;&nbsp;<a href="#ext.element.link">&lt;link&gt; element</a></li><li>11.14&nbsp;&nbsp;&nbsp;<a href="#ext.element.lt">&lt;lt&gt; element</a></li><li>11.15&nbsp;&nbsp;&nbsp;<a href="#ext.element.note">&lt;note&gt; element</a></li><li>11.16&nbsp;&nbsp;&nbsp;<a href="#ext.element.parse-xml">&lt;parse-xml&gt; element</a></li><li>11.17&nbsp;&nbsp;&nbsp;<a href="#ext.element.prose">&lt;prose&gt; element</a></li><li>11.18&nbsp;&nbsp;&nbsp;<a href="#ext.element.q">&lt;q&gt; element</a></li><li>11.19&nbsp;&nbsp;&nbsp;<a href="#ext.element.ref">&lt;ref&gt; element</a></li><li>11.20&nbsp;&nbsp;&nbsp;<a href="#ext.element.source">&lt;source&gt; element</a></li><li>11.21&nbsp;&nbsp;&nbsp;<a href="#ext.element.sup">&lt;sup&gt; element</a></li><li>11.22&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.artwork">Extensions to Xml2rfc &lt;artwork&gt; element</a></li><li>11.23&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.iref">Extensions to Xml2rfc &lt;iref&gt; element</a></li><li>11.24&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.list">Extensions to Xml2rfc &lt;list&gt; element</a></li><li>11.25&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.rfc">Extensions to Xml2rfc &lt;rfc&gt; element</a></li><li>11.26&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.section">Extensions to Xml2rfc &lt;section&gt; element</a></li><li>11.27&nbsp;&nbsp;&nbsp;<a href="#ext-rfc2629.xref">Extensions to Xml2rfc &lt;xref&gt; element</a></li></ul></li><li>12.&nbsp;&nbsp;&nbsp;<a href="#utilities">Utilities</a><ul><li>12.1&nbsp;&nbsp;&nbsp;<a href="#checking-references">Checking References</a></li><li>12.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12.2">Generating Graphs from References</a></li><li>12.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12.3">Producing reference entries for books</a></li><li>12.4&nbsp;&nbsp;&nbsp;<a href="#clean-for-dtd">Down-converting to RFC2629bis DTD</a></li><li>12.5&nbsp;&nbsp;&nbsp;<a href="#extract-artwork">Extracting artwork</a></li><li>12.6&nbsp;&nbsp;&nbsp;<a href="#grddl">GRRDL</a></li></ul></li><li>13.&nbsp;&nbsp;&nbsp;<a href="#rfc.references">Informative References</a></li><li><a href="#rfc.authors">Author's Address</a></li><li>A.&nbsp;&nbsp;&nbsp;<a href="#grammar">RELAX NG Compact Schema</a></li><li>B.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.B">Implementation Notes</a><ul><li>B.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.B.1">Recognized type attributes for &lt;artwork&gt; element</a></li></ul></li><li>C.&nbsp;&nbsp;&nbsp;<a href="#examples">Examples</a><ul><li>C.1&nbsp;&nbsp;&nbsp;<a href="#examples.internalsubset">Using the 'Internal Subset'</a></li><li>C.2&nbsp;&nbsp;&nbsp;<a href="#examples.customizing">Customization</a></li></ul></li><li>D.&nbsp;&nbsp;&nbsp;<a href="#boilerplate">Producing the IETF 'Boilerplate'</a><ul><li>D.1&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr">The /rfc/@ipr Attribute</a><ul><li>D.1.1&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-current">Current Values: '*trust200902'</a><ul><li>D.1.1.1&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-trust200902">trust200902</a></li><li>D.1.1.2&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-noModificationTrust200902">noModificationTrust200902</a></li><li>D.1.1.3&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-noDerivativesTrust200902">noDerivativesTrust200902</a></li><li>D.1.1.4&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-pre5378Trust200902">pre5378Trust200902</a></li></ul></li><li>D.1.2&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-historic">Historic Values</a><ul><li>D.1.2.1&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-200811">Historic Values: '*trust200811'</a></li><li>D.1.2.2&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-3978">Historic Values: '*3978'</a></li><li>D.1.2.3&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-3667">Historic Values: '*3667'</a></li><li>D.1.2.4&nbsp;&nbsp;&nbsp;<a href="#attribute-ipr-2026">Historic Values: '*2026'</a></li></ul></li></ul></li><li>D.2&nbsp;&nbsp;&nbsp;<a href="#attribute-category">The /rfc/@category Attribute</a></li><li>D.3&nbsp;&nbsp;&nbsp;<a href="#attribute-submissiontype">The /rfc/@submissionType Attribute</a></li><li>D.4&nbsp;&nbsp;&nbsp;<a href="#attribute-consensus">The /rfc/@consensus Attribute</a></li><li>D.5&nbsp;&nbsp;&nbsp;<a href="#attribute-number">The /rfc/@number Attribute</a></li><li>D.6&nbsp;&nbsp;&nbsp;<a href="#attribute-docname">The /rfc/@docName Attribute</a></li><li>D.7&nbsp;&nbsp;&nbsp;<a href="#attribute-obsoletes">The /rfc/@obsoletes Attribute</a></li><li>D.8&nbsp;&nbsp;&nbsp;<a href="#attribute-updates">The /rfc/@updates Attribute</a></li></ul></li><li>E.&nbsp;&nbsp;&nbsp;<a href="#license">License</a></li><li>F.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F">Change Logs</a><ul><li>F.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.1">Package</a></li><li>F.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.2">amazon-asin.xslt</a></li><li>F.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.3">check-references.xslt</a></li><li>F.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.4">gen-reference-graph.xslt</a></li><li>F.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.5">rfc2629.xslt</a></li><li>F.6&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.6">rfc2629toFO.xslt</a></li><li>F.7&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.7">xsl11toAn.xslt</a></li><li>F.8&nbsp;&nbsp;&nbsp;<a href="#rfc.section.F.8">xsl11toFop.xslt</a></li><li>F.9&nbsp;&nbsp;&nbsp;<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>&nbsp;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&nbsp;2</a>),</li><li>support for xml2rfc processing instructions (<a href="#processing.instructions" title="Processing Instructions">Section&nbsp;3</a>),</li><li>the names of anchor elements generated in HTML and PDF output (<a href="#anchors" title="Anchors">Section&nbsp;4</a>),</li><li>various XSLT engines that can be used (<a href="#xslt.engines" title="Supported XSLT engines">Section&nbsp;5</a>),</li><li>outputting HTML (<a href="#output.html" title="Transforming to HTML">Section&nbsp;6</a>) and XHTML (<a href="#output.xhtml" title="Transforming to XHTML">Section&nbsp;7</a>),</li><li>outputting CHM (Compiled Microsoft Help, <a href="#output.chm" title="Transforming to CHM (Microsoft Compiled Help)">Section&nbsp;8</a>),</li><li>outputting PDF (<a href="#output.pdf" title="Transforming to PDF">Section&nbsp;9</a>),</li><li>outputting ePub (<a href="#output.epub" title="Transforming to ePub">Section&nbsp;10</a>),</li><li>extensions to the xml2rfc vocabulary (<a href="#extensions" title="Generic Extensions">Section&nbsp;11</a>).</li><li>various utilities (<a href="#utilities" title="Utilities">Section&nbsp;12</a>).</li></ul><p id="rfc.section.1.p.2">The full distribution is available at &lt;<a href="http://greenbytes.de/tech/webdav/rfc2629xslt.zip">http://greenbytes.de/tech/webdav/rfc2629xslt.zip</a>&gt;.</p><hr class="noprint"><h1 id="rfc.section.2" class="np"><a href="#rfc.section.2">2.</a>&nbsp;<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.36.</p><h2 id="rfc.section.2.1"><a href="#rfc.section.2.1">2.1</a>&nbsp;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&nbsp;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>&nbsp;<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">&lt;?rfc toc="yes"?&gt;
    386385&lt;?rfc-ext support-rfc2731="no"?&gt;
    387386</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 \
  • rfc2629xslt/rfc2629xslt.txt

    r1472 r1497  
    44RFC2629 through XSLT                                          J. Reschke
    55                                                              greenbytes
    6                                                         November 5, 2011
     6                                                           November 2011
    77
    88
  • rfc2629xslt/samples/rfc2629.xslt

    r1472 r1497  
    316316    <xsl:with-param name="nodes" select="/processing-instruction('rfc-ext')"/>
    317317    <xsl:with-param name="attr" select="'sec-no-trailing-dots'"/>
     318  </xsl:call-template>
     319</xsl:param>
     320
     321<!-- check artwork width? -->
     322
     323<xsl:param name="xml2rfc-ext-check-artwork-width">
     324  <xsl:call-template name="parse-pis">
     325    <xsl:with-param name="nodes" select="/processing-instruction('rfc-ext')"/>
     326    <xsl:with-param name="attr" select="'check-artwork-width'"/>
     327    <xsl:with-param name="default" select="'yes'"/>
    318328  </xsl:call-template>
    319329</xsl:param>
     
    746756  <xsl:param name="indent"/>
    747757  <xsl:choose>
     758    <xsl:when test="$xml2rfc-ext-check-artwork-width='no'">
     759      <!-- skip check -->
     760    </xsl:when>
    748761    <xsl:when test="not(contains($content,'&#10;'))">
    749762      <xsl:if test="string-length($content) > 69 + $indent">
     
    855868      <xsl:if test="address/postal">
    856869        <span class="adr">
    857           <xsl:if test="address/postal/street!=''">
     870          <xsl:if test="address/postal/street">
    858871            <xsl:for-each select="address/postal/street">
    859               <span class="street-address vcardline">
     872              <xsl:variable name="street">
    860873                <xsl:call-template name="extract-normalized">
    861874                  <xsl:with-param name="node" select="."/>
    862875                  <xsl:with-param name="name" select="'street'"/>
    863876                </xsl:call-template>
    864               </span>
     877              </xsl:variable>
     878              <xsl:if test="$street!=''">
     879                <span class="street-address vcardline">
     880                  <xsl:value-of select="$street"/>
     881                </span>
     882              </xsl:if>
    865883            </xsl:for-each>
    866884          </xsl:if>
     
    868886            <span class="vcardline">
    869887              <xsl:if test="address/postal/city">
    870                 <span class="locality">
     888                <xsl:variable name="city">
    871889                  <xsl:call-template name="extract-normalized">
    872890                    <xsl:with-param name="node" select="address/postal/city"/>
    873891                    <xsl:with-param name="name" select="'address/postal/city'"/>
    874892                  </xsl:call-template>
    875                 </span>
    876                 <xsl:text>, </xsl:text>
     893                </xsl:variable>
     894                <xsl:if test="$city!=''">
     895                  <span class="locality">
     896                    <xsl:value-of select="$city"/>
     897                  </span>
     898                  <xsl:text>, </xsl:text>
     899                </xsl:if>
    877900              </xsl:if>
    878901              <xsl:if test="address/postal/region">
    879                 <span class="region">
     902                <xsl:variable name="region">
    880903                  <xsl:call-template name="extract-normalized">
    881904                    <xsl:with-param name="node" select="address/postal/region"/>
    882905                    <xsl:with-param name="name" select="'address/postal/region'"/>
    883906                  </xsl:call-template>
    884                 </span>
    885                 <xsl:text>&#160;</xsl:text>
     907                </xsl:variable>
     908                <xsl:if test="$region!=''">
     909                  <span class="region">
     910                    <xsl:value-of select="$region"/>
     911                  </span>
     912                  <xsl:text>&#160;</xsl:text>
     913                </xsl:if>
    886914              </xsl:if>
    887915              <xsl:if test="address/postal/code">
    888                 <span class="postal-code">
     916                <xsl:variable name="code">
    889917                  <xsl:call-template name="extract-normalized">
    890918                    <xsl:with-param name="node" select="address/postal/code"/>
    891919                    <xsl:with-param name="name" select="'address/postal/code'"/>
    892920                  </xsl:call-template>
    893                 </span>
     921                </xsl:variable>
     922                <xsl:if test="$code!=''">
     923                  <span class="postal-code">
     924                    <xsl:value-of select="$code"/>
     925                  </span>
     926                </xsl:if>
    894927              </xsl:if>
    895928            </span>
    896929          </xsl:if>
    897930          <xsl:if test="address/postal/country">
    898             <span class="country-name vcardline">
     931            <xsl:variable name="country">
    899932              <xsl:call-template name="extract-normalized">
    900933                <xsl:with-param name="node" select="address/postal/country"/>
    901934                <xsl:with-param name="name" select="'address/postal/country'"/>
    902935              </xsl:call-template>
    903             </span>
     936            </xsl:variable>
     937            <xsl:if test="$country!=''">
     938              <span class="country-name vcardline">
     939                <xsl:value-of select="$country"/>
     940              </span>
     941            </xsl:if>
    904942          </xsl:if>
    905943        </span>
    906944      </xsl:if>
    907945      <xsl:if test="address/phone">
    908         <span class="vcardline tel">
    909           <xsl:text>Phone: </xsl:text>
    910           <a href="tel:{translate(address/phone,' ','')}"><span class="value"><xsl:value-of select="address/phone" /></span></a>
    911         </span>
     946        <xsl:variable name="phone">
     947          <xsl:call-template name="extract-normalized">
     948            <xsl:with-param name="node" select="address/phone"/>
     949            <xsl:with-param name="name" select="'address/phone'"/>
     950          </xsl:call-template>
     951        </xsl:variable>
     952        <xsl:if test="$phone!=''">
     953          <span class="vcardline tel">
     954            <xsl:text>Phone: </xsl:text>
     955            <a href="tel:{translate($phone,' ','')}"><span class="value"><xsl:value-of select="$phone" /></span></a>
     956          </span>
     957        </xsl:if>
    912958      </xsl:if>
    913959      <xsl:if test="address/facsimile">
    914         <span class="vcardline tel">
    915           <span class="type">Fax</span><xsl:text>: </xsl:text>
    916           <a href="fax:{translate(address/facsimile,' ','')}"><span class="value"><xsl:value-of select="address/facsimile" /></span></a>
    917         </span>
     960        <xsl:variable name="facsimile">
     961          <xsl:call-template name="extract-normalized">
     962            <xsl:with-param name="node" select="address/facsimile"/>
     963            <xsl:with-param name="name" select="'address/facsimile'"/>
     964          </xsl:call-template>
     965        </xsl:variable>
     966        <xsl:if test="$facsimile!=''">
     967          <span class="vcardline tel">
     968            <span class="type">Fax</span><xsl:text>: </xsl:text>
     969            <a href="fax:{translate($facsimile,' ','')}"><span class="value"><xsl:value-of select="$facsimile" /></span></a>
     970          </span>
     971        </xsl:if>
    918972      </xsl:if>
    919973      <xsl:for-each select="address/email">
     
    939993          <xsl:call-template name="extract-uri"/>
    940994        </xsl:variable>
    941 
    942         <span class="vcardline">
    943           <xsl:text>URI: </xsl:text>
    944           <a href="{$uri}" class="url"><xsl:value-of select="$uri" /></a>
    945           <xsl:if test="@x:annotation">
    946             <xsl:text> </xsl:text>
    947             <i><xsl:value-of select="@x:annotation"/></i>
    948           </xsl:if>
    949         </span>
     995        <xsl:if test="$uri!=''">
     996          <span class="vcardline">
     997            <xsl:text>URI: </xsl:text>
     998            <a href="{$uri}" class="url"><xsl:value-of select="$uri" /></a>
     999            <xsl:if test="@x:annotation">
     1000              <xsl:text> </xsl:text>
     1001              <i><xsl:value-of select="@x:annotation"/></i>
     1002            </xsl:if>
     1003          </span>
     1004        </xsl:if>
    9501005      </xsl:for-each>
    9511006    </address>
     
    36603715  .print2col {
    36613716    column-count: 2;
    3662     -moz-column-count: 2;<!-- for Firefox -->
    3663     column-fill: auto;<!-- for PrinceXML -->
     3717    column-fill: auto;
    36643718  }
    36653719<xsl:if test="$xml2rfc-ext-justification='print'">
     
    63606414    <xsl:text>http://greenbytes.de/tech/webdav/rfc2629.xslt, </xsl:text>
    63616415    <!-- when RCS keyword substitution in place, add version info -->
    6362     <xsl:if test="contains('$Revision: 1.558 $',':')">
    6363       <xsl:value-of select="concat('Revision ',normalize-space(translate(substring-after('$Revision: 1.558 $', 'Revision: '),'$','')),', ')" />
     6416    <xsl:if test="contains('$Revision: 1.561 $',':')">
     6417      <xsl:value-of select="concat('Revision ',normalize-space(translate(substring-after('$Revision: 1.561 $', 'Revision: '),'$','')),', ')" />
    63646418    </xsl:if>
    6365     <xsl:if test="contains('$Date: 2011-11-05 16:48:52 $',':')">
    6366       <xsl:value-of select="concat(normalize-space(translate(substring-after('$Date: 2011-11-05 16:48:52 $', 'Date: '),'$','')),', ')" />
     6419    <xsl:if test="contains('$Date: 2011-12-24 13:06:50 $',':')">
     6420      <xsl:value-of select="concat(normalize-space(translate(substring-after('$Date: 2011-12-24 13:06:50 $', 'Date: '),'$','')),', ')" />
    63676421    </xsl:if>
    63686422    <xsl:value-of select="concat('XSLT vendor: ',system-property('xsl:vendor'),' ',system-property('xsl:vendor-url'))" />
     
    65696623    </xsl:call-template>
    65706624  </xsl:if>
     6625  <xsl:if test="$text=''">
     6626    <xsl:call-template name="warning">
     6627      <xsl:with-param name="msg">missing text in <xsl:value-of select="$name"/></xsl:with-param>
     6628    </xsl:call-template>
     6629  </xsl:if>
    65716630  <xsl:value-of select="$text"/>
    65726631</xsl:template>
     
    66046663    <xsl:call-template name="warning">
    66056664      <xsl:with-param name="msg">excessive whitespace in URI: '<xsl:value-of select="."/>'</xsl:with-param>
     6665    </xsl:call-template>
     6666  </xsl:if>
     6667  <xsl:if test="$uri=''">
     6668    <xsl:call-template name="warning">
     6669      <xsl:with-param name="msg">URI is empty</xsl:with-param>
    66066670    </xsl:call-template>
    66076671  </xsl:if>
     
    67456809                      <xsl:when test="$attrname='allow-markup-in-artwork'"/>
    67466810                      <xsl:when test="$attrname='authors-section'"/>
     6811                      <xsl:when test="$attrname='check-artwork-width'"/>
    67476812                      <xsl:when test="$attrname='duplex'"/>
    67486813                      <xsl:when test="$attrname='include-index'"/>
  • rfc2629xslt/samples/sample.ipr.id.noDerivativesTrust200902.200909.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.noModification3978.200606.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.noModificationTrust200902.200909.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.pre5378Trust200902.200909.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.pre5378Trust200902.200912.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.pre5378Trust200902.201011.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.trust200902.200909.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.trust200902.200911.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.trust200902.201006.iab.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.trust200902.201006.ietf.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.trust200902.201006.ind.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.trust200902.201006.irtf.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.id.trust200902.201006.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200201.iprnotified.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200201.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200609.ind.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200609.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200808.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200812.nomod.test.xhtml

    r1472 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200812.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200906.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200907.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200909.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.200912.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.iab.exp.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.iab.hist.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.iab.inf.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ietf.bcp.c.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ietf.exp.c.nomod.test.xhtml

    r1472 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ietf.exp.c.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ietf.exp.nc.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ietf.hist.c.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ietf.hist.nc.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ietf.inf.c.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ietf.inf.nc.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ietf.std.c.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ind.exp.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ind.hist.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.ind.inf.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.irtf.exp.c.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.irtf.exp.nc.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.irtf.exp.norg.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.irtf.hist.c.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.irtf.hist.nc.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.irtf.hist.norg.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.irtf.inf.c.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.irtf.inf.nc.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.201001.irtf.inf.norg.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/samples/sample.ipr.rfc.pre5378Trust200902.200912.test.xhtml

    r1276 r1497  
    264264  .print2col {
    265265    column-count: 2;
    266     -moz-column-count: 2;
    267266    column-fill: auto;
    268267  }
  • rfc2629xslt/testcase.html

    r1472 r1497  
    359359  .print2col {
    360360    column-count: 2;
    361     -moz-column-count: 2;
    362361    column-fill: auto;
    363362  }
     
    396395    }
    397396}
    398 </style><link rel="Contents" href="#rfc.toc"><link rel="Author" href="#rfc.authors"><link rel="Index" href="#rfc.index"><link rel="Chapter" title="1 Lists" href="#rfc.section.1"><link rel="Chapter" title="2 spanx" href="#rfc.section.2"><link rel="Chapter" title="3 Tables" href="#rfc.section.3"><link rel="Chapter" title="4 Figures" href="#rfc.section.4"><link rel="Chapter" title="5 References" href="#rfc.section.5"><link rel="Chapter" title="6 Paragraph formatting" href="#rfc.section.6"><link rel="Chapter" title="7 Sections" href="#rfc.section.7"><link rel="Chapter" title="8 Comments" href="#rfc.section.8"><link rel="Chapter" title="9 Artwork Width" href="#rfc.section.9"><link rel="Chapter" title="10 Extensions" href="#rfc.section.10"><link rel="Chapter" title="11 Blank Lines" href="#rfc.section.11"><link rel="Chapter" title="12 Other" href="#rfc.section.12"><link rel="Chapter" href="#rfc.section.13" title="13 References"><meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.558, 2011-11-05 16:48:52, XSLT vendor: SAXON 6.5.5 from Michael Kay http://saxon.sf.net/"><meta name="keywords" content="RFC2629, test case, xml2rfc"><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 test cases</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">Test cases for RFC2629 formatting</p><hr class="noprint"><h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1><ul class="toc"><li>1.&nbsp;&nbsp;&nbsp;<a href="#lists">Lists</a><ul><li>1.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.1">hanging list</a></li><li>1.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.2">numbered list</a></li><li>1.3&nbsp;&nbsp;&nbsp;<a href="#ordered.list.letters">ordered list (letters)</a></li><li>1.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.4">no explicit counters</a></li><li>1.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.5">with explicit counters</a></li><li>1.6&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.6">Nested list</a></li><li>1.7&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.7">list without style</a></li><li>1.8&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.8">list with multiple paragraphs in a single list item</a></li></ul></li><li>2.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2">spanx</a></li><li>3.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3">Tables</a><ul><li>3.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.1">no borders</a></li><li>3.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.2">borders around headers</a></li><li>3.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.3">example from xml2rc README</a></li><li>3.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.4">no column titles</a></li><li>3.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.5">referencing tables</a></li><li>3.6&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.6">table captions</a></li><li>3.7&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.7">single column</a></li><li>3.8&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.8">table alignment</a></li></ul></li><li>4.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4">Figures</a><ul><li>4.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.1">with preamble, no title...</a></li><li>4.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.2">with postamble and title...</a></li><li>4.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.3">Whitespace handling</a></li><li>4.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.4">Whitespace around figures</a></li><li>4.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.5">SVG</a></li><li>4.6&nbsp;&nbsp;&nbsp;<a href="#code.components">Code Components</a></li></ul></li><li>5.&nbsp;&nbsp;&nbsp;<a href="#refs">References</a><ul><li>5.1&nbsp;&nbsp;&nbsp;<a href="#xref.with.no.content">xref with no content</a></li><li>5.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.2">xref to named &lt;t&gt; element</a></li><li>5.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.3">xref to named &lt;spanx&gt; element</a></li><li>5.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.4">xref to named &lt;t&gt; element inside list</a></li><li>5.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.5">xref to named &lt;cref&gt; element</a></li><li>5.6&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.6">xref to named &lt;t&gt; element inside list</a></li><li>5.7&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.7">xref with no auto-formatting</a></li><li>5.8&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.8">xref with content and auto-formatting</a></li><li>5.9&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.9">xref with content and no formatting</a></li><li>5.10&nbsp;&nbsp;&nbsp;<a href="#formatting.none">xref with content and 'none' formatting</a></li><li>5.11&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.11">xref with no content and anchor formatting</a></li><li>5.12&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.12">eref with no content</a></li><li>5.13&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.13">eref with content</a></li><li>5.14&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.14">iref inside paragraph</a></li></ul></li><li>6.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.6">Paragraph formatting</a></li><li>7.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.7">Sections</a><ul><li>7.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.7.1">Subsection with TOC entry</a></li><li class="excluded"><ul><li>7.2.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.7.2.1">Sub-subsection with TOC entry</a></li></ul></li></ul></li><li>8.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.8">Comments</a></li><li>9.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.9">Artwork Width</a></li><li>10.&nbsp;&nbsp;&nbsp;<a href="#extensions">Extensions</a><ul><li>10.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.1">Markup in figure/artwork</a></li><li>10.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.2">Measuring Lengths</a></li><li>10.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.3">Quotations</a></li><li>10.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.4">Subsections</a></li><li>10.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.5">Box Drawing</a></li><li>10.6&nbsp;&nbsp;&nbsp;<a href="#computed.reference.targets">Computed Reference Targets</a></li><li>10.7&nbsp;&nbsp;&nbsp;<a href="#abnf.support">ABNF Support</a></li></ul></li><li>11.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.11">Blank Lines</a></li><li>12.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12">Other</a><ul><li>12.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12.1">Comments in Text</a></li><li>12.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12.2">Special Characters</a><ul><li>12.2.1&nbsp;&nbsp;&nbsp;<a href="#nbsp">Non-Breaking Space</a></li><li>12.2.2&nbsp;&nbsp;&nbsp;<a href="#nbhy">Non-Breaking Hyphen</a></li><li>12.2.3&nbsp;&nbsp;&nbsp;<a href="#dashes">Dashes</a></li></ul></li></ul></li><li>13.&nbsp;&nbsp;&nbsp;<a href="#rfc.references">References</a></li><li><a href="#rfc.comments">Editorial Comments</a></li><li><a href="#rfc.authors">Author's Address</a></li><li><a href="#rfc.index">Index</a></li></ul><ul><li><a href="#rfc.figure.1">Figure 1: another figure</a></li></ul><hr class="noprint"><h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a>&nbsp;<a id="lists" href="#lists">Lists</a></h1><h2 id="rfc.section.1.1"><a href="#rfc.section.1.1">1.1</a>&nbsp;hanging list</h2><dl><dt>Name:</dt><dd>timeout</dd><dt>Namespace:</dt><dd>DAV:</dd><dt>Purpose:</dt><dd>The timeout associated with a lock</dd><dt>Value:</dt><dd>TimeType ;Defined in section 9.8</dd></dl><h2 id="rfc.section.1.2"><a href="#rfc.section.1.2">1.2</a>&nbsp;numbered list</h2><p id="rfc.section.1.2.p.1">A numbered list: </p><ol><li>one</li><li>two</li><li>three</li></ol><h2 id="rfc.section.1.3"><a href="#rfc.section.1.3">1.3</a>&nbsp;<a id="ordered.list.letters" href="#ordered.list.letters">ordered list (letters)</a></h2><p id="rfc.section.1.3.p.1">An ordered list using letters: </p><ol class="la"><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li id="ordered.list.letters.last">three</li></ol><h2 id="rfc.section.1.4"><a href="#rfc.section.1.4">1.4</a>&nbsp;no explicit counters</h2><p id="rfc.section.1.4.p.1">Example for numbered list with user-defined-format: </p><dl><dt>R1:</dt><dd>R1</dd><dt>R2:</dt><dd>R2</dd></dl><p id="rfc.section.1.4.p.2">Another list: </p><dl><dt>S1:</dt><dd>S1</dd><dt>S2:</dt><dd>S2</dd></dl><p id="rfc.section.1.4.p.3">Next list should continue counting R's: </p><dl><dt>R3:</dt><dd>R3</dd><dt>R4:</dt><dd>R4</dd></dl><p id="rfc.section.1.4.p.4">Same with character-based numbering: </p><dl><dt>c-a:</dt><dd>c-a</dd><dt>c-b:</dt><dd>c-b</dd></dl><h2 id="rfc.section.1.5"><a href="#rfc.section.1.5">1.5</a>&nbsp;with explicit counters</h2><p id="rfc.section.1.5.p.1">A few requirements: </p><dl><dt>R1:</dt><dd>req R1</dd><dt>R2:</dt><dd>req R2</dd></dl><p id="rfc.section.1.5.p.2">More requirements: </p><dl><dt>R3:</dt><dd>req R3</dd><dt>R4:</dt><dd>req R4</dd></dl><p id="rfc.section.1.5.p.3">A few rules: </p><dl><dt>R1:</dt><dd>rule R1</dd><dt>R2:</dt><dd>rule R2</dd><dt>R3:</dt><dd>rule R3</dd></dl><p id="rfc.section.1.5.p.4">Explicit counter with name matching it's format string: </p><dl><dt>c-c:</dt><dd>c-c</dd><dt>c-d:</dt><dd>c-d</dd></dl><p id="rfc.section.1.5.p.5">Same, without counter: </p><dl><dt>c-e:</dt><dd>c-e</dd><dt>c-f:</dt><dd>c-f</dd></dl><h2 id="rfc.section.1.6"><a href="#rfc.section.1.6">1.6</a>&nbsp;Nested list</h2><p id="rfc.section.1.6.p.1"> </p><ol><li>One</li><li>Two <ol class="ua"><li>17</li><li>42</li></ol> </li><li>Three</li></ol><h2 id="rfc.section.1.7"><a href="#rfc.section.1.7">1.7</a>&nbsp;list without style</h2><ul class="empty"><li>One</li><li>Two</li><li>Three</li></ul><h2 id="rfc.section.1.8"><a href="#rfc.section.1.8">1.8</a>&nbsp;list with multiple paragraphs in a single list item</h2><ol><li><p>Simple list item.</p></li><li><p>This one has two paragraphs. This is the first one.</p><p>This one has two paragraphs. This is the second one.</p></li><li><p>Another simple list item.</p></li></ol><hr class="noprint"><h1 id="rfc.section.2" class="np"><a href="#rfc.section.2">2.</a>&nbsp;spanx</h1><p id="rfc.section.2.p.1">This is <em>default</em>.</p><p id="rfc.section.2.p.2">This is <em>emph(asized)</em>.</p><p id="rfc.section.2.p.3">This is <strong>strong</strong>.</p><p id="rfc.section.2.p.4">This is <samp>verb(atim)</samp>.</p><p id="rfc.section.2.p.5">Here is <samp>a carriage return inside</samp> a spanx element.</p><hr class="noprint"><h1 id="rfc.section.3" class="np"><a href="#rfc.section.3">3.</a>&nbsp;Tables</h1><div id="rfc.table.u.1"><p>The list of valid keywords are:</p><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="right" style="width: 20%;">keyword</th><th class="center" style="width: 20%;">default</th><th class="left">meaning</th><th class="left">not aligned</th></tr></thead><tbody><tr><td class="right">strict</td><td class="center">no</td><td class="left">try to enforce the ID-nits conventions and DTD validity</td><td class="left">a</td></tr><tr><td class="right">iprnotified</td><td class="center">no</td><td class="left">include boilerplate from Section 10.4(d) of <a href="#RFC2026" id="rfc.xref.RFC2026.1"><cite title="The Internet Standards Process -- Revision 3">[RFC2026]</cite></a></td><td class="left">bb bb</td></tr><tr><td class="right">compact</td><td class="center">no</td><td class="left">when producing a txt/nroff file, try to conserve vertical whitespace</td><td class="left">ccc ccc ccc</td></tr><tr><td class="right">subcompact</td><td class="center">compact</td><td class="left">if compact is "yes", then setting this to "no" will make things a little less compact</td><td class="left">dddd dddd dddd dddd</td></tr><tr><td class="right">needLines</td><td class="center">n/a</td><td class="left">an integer hint indicating how many contiguous lines are needed at this point in the output</td><td class="left">eeeee eeeee eeeee eeeee eeeee</td></tr><tr><td class="right">here come empty cells</td><td class="center"></td><td class="left"></td><td class="left"></td></tr></tbody></table><p>Remember, that as with everything else in XML, keywords and values are case-sensitive.</p></div><h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;no borders</h2><div id="rfc.table.1"><div id="tablenoborder"></div><p>The table below should appear with no borders.</p><table class="tt none center" cellpadding="3" cellspacing="0"><caption>Table 1: a table with no borders</caption><thead><tr><th class="left">C1</th><th class="left">C2</th></tr></thead><tbody><tr><td class="left">11</td><td class="left">12</td></tr><tr><td class="left">21</td><td class="left">22</td></tr></tbody></table></div><h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a>&nbsp;borders around headers</h2><div id="rfc.table.u.2"><p>The table below should appear with borders just around the headers.</p><table class="tt headers center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">C1</th><th class="left">C2</th></tr></thead><tbody><tr><td class="left">11</td><td class="left">12</td></tr><tr><td class="left">21</td><td class="left">22</td></tr></tbody></table></div><h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3</a>&nbsp;example from xml2rc README</h2><div id="rfc.table.2"><div id="table_example"></div><p>So, putting it all together, we have, e.g.,</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 2</caption><thead><tr><th class="center">ttcol #1</th><th class="center">ttcol #2</th></tr></thead><tbody><tr><td class="center">c #1</td><td class="center">c #2</td></tr><tr><td class="center">c #3</td><td class="center">c #4</td></tr><tr><td class="center">c #5</td><td class="center">c #6</td></tr></tbody></table><p>which is a very simple example.</p></div><h2 id="rfc.section.3.4"><a href="#rfc.section.3.4">3.4</a>&nbsp;no column titles</h2><div id="rfc.table.3"><div id="tablenotitles"></div><p>The table below should appear with no titles.</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 3: a table with no column titles</caption><tbody><tr><td class="left">11</td><td class="left">12</td></tr><tr><td class="left">21</td><td class="left">22</td></tr></tbody></table></div><div id="rfc.table.4"><div id="tableonetitle"></div><p>The table below should appear with column titles (one being non-empty).</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 4: a table with a single column title</caption><thead><tr><th class="left">FOO</th><th class="left"></th></tr></thead><tbody><tr><td class="left">11</td><td class="left">12</td></tr><tr><td class="left">21</td><td class="left">22</td></tr></tbody></table></div><h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5</a>&nbsp;referencing tables</h2><p id="rfc.section.3.5.p.1"> <a href="#tablenoborder">Table&nbsp;1</a> shows a table with no borders.</p><p id="rfc.section.3.5.p.2"> <a href="#tablenoborder">The table above</a> shows a table with no borders.</p><h2 id="rfc.section.3.6"><a href="#rfc.section.3.6">3.6</a>&nbsp;table captions</h2><div id="rfc.table.u.3"><p>No anchor, no title</p><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">Anchor</th><th class="left">Title</th></tr></thead><tbody><tr><td class="left">-</td><td class="left">-</td></tr></tbody></table></div><div id="rfc.table.5"><div id="texttable1"></div><p>Anchor (not being referenced), no title</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 5</caption><thead><tr><th class="left">Anchor</th><th class="left">Title</th></tr></thead><tbody><tr><td class="left">yes</td><td class="left">-</td></tr></tbody></table></div><div id="rfc.table.6"><p>No anchor, with title</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 6: title</caption><thead><tr><th class="left">Anchor</th><th class="left">Title</th></tr></thead><tbody><tr><td class="left">-</td><td class="left">"title"</td></tr></tbody></table></div><div id="rfc.table.7"><div id="texttable2"></div><p>Both anchor and title</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 7: title</caption><thead><tr><th class="left">Anchor</th><th class="left">Title</th></tr></thead><tbody><tr><td class="left">yes</td><td class="left">"title"</td></tr></tbody></table></div><h2 id="rfc.section.3.7"><a href="#rfc.section.3.7">3.7</a>&nbsp;single column</h2><div id="rfc.table.u.4"><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">title</th></tr></thead><tbody><tr><td class="left">1</td></tr><tr><td class="left">2</td></tr></tbody></table></div><h2 id="rfc.section.3.8"><a href="#rfc.section.3.8">3.8</a>&nbsp;table alignment</h2><div id="rfc.table.u.5"><table class="tt full left" cellpadding="3" cellspacing="0"><thead><tr><th class="left">left</th></tr></thead><tbody><tr><td class="left">1</td></tr></tbody></table></div><div id="rfc.table.u.6"><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">center</th></tr></thead><tbody><tr><td class="left">1</td></tr></tbody></table></div><div id="rfc.table.u.7"><table class="tt full right" cellpadding="3" cellspacing="0"><thead><tr><th class="left">right</th></tr></thead><tbody><tr><td class="left">1</td></tr></tbody></table></div><div id="rfc.table.u.8"><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">default</th></tr></thead><tbody><tr><td class="left">1</td></tr></tbody></table></div><hr class="noprint"><h1 id="rfc.section.4" class="np"><a href="#rfc.section.4">4.</a>&nbsp;Figures</h1><h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a>&nbsp;with preamble, no title...</h2><div id="rfc.figure.u.1"></div> <p>with preamble, no title...</p>  <pre>  +--+
     397</style><link rel="Contents" href="#rfc.toc"><link rel="Author" href="#rfc.authors"><link rel="Index" href="#rfc.index"><link rel="Chapter" title="1 Lists" href="#rfc.section.1"><link rel="Chapter" title="2 spanx" href="#rfc.section.2"><link rel="Chapter" title="3 Tables" href="#rfc.section.3"><link rel="Chapter" title="4 Figures" href="#rfc.section.4"><link rel="Chapter" title="5 References" href="#rfc.section.5"><link rel="Chapter" title="6 Paragraph formatting" href="#rfc.section.6"><link rel="Chapter" title="7 Sections" href="#rfc.section.7"><link rel="Chapter" title="8 Comments" href="#rfc.section.8"><link rel="Chapter" title="9 Artwork Width" href="#rfc.section.9"><link rel="Chapter" title="10 Extensions" href="#rfc.section.10"><link rel="Chapter" title="11 Blank Lines" href="#rfc.section.11"><link rel="Chapter" title="12 Other" href="#rfc.section.12"><link rel="Chapter" href="#rfc.section.13" title="13 References"><meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.561, 2011-12-24 13:06:50, XSLT vendor: SAXON 6.5.5 from Michael Kay http://saxon.sf.net/"><meta name="keywords" content="RFC2629, test case, xml2rfc"><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 test cases</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">Test cases for RFC2629 formatting</p><hr class="noprint"><h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1><ul class="toc"><li>1.&nbsp;&nbsp;&nbsp;<a href="#lists">Lists</a><ul><li>1.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.1">hanging list</a></li><li>1.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.2">numbered list</a></li><li>1.3&nbsp;&nbsp;&nbsp;<a href="#ordered.list.letters">ordered list (letters)</a></li><li>1.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.4">no explicit counters</a></li><li>1.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.5">with explicit counters</a></li><li>1.6&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.6">Nested list</a></li><li>1.7&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.7">list without style</a></li><li>1.8&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1.8">list with multiple paragraphs in a single list item</a></li></ul></li><li>2.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2">spanx</a></li><li>3.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3">Tables</a><ul><li>3.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.1">no borders</a></li><li>3.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.2">borders around headers</a></li><li>3.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.3">example from xml2rc README</a></li><li>3.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.4">no column titles</a></li><li>3.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.5">referencing tables</a></li><li>3.6&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.6">table captions</a></li><li>3.7&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.7">single column</a></li><li>3.8&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3.8">table alignment</a></li></ul></li><li>4.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4">Figures</a><ul><li>4.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.1">with preamble, no title...</a></li><li>4.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.2">with postamble and title...</a></li><li>4.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.3">Whitespace handling</a></li><li>4.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.4">Whitespace around figures</a></li><li>4.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.4.5">SVG</a></li><li>4.6&nbsp;&nbsp;&nbsp;<a href="#code.components">Code Components</a></li></ul></li><li>5.&nbsp;&nbsp;&nbsp;<a href="#refs">References</a><ul><li>5.1&nbsp;&nbsp;&nbsp;<a href="#xref.with.no.content">xref with no content</a></li><li>5.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.2">xref to named &lt;t&gt; element</a></li><li>5.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.3">xref to named &lt;spanx&gt; element</a></li><li>5.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.4">xref to named &lt;t&gt; element inside list</a></li><li>5.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.5">xref to named &lt;cref&gt; element</a></li><li>5.6&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.6">xref to named &lt;t&gt; element inside list</a></li><li>5.7&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.7">xref with no auto-formatting</a></li><li>5.8&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.8">xref with content and auto-formatting</a></li><li>5.9&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.9">xref with content and no formatting</a></li><li>5.10&nbsp;&nbsp;&nbsp;<a href="#formatting.none">xref with content and 'none' formatting</a></li><li>5.11&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.11">xref with no content and anchor formatting</a></li><li>5.12&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.12">eref with no content</a></li><li>5.13&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.13">eref with content</a></li><li>5.14&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5.14">iref inside paragraph</a></li></ul></li><li>6.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.6">Paragraph formatting</a></li><li>7.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.7">Sections</a><ul><li>7.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.7.1">Subsection with TOC entry</a></li><li class="excluded"><ul><li>7.2.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.7.2.1">Sub-subsection with TOC entry</a></li></ul></li></ul></li><li>8.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.8">Comments</a></li><li>9.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.9">Artwork Width</a></li><li>10.&nbsp;&nbsp;&nbsp;<a href="#extensions">Extensions</a><ul><li>10.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.1">Markup in figure/artwork</a></li><li>10.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.2">Measuring Lengths</a></li><li>10.3&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.3">Quotations</a></li><li>10.4&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.4">Subsections</a></li><li>10.5&nbsp;&nbsp;&nbsp;<a href="#rfc.section.10.5">Box Drawing</a></li><li>10.6&nbsp;&nbsp;&nbsp;<a href="#computed.reference.targets">Computed Reference Targets</a></li><li>10.7&nbsp;&nbsp;&nbsp;<a href="#abnf.support">ABNF Support</a></li></ul></li><li>11.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.11">Blank Lines</a></li><li>12.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12">Other</a><ul><li>12.1&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12.1">Comments in Text</a></li><li>12.2&nbsp;&nbsp;&nbsp;<a href="#rfc.section.12.2">Special Characters</a><ul><li>12.2.1&nbsp;&nbsp;&nbsp;<a href="#nbsp">Non-Breaking Space</a></li><li>12.2.2&nbsp;&nbsp;&nbsp;<a href="#nbhy">Non-Breaking Hyphen</a></li><li>12.2.3&nbsp;&nbsp;&nbsp;<a href="#dashes">Dashes</a></li></ul></li></ul></li><li>13.&nbsp;&nbsp;&nbsp;<a href="#rfc.references">References</a></li><li><a href="#rfc.comments">Editorial Comments</a></li><li><a href="#rfc.authors">Author's Address</a></li><li><a href="#rfc.index">Index</a></li></ul><ul><li><a href="#rfc.figure.1">Figure 1: another figure</a></li></ul><hr class="noprint"><h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a>&nbsp;<a id="lists" href="#lists">Lists</a></h1><h2 id="rfc.section.1.1"><a href="#rfc.section.1.1">1.1</a>&nbsp;hanging list</h2><dl><dt>Name:</dt><dd>timeout</dd><dt>Namespace:</dt><dd>DAV:</dd><dt>Purpose:</dt><dd>The timeout associated with a lock</dd><dt>Value:</dt><dd>TimeType ;Defined in section 9.8</dd></dl><h2 id="rfc.section.1.2"><a href="#rfc.section.1.2">1.2</a>&nbsp;numbered list</h2><p id="rfc.section.1.2.p.1">A numbered list: </p><ol><li>one</li><li>two</li><li>three</li></ol><h2 id="rfc.section.1.3"><a href="#rfc.section.1.3">1.3</a>&nbsp;<a id="ordered.list.letters" href="#ordered.list.letters">ordered list (letters)</a></h2><p id="rfc.section.1.3.p.1">An ordered list using letters: </p><ol class="la"><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li>three</li><li>one</li><li>two</li><li id="ordered.list.letters.last">three</li></ol><h2 id="rfc.section.1.4"><a href="#rfc.section.1.4">1.4</a>&nbsp;no explicit counters</h2><p id="rfc.section.1.4.p.1">Example for numbered list with user-defined-format: </p><dl><dt>R1:</dt><dd>R1</dd><dt>R2:</dt><dd>R2</dd></dl><p id="rfc.section.1.4.p.2">Another list: </p><dl><dt>S1:</dt><dd>S1</dd><dt>S2:</dt><dd>S2</dd></dl><p id="rfc.section.1.4.p.3">Next list should continue counting R's: </p><dl><dt>R3:</dt><dd>R3</dd><dt>R4:</dt><dd>R4</dd></dl><p id="rfc.section.1.4.p.4">Same with character-based numbering: </p><dl><dt>c-a:</dt><dd>c-a</dd><dt>c-b:</dt><dd>c-b</dd></dl><h2 id="rfc.section.1.5"><a href="#rfc.section.1.5">1.5</a>&nbsp;with explicit counters</h2><p id="rfc.section.1.5.p.1">A few requirements: </p><dl><dt>R1:</dt><dd>req R1</dd><dt>R2:</dt><dd>req R2</dd></dl><p id="rfc.section.1.5.p.2">More requirements: </p><dl><dt>R3:</dt><dd>req R3</dd><dt>R4:</dt><dd>req R4</dd></dl><p id="rfc.section.1.5.p.3">A few rules: </p><dl><dt>R1:</dt><dd>rule R1</dd><dt>R2:</dt><dd>rule R2</dd><dt>R3:</dt><dd>rule R3</dd></dl><p id="rfc.section.1.5.p.4">Explicit counter with name matching it's format string: </p><dl><dt>c-c:</dt><dd>c-c</dd><dt>c-d:</dt><dd>c-d</dd></dl><p id="rfc.section.1.5.p.5">Same, without counter: </p><dl><dt>c-e:</dt><dd>c-e</dd><dt>c-f:</dt><dd>c-f</dd></dl><h2 id="rfc.section.1.6"><a href="#rfc.section.1.6">1.6</a>&nbsp;Nested list</h2><p id="rfc.section.1.6.p.1"> </p><ol><li>One</li><li>Two <ol class="ua"><li>17</li><li>42</li></ol> </li><li>Three</li></ol><h2 id="rfc.section.1.7"><a href="#rfc.section.1.7">1.7</a>&nbsp;list without style</h2><ul class="empty"><li>One</li><li>Two</li><li>Three</li></ul><h2 id="rfc.section.1.8"><a href="#rfc.section.1.8">1.8</a>&nbsp;list with multiple paragraphs in a single list item</h2><ol><li><p>Simple list item.</p></li><li><p>This one has two paragraphs. This is the first one.</p><p>This one has two paragraphs. This is the second one.</p></li><li><p>Another simple list item.</p></li></ol><hr class="noprint"><h1 id="rfc.section.2" class="np"><a href="#rfc.section.2">2.</a>&nbsp;spanx</h1><p id="rfc.section.2.p.1">This is <em>default</em>.</p><p id="rfc.section.2.p.2">This is <em>emph(asized)</em>.</p><p id="rfc.section.2.p.3">This is <strong>strong</strong>.</p><p id="rfc.section.2.p.4">This is <samp>verb(atim)</samp>.</p><p id="rfc.section.2.p.5">Here is <samp>a carriage return inside</samp> a spanx element.</p><hr class="noprint"><h1 id="rfc.section.3" class="np"><a href="#rfc.section.3">3.</a>&nbsp;Tables</h1><div id="rfc.table.u.1"><p>The list of valid keywords are:</p><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="right" style="width: 20%;">keyword</th><th class="center" style="width: 20%;">default</th><th class="left">meaning</th><th class="left">not aligned</th></tr></thead><tbody><tr><td class="right">strict</td><td class="center">no</td><td class="left">try to enforce the ID-nits conventions and DTD validity</td><td class="left">a</td></tr><tr><td class="right">iprnotified</td><td class="center">no</td><td class="left">include boilerplate from Section 10.4(d) of <a href="#RFC2026" id="rfc.xref.RFC2026.1"><cite title="The Internet Standards Process -- Revision 3">[RFC2026]</cite></a></td><td class="left">bb bb</td></tr><tr><td class="right">compact</td><td class="center">no</td><td class="left">when producing a txt/nroff file, try to conserve vertical whitespace</td><td class="left">ccc ccc ccc</td></tr><tr><td class="right">subcompact</td><td class="center">compact</td><td class="left">if compact is "yes", then setting this to "no" will make things a little less compact</td><td class="left">dddd dddd dddd dddd</td></tr><tr><td class="right">needLines</td><td class="center">n/a</td><td class="left">an integer hint indicating how many contiguous lines are needed at this point in the output</td><td class="left">eeeee eeeee eeeee eeeee eeeee</td></tr><tr><td class="right">here come empty cells</td><td class="center"></td><td class="left"></td><td class="left"></td></tr></tbody></table><p>Remember, that as with everything else in XML, keywords and values are case-sensitive.</p></div><h2 id="rfc.section.3.1"><a href="#rfc.section.3.1">3.1</a>&nbsp;no borders</h2><div id="rfc.table.1"><div id="tablenoborder"></div><p>The table below should appear with no borders.</p><table class="tt none center" cellpadding="3" cellspacing="0"><caption>Table 1: a table with no borders</caption><thead><tr><th class="left">C1</th><th class="left">C2</th></tr></thead><tbody><tr><td class="left">11</td><td class="left">12</td></tr><tr><td class="left">21</td><td class="left">22</td></tr></tbody></table></div><h2 id="rfc.section.3.2"><a href="#rfc.section.3.2">3.2</a>&nbsp;borders around headers</h2><div id="rfc.table.u.2"><p>The table below should appear with borders just around the headers.</p><table class="tt headers center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">C1</th><th class="left">C2</th></tr></thead><tbody><tr><td class="left">11</td><td class="left">12</td></tr><tr><td class="left">21</td><td class="left">22</td></tr></tbody></table></div><h2 id="rfc.section.3.3"><a href="#rfc.section.3.3">3.3</a>&nbsp;example from xml2rc README</h2><div id="rfc.table.2"><div id="table_example"></div><p>So, putting it all together, we have, e.g.,</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 2</caption><thead><tr><th class="center">ttcol #1</th><th class="center">ttcol #2</th></tr></thead><tbody><tr><td class="center">c #1</td><td class="center">c #2</td></tr><tr><td class="center">c #3</td><td class="center">c #4</td></tr><tr><td class="center">c #5</td><td class="center">c #6</td></tr></tbody></table><p>which is a very simple example.</p></div><h2 id="rfc.section.3.4"><a href="#rfc.section.3.4">3.4</a>&nbsp;no column titles</h2><div id="rfc.table.3"><div id="tablenotitles"></div><p>The table below should appear with no titles.</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 3: a table with no column titles</caption><tbody><tr><td class="left">11</td><td class="left">12</td></tr><tr><td class="left">21</td><td class="left">22</td></tr></tbody></table></div><div id="rfc.table.4"><div id="tableonetitle"></div><p>The table below should appear with column titles (one being non-empty).</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 4: a table with a single column title</caption><thead><tr><th class="left">FOO</th><th class="left"></th></tr></thead><tbody><tr><td class="left">11</td><td class="left">12</td></tr><tr><td class="left">21</td><td class="left">22</td></tr></tbody></table></div><h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5</a>&nbsp;referencing tables</h2><p id="rfc.section.3.5.p.1"> <a href="#tablenoborder">Table&nbsp;1</a> shows a table with no borders.</p><p id="rfc.section.3.5.p.2"> <a href="#tablenoborder">The table above</a> shows a table with no borders.</p><h2 id="rfc.section.3.6"><a href="#rfc.section.3.6">3.6</a>&nbsp;table captions</h2><div id="rfc.table.u.3"><p>No anchor, no title</p><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">Anchor</th><th class="left">Title</th></tr></thead><tbody><tr><td class="left">-</td><td class="left">-</td></tr></tbody></table></div><div id="rfc.table.5"><div id="texttable1"></div><p>Anchor (not being referenced), no title</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 5</caption><thead><tr><th class="left">Anchor</th><th class="left">Title</th></tr></thead><tbody><tr><td class="left">yes</td><td class="left">-</td></tr></tbody></table></div><div id="rfc.table.6"><p>No anchor, with title</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 6: title</caption><thead><tr><th class="left">Anchor</th><th class="left">Title</th></tr></thead><tbody><tr><td class="left">-</td><td class="left">"title"</td></tr></tbody></table></div><div id="rfc.table.7"><div id="texttable2"></div><p>Both anchor and title</p><table class="tt full center" cellpadding="3" cellspacing="0"><caption>Table 7: title</caption><thead><tr><th class="left">Anchor</th><th class="left">Title</th></tr></thead><tbody><tr><td class="left">yes</td><td class="left">"title"</td></tr></tbody></table></div><h2 id="rfc.section.3.7"><a href="#rfc.section.3.7">3.7</a>&nbsp;single column</h2><div id="rfc.table.u.4"><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">title</th></tr></thead><tbody><tr><td class="left">1</td></tr><tr><td class="left">2</td></tr></tbody></table></div><h2 id="rfc.section.3.8"><a href="#rfc.section.3.8">3.8</a>&nbsp;table alignment</h2><div id="rfc.table.u.5"><table class="tt full left" cellpadding="3" cellspacing="0"><thead><tr><th class="left">left</th></tr></thead><tbody><tr><td class="left">1</td></tr></tbody></table></div><div id="rfc.table.u.6"><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">center</th></tr></thead><tbody><tr><td class="left">1</td></tr></tbody></table></div><div id="rfc.table.u.7"><table class="tt full right" cellpadding="3" cellspacing="0"><thead><tr><th class="left">right</th></tr></thead><tbody><tr><td class="left">1</td></tr></tbody></table></div><div id="rfc.table.u.8"><table class="tt full center" cellpadding="3" cellspacing="0"><thead><tr><th class="left">default</th></tr></thead><tbody><tr><td class="left">1</td></tr></tbody></table></div><hr class="noprint"><h1 id="rfc.section.4" class="np"><a href="#rfc.section.4">4.</a>&nbsp;Figures</h1><h2 id="rfc.section.4.1"><a href="#rfc.section.4.1">4.1</a>&nbsp;with preamble, no title...</h2><div id="rfc.figure.u.1"></div> <p>with preamble, no title...</p>  <pre>  +--+
    399398  |  |
    400399  +--+
Note: See TracChangeset for help on using the changeset viewer.