<!--
 |
 | XSLT REC Compliant Version of IE5 Default Stylesheet
 |
 | Original version by Jonathan Marsh (jmarsh@microsoft.com)
 | http://msdn.microsoft.com/xml/samples/defaultss/defaultss.xsl
 |
 | Conversion to XSLT 1.0 REC Syntax by Steve Muench (smuench@oracle.com)
 |
 | Then converted to XSL-FO by Dan Ochs (dan(dot)ochs(at)wrycan(dot)com)
 |
 +-->
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <xsl:output indent="no" method="xml"/>

     <!-- BODY {font:x-small 'Verdana'; margin-right:1.5em}-->
     <xsl:attribute-set name="BODY">
         <xsl:attribute name="font">x-small Verdana</xsl:attribute>
         <xsl:attribute name="margin-right">1.5em</xsl:attribute>
     </xsl:attribute-set>
     <!--.c  {cursor:hand}-->
     <!--<xsl:attribute-set name="c">
         <xsl:attribute name="notsure">cursor:hand</xsl:attribute>
     </xsl:attribute-set>-->
 <!--        .b  {color:red; font-family:'Courier New'; font-weight:bold;
         text-decoration:none}-->
     <xsl:attribute-set name="b">
         <xsl:attribute name="color">red</xsl:attribute>
         <xsl:attribute name="font-family">Courier New</xsl:attribute>
         <xsl:attribute name="font-weight">bold</xsl:attribute>
     </xsl:attribute-set>
     <!--.e  {margin-left:1em; text-indent:-1em; margin-right:1em}-->
     <xsl:attribute-set name="e">
         <xsl:attribute name="margin-left">1em</xsl:attribute>
         <xsl:attribute name="text-indent">-1em</xsl:attribute>
         <xsl:attribute name="margin-right">1em</xsl:attribute>
     </xsl:attribute-set>
     <!--.k  {margin-left:1em; text-indent:-1em; margin-right:1em}-->
     <xsl:attribute-set name="k">
         <xsl:attribute name="margin-left">1em</xsl:attribute>
         <xsl:attribute name="text-indent">-1em</xsl:attribute>
         <xsl:attribute name="margin-right">1em</xsl:attribute>
     </xsl:attribute-set>
     <!--.t  {color:#990000}-->
     <xsl:attribute-set name="t">
         <xsl:attribute name="color">#990000</xsl:attribute>
     </xsl:attribute-set>
     <!--   .xt {color:#990099}-->
     <xsl:attribute-set name="xt">
         <xsl:attribute name="color">#990099</xsl:attribute>
     </xsl:attribute-set>
     <!--.ns {color:red}-->
     <xsl:attribute-set name="ns">
         <xsl:attribute name="color">red</xsl:attribute>
     </xsl:attribute-set>
     <!--.dt {color:green}-->
     <xsl:attribute-set name="dt">
         <xsl:attribute name="color">green</xsl:attribute>
     </xsl:attribute-set>
     <!--      .m  {color:blue}-->
     <xsl:attribute-set name="m">
         <xsl:attribute name="color">blue</xsl:attribute>
     </xsl:attribute-set>
     <!--.tx {font-weight:bold}-->
     <xsl:attribute-set name="tx">
         <xsl:attribute name="font-weight">bold</xsl:attribute>
     </xsl:attribute-set>
     <!-- .db {text-indent:0px; margin-left:1em; margin-top:0px;
         margin-bottom:0px;padding-left:.3em;
         border-left:1px solid #CCCCCC; font:small Courier}-->
     <xsl:attribute-set name="db">
         <xsl:attribute name="text-indent">0px</xsl:attribute>
         <xsl:attribute name="margin-left">1em</xsl:attribute>
         <xsl:attribute name="margin-top">0px</xsl:attribute>
         <xsl:attribute name="margin-bottom">0px</xsl:attribute>
         <xsl:attribute name="padding-left">3em</xsl:attribute>
         <xsl:attribute name="border-left">1px solid #CCCCCC</xsl:attribute>
         <xsl:attribute name="font">small Courier</xsl:attribute>
     </xsl:attribute-set>
     <!--.di {font:small Courier}-->
     <xsl:attribute-set name="di">
         <xsl:attribute name="font">small Courier</xsl:attribute>
     </xsl:attribute-set>
     <!--.d  {color:blue}-->
     <xsl:attribute-set name="d">
         <xsl:attribute name="color">blue</xsl:attribute>
     </xsl:attribute-set>
   <!--  .pi {color:blue}-->
     <xsl:attribute-set name="pi">
         <xsl:attribute name="color">blue</xsl:attribute>
     </xsl:attribute-set>
     <!--.cb {text-indent:0px; margin-left:1em; margin-top:0px;
         margin-bottom:0px;padding-left:.3em; font:small Courier;
         color:#888888}-->
     <xsl:attribute-set name="cb">
         <xsl:attribute name="text-indent">0px</xsl:attribute>
         <xsl:attribute name="margin-left">1em</xsl:attribute>
         <xsl:attribute name="margin-top">0px</xsl:attribute>
         <xsl:attribute name="margin-bottom">0px</xsl:attribute>
         <xsl:attribute name="padding-left">3em</xsl:attribute>
         <xsl:attribute name="font">small Courier</xsl:attribute>
         <xsl:attribute name="color">#888888</xsl:attribute>
     </xsl:attribute-set>
     <!--.ci {font:small Courier; color:#888888}-->
     <xsl:attribute-set name="ci">
         <xsl:attribute name="color">#888888</xsl:attribute>
         <xsl:attribute name="font">small Courier</xsl:attribute>
     </xsl:attribute-set>
     <!--PRE {margin:0px; display:inline}-->
     <xsl:attribute-set name="PRE">
         <xsl:attribute name="margin">0px</xsl:attribute>
     </xsl:attribute-set>

   <xsl:template match="/">
       <fo:root>
           <fo:layout-master-set>
               <fo:simple-page-master master-name="all-pages">
                   <fo:region-body margin="1em"/>
               </fo:simple-page-master>
               <fo:page-sequence-master master-name="my-sequence">
                   <fo:repeatable-page-master-reference master-reference="all-pages"/>
               </fo:page-sequence-master>
           </fo:layout-master-set>
           <fo:page-sequence master-reference="my-sequence">
               <fo:flow flow-name="xsl-region-body">
                   <fo:block hyphenate="true" hyphenation-character="">
                       <xsl:apply-templates/>
                   </fo:block>
               </fo:flow>
           </fo:page-sequence>
       </fo:root>
   </xsl:template>

   <xsl:template match="processing-instruction()">
      <fo:inline xsl:use-attribute-sets="e">
         <fo:inline xsl:use-attribute-sets="b">
         		<xsl:call-template name="nbsp-ref"/>
         </fo:inline>
          <fo:inline xsl:use-attribute-sets="m">
            <xsl:text>&lt;?</xsl:text>
          </fo:inline>
          <fo:inline xsl:use-attribute-sets="pi">
            <xsl:value-of select="name(.)"/><xsl:text> </xsl:text>
            <xsl:value-of select="."/>
          </fo:inline>
          <fo:inline xsl:use-attribute-sets="m">
            <xsl:text>?></xsl:text>
          </fo:inline>
      </fo:inline>
   </xsl:template>

   <xsl:template match="processing-instruction('xml')">
      <fo:block xsl:use-attribute-sets="e">
         <fo:inline xsl:use-attribute-sets="b">
            <xsl:call-template name="nbsp-ref"/>
         </fo:inline>
         <fo:inline xsl:use-attribute-sets="m">
            <xsl:text>&lt;?</xsl:text>
         </fo:inline>
         <fo:inline xsl:use-attribute-sets="pi">
            <xsl:text>xml </xsl:text>
            <xsl:for-each select="@*">
               <xsl:value-of select="name(.)"/>
               <xsl:text>="</xsl:text>
               <xsl:value-of select="."/>
               <xsl:text>" </xsl:text>
            </xsl:for-each>
         </fo:inline>
         <fo:inline xsl:use-attribute-sets="m">
            <xsl:text>?></xsl:text>
         </fo:inline>
      </fo:block>
   </xsl:template>

   <xsl:template match="@*">
       <xsl:choose>
           <xsl:when test="xsl:*">
               <fo:inline xsl:use-attribute-sets="xt"><xsl:value-of select="name(.)"/> </fo:inline>
           </xsl:when>
           <xsl:otherwise>
               <fo:inline xsl:use-attribute-sets="t"><xsl:value-of select="name(.)"/></fo:inline>
           </xsl:otherwise>
       </xsl:choose>
      <fo:inline xsl:use-attribute-sets="m">="</fo:inline>
      <fo:inline font-weight="bold">
         <xsl:value-of select="."/>
      </fo:inline>
      <fo:inline xsl:use-attribute-sets="m">" </fo:inline>
   </xsl:template>

   <xsl:template match="text()">
      <fo:block xsl:use-attribute-sets="e">
         <fo:inline xsl:use-attribute-sets="b"> </fo:inline>
         <fo:inline xsl:use-attribute-sets="tx">
            <xsl:value-of select="."/>
         </fo:inline>
      </fo:block>
   </xsl:template>

   <xsl:template match="comment()">
      <fo:block xsl:use-attribute-sets="k">
         <fo:inline>
            <!--<A STYLE="visibility:hidden" xsl:use-attribute-sets="b" onclick="return false" onfocus="h()">-</A>-->
            <fo:inline xsl:use-attribute-sets="m">
               <xsl:text>&lt;!--</xsl:text>
            </fo:inline>
         </fo:inline>
         <fo:inline xsl:use-attribute-sets="ci" id="clean">
             <fo:block font-family="monospace" white-space-collapse="false" wrap-option="no-wrap">
                 <xsl:value-of select="."/>
             </fo:block>
         </fo:inline>
         <fo:inline xsl:use-attribute-sets="b">
            <xsl:call-template name="nbsp-ref"/>
         </fo:inline>
         <fo:inline xsl:use-attribute-sets="m">
            <xsl:text>--></xsl:text>
         </fo:inline>
 <!--        <SCRIPT>f(clean);</SCRIPT>-->
      </fo:block>
   </xsl:template>

   <xsl:template match="*">
      <fo:block xsl:use-attribute-sets="e">
         <fo:block margin-left="1em" text-indent="-2em">
            <fo:inline xsl:use-attribute-sets="b">
            		<xsl:call-template name="nbsp-ref"/>
            </fo:inline>
            <fo:inline xsl:use-attribute-sets="m">&lt;</fo:inline>
             <xsl:choose>
                 <xsl:when test="xsl:*">
                     <fo:inline xsl:use-attribute-sets="xt"><xsl:value-of select="name(.)"/>
                         <xsl:if test="@*">
                             <xsl:text> </xsl:text>
                         </xsl:if>
                     </fo:inline>
                 </xsl:when>
                 <xsl:otherwise>
                     <fo:inline xsl:use-attribute-sets="t"><xsl:value-of select="name(.)"/>
                         <xsl:if test="@*">
                             <xsl:text> </xsl:text>
                         </xsl:if>
                     </fo:inline>
                 </xsl:otherwise>
             </xsl:choose>
            <xsl:apply-templates select="@*"/>
            <fo:inline xsl:use-attribute-sets="m">
               <xsl:text>/></xsl:text>
            </fo:inline>
         </fo:block>
      </fo:block>
   </xsl:template>

   <xsl:template match="*[node()]">
      <fo:block xsl:use-attribute-sets="e">
          <!--<fo:block xsl:use-attribute-sets="c">-->
          <fo:block>
<!--            <A xsl:use-attribute-sets="b" href="#" onclick="return false" onfocus="h()">-</A>-->
            <fo:inline xsl:use-attribute-sets="m">&lt;</fo:inline>
             <xsl:choose>
                 <xsl:when test="xsl:*">
                     <fo:inline xsl:use-attribute-sets="xt"><xsl:value-of select="name(.)"/>
                         <xsl:if test="@*">
                             <xsl:text> </xsl:text>
                         </xsl:if>
                     </fo:inline>
                 </xsl:when>
                 <xsl:otherwise>
                     <fo:inline xsl:use-attribute-sets="t"><xsl:value-of select="name(.)"/>
                         <xsl:if test="@*">
                             <xsl:text> </xsl:text>
                         </xsl:if>
                     </fo:inline>
                 </xsl:otherwise>
             </xsl:choose>
            <xsl:apply-templates select="@*"/>
            <fo:inline xsl:use-attribute-sets="m">
               <xsl:text>></xsl:text>
            </fo:inline>
         </fo:block>
         <fo:block>
            <xsl:apply-templates/>
            <fo:block>
               <fo:inline xsl:use-attribute-sets="b">
            			<xsl:call-template name="nbsp-ref"/>
               </fo:inline>
               <fo:inline xsl:use-attribute-sets="m">
                  <xsl:text>&lt;/</xsl:text>
               </fo:inline>
                <xsl:choose>
                    <xsl:when test="xsl:*">
                        <fo:inline xsl:use-attribute-sets="xt"><xsl:value-of select="name(.)"/></fo:inline>
                    </xsl:when>
                    <xsl:otherwise>
                        <fo:inline xsl:use-attribute-sets="t"><xsl:value-of select="name(.)"/></fo:inline>
                    </xsl:otherwise>
                </xsl:choose>
               <fo:inline xsl:use-attribute-sets="m">
                  <xsl:text>></xsl:text>
               </fo:inline>
            </fo:block>
         </fo:block>
      </fo:block>
   </xsl:template>

   <xsl:template match="*[text() and not (comment() or processing-instruction())]" priority="2">
      <fo:block xsl:use-attribute-sets="e">
         <fo:block margin-left="1em" text-indent="-2em">
            <fo:inline xsl:use-attribute-sets="b">
            		<xsl:call-template name="nbsp-ref"/>
            </fo:inline>
            <fo:inline xsl:use-attribute-sets="m">
               <xsl:text>&lt;</xsl:text>
            </fo:inline>
            <xsl:choose>
                <xsl:when test="xsl:*">
                    <fo:inline xsl:use-attribute-sets="xt"><xsl:value-of select="name(.)"/>
                        <xsl:if test="@*">
                        <xsl:text> </xsl:text>
                        </xsl:if>
                    </fo:inline>
                </xsl:when>
                <xsl:otherwise>
                       <fo:inline xsl:use-attribute-sets="t"><xsl:value-of select="name(.)"/>
                           <xsl:if test="@*">
                               <xsl:text> </xsl:text>
                           </xsl:if>
                       </fo:inline>
                </xsl:otherwise>
            </xsl:choose>
            <xsl:apply-templates select="@*"/>
            <fo:inline xsl:use-attribute-sets="m">
               <xsl:text>></xsl:text>
            </fo:inline>
            <fo:inline xsl:use-attribute-sets="tx">
               <xsl:value-of select="."/>
            </fo:inline>
            <fo:inline xsl:use-attribute-sets="m">&lt;/</fo:inline>
            <xsl:choose>
                <xsl:when test="xsl:*"><fo:inline xsl:use-attribute-sets="xt"><xsl:value-of select="name(.)"/></fo:inline></xsl:when>
                <xsl:otherwise><fo:inline xsl:use-attribute-sets="t"><xsl:value-of select="name(.)"/></fo:inline></xsl:otherwise>
            </xsl:choose>
            <fo:inline xsl:use-attribute-sets="m">
               <xsl:text>></xsl:text>
            </fo:inline>
         </fo:block>
      </fo:block>
   </xsl:template>

   <xsl:template match="*[*]" priority="20">
       <fo:block xsl:use-attribute-sets="e">
           <!--<fo:block xsl:use-attribute-sets="c" margin-left="1em" text-indent="-2em">-->
         <fo:block margin-left="1em" text-indent="-2em">
            <!--<A xsl:use-attribute-sets="b" href="#" onclick="return false" onfocus="h()">-</A>-->
            <fo:inline xsl:use-attribute-sets="m">&lt;</fo:inline>
             <xsl:choose>
                 <xsl:when test="xsl:*">
                     <fo:inline xsl:use-attribute-sets="xt"><xsl:value-of select="name(.)"/>
                         <xsl:if test="@*">
                             <xsl:text> </xsl:text>
                         </xsl:if>
                     </fo:inline>
                 </xsl:when>
                 <xsl:otherwise>
                     <fo:inline xsl:use-attribute-sets="t"><xsl:value-of select="name(.)"/>
                         <xsl:if test="@*">
                             <xsl:text> </xsl:text>
                         </xsl:if>
                     </fo:inline>
                 </xsl:otherwise>
             </xsl:choose>
            <xsl:apply-templates select="@*"/>
            <fo:inline xsl:use-attribute-sets="m">
               <xsl:text>></xsl:text>
            </fo:inline>
         </fo:block>
         <fo:block>
            <xsl:apply-templates/>
            <fo:block>
               <fo:inline xsl:use-attribute-sets="b">
            			<xsl:call-template name="nbsp-ref"/>
               </fo:inline>
               <fo:inline xsl:use-attribute-sets="m">
                  <xsl:text>&lt;/</xsl:text>
               </fo:inline>
                <xsl:choose>
                    <xsl:when test="xsl:*">
                        <fo:inline xsl:use-attribute-sets="xt"><xsl:value-of select="name(.)"/></fo:inline>
                    </xsl:when>
                    <xsl:otherwise>
                        <fo:inline xsl:use-attribute-sets="t"><xsl:value-of select="name(.)"/></fo:inline>
                    </xsl:otherwise>
                </xsl:choose>
               <fo:inline xsl:use-attribute-sets="m">
                  <xsl:text>></xsl:text>
               </fo:inline>
            </fo:block>
         </fo:block>
      </fo:block>
   </xsl:template>

   <xsl:template name="nbsp-ref">
      <xsl:text>&#160;</xsl:text>
   </xsl:template>

</xsl:stylesheet>
