<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version = "1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
				      xmlns="http://www.w3.org/1999/xhtml" xmlns:bka="http://www.bka.gv.at">
<!--
 /////////////////////////////////////////////////////////////////
  Autor:       Hermann Anderl, Klaus Schipany
  Revision:    1.8.6
  Erstellt:    03.10.2003
  Modifiziert: 24.03.2004
 ///////////////////////////////////////////////////////////////// -->
<!-- Empfehlung Hr. Karlinger (23.12.03): keine DOCTYPE-Deklaration -->
<!-- Vereinbarung Hr. Karlinger (29.12.03): keine MS-Extensions: <msxsl:script> -->
<xsl:output method="xml" encoding="ISO-8859-1" omit-xml-declaration="yes" indent="yes"/>
<!--
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  Bei der Erstellung dieses Stylesheets wurden folgende Kriterien angewandt:
  1.) Das generierbare XHTML Dokument entspricht der XHTML 1.1 Spezifikation + CSS 2(W3C).
  2.) Dar�ber hinaus folgt das Stylesheet den erweiterten Einschr�nkungen von
      SLXHTML in der Version 1.0.1 (18.12.2003), Gregor Karlinger.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<!-- Bei Verwendung definieren: xmlns:msxsl="urn:schemas-microsoft-com:xslt" -->
<!--msxsl:script language="JScript" implements-prefix="bka">
   function replace(old) { return old.replace(/\./,"_"); }
</msxsl:script-->

<xsl:template match="bka:table" mode="sort">
  <!-- Es wird verarbeitet: @width, @border, @cellspacing, @cellpadding, @style-->
  <xsl:text>
  </xsl:text>
  <xsl:value-of select="string('&lt;!-- table -->')" disable-output-escaping="yes"/>
  <xsl:text>
    .</xsl:text><xsl:value-of select="generate-id(.)"/>
  <xsl:text> {</xsl:text>
  <xsl:if test="./@width"><!-- horizontal und vertikal.-->
  	<xsl:text> width:</xsl:text><xsl:value-of select="./@width"/><xsl:text>;</xsl:text>
  </xsl:if>
  <xsl:if test="not(./@border[.=0])"><!-- Alle 4 Seiten, wenn nicht 0 -->
  	<xsl:text> border:</xsl:text><xsl:value-of select="./@border"/><xsl:text>px solid black;</xsl:text>
  </xsl:if>
  <xsl:if test="./@cellspacing"><!-- horizontal und vertikal.-->
  	<xsl:text> border-spacing:</xsl:text><xsl:value-of select="./@cellspacing"/><xsl:text>;</xsl:text>
  </xsl:if>
  <xsl:if test="./@cellpadding"><!-- Alle 4 Seiten -->
  	<xsl:text> padding:</xsl:text><xsl:value-of select="./@cellpadding"/><xsl:text>;</xsl:text>
  </xsl:if>
  <xsl:value-of select="./@style"/>
  <xsl:text>}</xsl:text>
  <!-- Alle Zeilen (TR) -->
  <xsl:text>
  </xsl:text>
  <xsl:value-of select="string('&lt;!-- tr -->')" disable-output-escaping="yes"/>
  <xsl:for-each select="bka:tr | bka:thead/bka:tr">
    <!-- Es wird verarbeitet: @height, @style-->
    <xsl:if test="./@*">
      <xsl:text>
      .</xsl:text><xsl:value-of select="generate-id(.)"/>
      <xsl:text> {</xsl:text>
      <xsl:if test="./@height">
    	  <xsl:text> height:</xsl:text><xsl:value-of select="./@height"/><xsl:text>;</xsl:text>
      </xsl:if>
      <xsl:value-of select="./@style"/>
      <xsl:text>}</xsl:text>
    </xsl:if>
  </xsl:for-each>
  <!-- Alle Zellen (TD) -->
  <xsl:text>
  </xsl:text>
  <xsl:value-of select="string('&lt;!-- td -->')" disable-output-escaping="yes"/>
  <xsl:for-each select="bka:tr/bka:td | bka:thead/bka:tr/bka:td">
    <!-- Es wird verarbeitet: @width, @align, @valign, @style-->
    <xsl:text>
    .</xsl:text><xsl:value-of select="generate-id(.)"/>
    <xsl:text> {</xsl:text>
    <xsl:if test="./@width">
    <xsl:text> width:</xsl:text><xsl:value-of select="./@width"/><xsl:text>;</xsl:text>
    </xsl:if>
    <xsl:if test="./@algin">
    	<xsl:text> text-align:</xsl:text><xsl:value-of select="./@align"/><xsl:text>;</xsl:text>
    </xsl:if>
    <xsl:if test="./@valign">
    	<xsl:text> vertical-align:</xsl:text><xsl:value-of select="./@valign"/><xsl:text>;</xsl:text>
    </xsl:if>
    <!-- Sur Sicherheit zum Schluss, da dahinter kein ";" steht. -->
    <xsl:value-of select="./@style"/>
    <xsl:text>}</xsl:text>
  </xsl:for-each>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Keys
 ///////////////////////////////////////////////////////////////// -->
<xsl:key name="key_ueberschrift_typ" match="bka:ueberschrift" use="@typ"/>
<xsl:key name="key_kzinhalt_typ" match="bka:kzinhalt" use="@typ"/>
<xsl:key name="key_fzinhalt_typ" match="bka:fzinhalt" use="@typ"/>
<!--
 /////////////////////////////////////////////////////////////////
 //// Aufbau des XHTML-Dokuments
 /////////////////////////////////////////////////////////////////-->
<xsl:template match="bka:erechtdok">
  <xsl:value-of disable-output-escaping="yes" select="string('&lt;?xml version=&#x22;1.0&#x22; encoding=&#x22;ISO-8859-1&#x22;?>')"/>
  <xsl:element name="html">
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

<!-- ////////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:metadaten">
    <xsl:element name="head">
      <xsl:element name="title">eRecht XHTML 1.1 Dokument</xsl:element>
      <xsl:element name="style">
      <xsl:attribute name="type">text/css</xsl:attribute>
      <!-- Seitenr�nder dynamisch setzen -->
      <xsl:variable name="layoutdaten" select = "//bka:layoutdaten"></xsl:variable>        
      <!-- Die Breiten sind in Points (pt) angegeben und werden so weitergereicht. -->
      <xsl:variable name="margt" select = "$layoutdaten/@margt"></xsl:variable>
      <xsl:variable name="margr" select = "$layoutdaten/@margr"></xsl:variable>
      <xsl:variable name="margb" select = "$layoutdaten/@margb"></xsl:variable>
      <xsl:variable name="margl" select = "$layoutdaten/@margl"></xsl:variable>
      <xsl:variable name="paperw" select = "$layoutdaten/@paperw"></xsl:variable>
      <xsl:variable name="paperh" select = "$layoutdaten/@paperh"></xsl:variable>
      <!-- Alle Breitenangaben (width) und generischen CSS-Angaben (style) durch CSS-classes ersetzen. -->
      <!-- width=Pixelangabe; in style/class=umgerechnet in pt/cm. z.B. 170(px) = 127.6pt oder 378(px) = 10cm -->
      <xsl:apply-templates select="//bka:table" mode="sort"/>
		 <!-- In dieser Schleife werden alle H�henangaben (height) in td-Elementen durch CSS-classes ersetzt. -->
      <xsl:for-each select="//bka:td/@height">
        <xsl:sort/>
        <xsl:text>
        .H</xsl:text><xsl:value-of select="generate-id(.)"/><!--xsl:value-of select="bka:replace(string(.))"/--><xsl:text> { height: </xsl:text><xsl:value-of select="."/><xsl:text>;}</xsl:text>
      </xsl:for-each>
      <!-- Aufz�hlungen: 1. Spalte 38 px, 2. Spalte 15 px, 3. Spalte 22 px, 4. Spalte 22 px (empirisch ermittelt)-->
      <xsl:text>
        .W38 { width:38px; }</xsl:text>
      <xsl:text>
        .W15 { width:15px; }</xsl:text>
      <xsl:text>
        .W22 { width:22px; }</xsl:text>
      <xsl:text>
        .wi100 { width:100%; }</xsl:text>
      <!-- Erlaeuterungsaufzaehlung -->
      <xsl:text>
        .WErl { width:15px; }</xsl:text>
      <!-- 2. Spalte: berechnet-->
      <xsl:text>
        .E1Sp2 { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperw - 38"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .E2Sp2 { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperw - 38 - 15"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .E3Sp2 { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperw - 38 - 15 - 22"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .E4Sp2 { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperw - 38 - 15 - 22 - 22"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .E5Sp2 { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperw - 38 - 15 - 22 - 22 - 22"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .ErlSp2 { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperw - 25"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .E1Sp2Q { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperh - 38"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .E2Sp2Q { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperh - 38 - 15"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .E3Sp2Q { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperh - 38 - 15 - 22"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .E4Sp2Q { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperh - 38 - 15 - 22 - 22"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .E5Sp2Q { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperh - 38 - 15 - 22 - 22 - 22"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .ErlSp2Q { width:</xsl:text><xsl:value-of select="$layoutdaten/@paperh - 25"/><xsl:text>px; }</xsl:text>
      <xsl:text>
        .nextpage { page-break-before:always; }</xsl:text>
      <xsl:if test="$layoutdaten/@margt | $layoutdaten/@margr | $layoutdaten/@margb | $layoutdaten/@margl">
        <xsl:text>
        .margins {</xsl:text>
        <xsl:if test="$layoutdaten/@margt">
          <xsl:value-of select="concat('margin-top:', $margt, 'pt;')"/>
        </xsl:if>
        <xsl:if test="$layoutdaten/@margr">
          <xsl:value-of select="concat('margin-right:', $margr, 'pt;')"/>
        </xsl:if>
        <xsl:if test="$layoutdaten/@margb">
          <xsl:value-of select="concat('margin-bottom:', $margb, 'pt;')"/>
        </xsl:if>
        <xsl:if test="$layoutdaten/@margl">
          <xsl:value-of select="concat('margin-left:', $margl, 'pt;')"/>
        </xsl:if>
        <xsl:text>}</xsl:text>        
      </xsl:if>
      <!-- Seitenbreite dynamisch setzen (Hochformat) -->
      <xsl:if test="$layoutdaten/@paperw">
        <xsl:text>
        @media screen { .paperw {</xsl:text>
        <xsl:value-of select="concat('width:', $paperw, 'px;')"/>
        <xsl:if test="$layoutdaten/@margt">
          <xsl:value-of select="concat('margin-top:', $margt, 'pt;')"/>
        </xsl:if>
        <xsl:if test="$layoutdaten/@margr">
          <xsl:value-of select="concat('margin-right:', $margr, 'pt;')"/>
        </xsl:if>
        <xsl:if test="$layoutdaten/@margb">
          <xsl:value-of select="concat('margin-bottom:', $margb, 'pt;')"/>
        </xsl:if>
        <xsl:if test="$layoutdaten/@margl">
          <xsl:value-of select="concat('margin-left:', $margl, 'pt;')"/>
        </xsl:if>
        <xsl:text>}}</xsl:text>
        <xsl:text>
        @media print { .paperw {</xsl:text>
        <xsl:value-of select="concat('width:', $paperw, 'px;')"/>
        <xsl:text>margin-top:0.0pt;margin-right:0.0pt;margin-bottom:0.0pt;margin-left:0.0pt;size:portrait;</xsl:text>
        <xsl:text>}}</xsl:text>
      </xsl:if>        
      <!-- Seitenbreite ist die H�he (Querformat), Drehung der R�nder nach "rechts" -->
      <xsl:if test="$layoutdaten/@paperh">
        <xsl:text>
        @media screen { .paperh {</xsl:text>
        <xsl:value-of select="concat('width:', $paperh, 'px;')"/>
        <xsl:if test="$layoutdaten/@margt">
          <xsl:value-of select="concat('margin-right:', $margt, 'pt;')"/>
        </xsl:if>
        <xsl:if test="$layoutdaten/@margr">
          <xsl:value-of select="concat('margin-bottom:', $margr, 'pt;')"/>
        </xsl:if>
        <xsl:if test="$layoutdaten/@margb">
          <xsl:value-of select="concat('margin-left:', $margb, 'pt;')"/>
        </xsl:if>
        <xsl:if test="$layoutdaten/@margl">
          <xsl:value-of select="concat('margin-top:', $margl, 'pt;')"/>
        </xsl:if>
        <xsl:text>}}</xsl:text>
        <xsl:text>
        @media print { .paperh {</xsl:text>
        <xsl:value-of select="concat('width:', $paperh, 'px;')"/>
        <xsl:text>margin-top:0.0pt;margin-right:0.0pt;margin-bottom:0.0pt;margin-left:0.0pt;size:landscape</xsl:text>
        <xsl:text>}}</xsl:text>
      </xsl:if>      
<xsl:text>
/***************************/
/* Revision:    1.8.6      */
/* Erstellt:    03.10.2003 */
/* Modifiziert: 24.03.2004 */
/***************************/
/* Allgemeine Angaben zum Anzeigen von Linien in Tabellen */

/*@page :left {
  size: 21cm 29.7cm; 
  margin-left: 2cm;
  margin-right: 2cm;
  marks:crop;
}

@page :right {
  size: 21cm 29.7cm;  
  margin-left: 2cm;
  margin-right: 2cm;
  marks:crop;
}
*/
table.top
{
	border-top-style: solid;
	border-top-width: thin;
	border-color: black;
}

table.bottom
{
	border-bottom-style: solid;
	border-bottom-width: thin;
	border-color: black;
}

td.top
{
   border-top-style:solid;
   border-top-width:1pt;
}
td.right
{
   border-right-style:solid;
   border-right-width:1pt;
}
td.bottom
{
   border-bottom-style:solid;
   border-bottom-width:1pt;
}
td.left
{
   border-left-style:solid;
   border-left-width:1pt;
}

/*Text innerhalb einer Tabellenzelle*/
.AlignLeft
{
	text-align:left;
}
.AlignRight
{
	text-align:right;
}
.AlignCenter
{
	text-align:center;
}
.AlignJustify
{
	text-align:justify;
}
.VAlignTop {
	vertical-align:top;	
}
/***************************************************************/
/* Legistik-Standard-Formatvorlage                             */
/***************************************************************/

/* Formatvorlage: 00_LegStandard */
.LegStandard
{
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/***************************************************************/
/* Formatvorlagen fuer Absaetze                                */
/***************************************************************/

/* Formatvorlage: 01_Undefiniert */
p.Undefiniert
{
	margin-top:1.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color: red;
}

/* Formatvorlage: 02_BDGesBlatt */
p.BDGesBlatt
{
	margin-top:14.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:center;
	line-height:35.0pt;
	font-size:35.0pt;
	font-family:"Times New Roman";
	color:black;
	text-transform:uppercase;
	letter-spacing:1.3pt;
	font-weight:bold;
}

/* Formatvorlage: 03_RepOesterr */
p.RepOesterr
{
	margin-top:6.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	margin-bottom:12.0pt;
	text-align:center;
	line-height:20.0pt;
	border:none;
	padding:0cm;
	font-size:20.0pt;
	font-family:"Times New Roman";
	color:black;
	text-transform:uppercase;
	letter-spacing:1.0pt;
	font-weight:bold;
}

/* Formatvorlage: 04_AusgabeDaten */
p.AusgabeDaten
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:14.0pt;
	padding:0cm;
	font-size:12.0pt;
	font-family:"Times New Roman";
	color: black;
	font-weight:bold;
}

/* Formatvorlage: 05_Kurztitel */
/* Kurztitel in einer Spalte (wenn kein TAB vorhanden ist) */
p.Kurztitel1
{
	margin-top:2.0pt;
	margin-right: 0cm;
	margin-bottom:0cm;
	margin-left: 3.6cm;
	text-align:justify;
	text-indent: -3.6cm;
	border:none;
	padding:0cm;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Kurztitel in zwei Spalten (wenn ein TAB vorhanden ist) */
p.Kurztitel2
{
	margin-top:2.0pt;
	margin-right: 0cm;
	margin-bottom:0cm;
	margin-left: 0cm;
	text-align:justify;
	border:none;
	padding:0cm;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

span.Kurztitelbreite
{
	width: 3.4cm;
}

/* Formatvorlage: 09_Abstand */
p.Abstand
{
	margin:6.0pt;
	margin-bottom:6.0pt;
	line-height:10.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 10_Entwurf */
p.Entwurf
{
	margin-top:80.0pt;
	margin-right:0cm;
	margin-bottom:64.0pt;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	letter-spacing:1.3pt;
}

/* Formatvorlage: 11_Titel */
p.Titel
{
	margin-top:24.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:11.0pt;
	font-family:"Times New Roman";
	font-weight:bold;
}

/* Formatvorlage: 12_PromKl_EinlSatz */	
p.PromKlEinlSatz
{
	margin-top:8.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	text-indent:19.85pt;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 18_Abbildung_oder_Objekt */
p.AbbildungoderObjekt
{
	margin-top:6.0pt;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 18_Abbildung_oder_Objekt */
p.AbbildungoderObjektL
{
	margin-top:6.0pt;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	text-align:left;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 18_Abbildung_oder_Objekt */
p.AbbildungoderObjektZ
{
	margin-top:6.0pt;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	text-align:center;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 18_Abbildung_oder_Objekt */
p.AbbildungoderObjektR
{
	margin-top:6.0pt;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	text-align:right;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 19_Beschriftung */
p.Beschriftung
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 19_Beschriftung */
p.BeschriftungL
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	line-height:11.0pt;
	text-align:left;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 19_Beschriftung */
p.BeschriftungZ
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	line-height:11.0pt;
	text-align:center;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 19_Beschriftung */
p.BeschriftungR
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	line-height:11.0pt;
	text-align:right;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 21_NovAo1 */
p.NovAo1
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:10.0pt;
	font-family:"Times New Roman";
	font-style:italic;
}

/* Formatvorlage: 22_NovAo1 */
p.NovAo2
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	font-style:italic;
}

/* Formatvorlage: 23_Satz_(nach_Novao) */
p.SatznachNovao
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 30_InhaltUeberschrift */
p.InhaltUeberschrift
{
	margin-top:16.0pt;
	margin-right:0cm;
	margin-bottom:8.0pt;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	font-weight:bold;
}

/* Formatvorlage: 31_InhaltSpalte */
p.InhaltSpalte
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:4.0pt;
	margin-left:0cm;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:10.0pt;
	font-family:"Times New Roman";
	font-weight:bold;
}

/* Formatvorlage: 32_InhaltEintrag */
p.InhaltEintrag
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 41_UeberschrG1 */
p.UeberschrG1
{
	margin-top:16.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:11.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 42_UeberschrG1- */
p.UeberschrG1-
{
	margin-top:8.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:11.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 43_UeberschrG2 */
p.UeberschrG2
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:4.0pt;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:11.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 44_UeberschrArt */
p.UeberschrArt
{
	margin-top:8.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 45_UeberschrPara */
p.UeberschrPara
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 51_Abs */
p.Abs
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	text-indent:19.85pt;
/*	line-height:11.0pt; */
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 52_Ziffer_e1 */
p.ZifferE1
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 52_Ziffer_e2 */
p.ZifferE2
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 52_Ziffer_e3 */
p.ZifferE3
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 52_Ziffer_mit_Betrag */
p.ZifferMitBetrag
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	punctuation-wrap:simple;
	text-autospace:none;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 52aT_Ziffer_mit_Betrag_TGUE */
p.ZifferMitBetragTGUE
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	punctuation-wrap:simple;
	text-autospace:none;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 53_Litera_e1 */
p.LiteraE1
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 53_Litera_e2 */
p.LiteraE2
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 53_Litera_e3 */
p.LiteraE3
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 53_Litera_mit_Betrag */
p.LiteraMitBetrag
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	punctuation-wrap:simple;
	text-autospace:none;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 53aT_Litera_mit_Betrag_TGUE */
p.LiteraMitBetragTGUE
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	punctuation-wrap:simple;
	text-autospace:none;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54_Sublitera_e1 */
p.SubliteraE1
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54_Sublitera_e2 */
p.SubliteraE2
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54_Sublitera_e3 */
p.SubliteraE3
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54_Sublitera_mit_Betrag */
p.SubliteraMitBetrag
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	punctuation-wrap:simple;
	text-autospace:none;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54aT_Sublitera_mit_Betrag_TGUE */
p.SubliteraMitBetragTGUE
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	punctuation-wrap:simple;
	text-autospace:none;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54a_Strich_e1 */
p.StrichE1
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54a_Strich_e2 */
p.StrichE2
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54a_Strich_e3 */
p.StrichE3
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54a_Strich_e4 */
p.StrichE4
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54a_Strich_e5 */
p.StrichE5
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 54a_Strich_e6 */
p.StrichE6
{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 54a_Strich_e7 */
p.StrichE7
	{
	margin-top:2.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 55_SchlussteilAbs */
p.SchlussteilAbs
{
	margin:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 56_SchlussteilZiff */
p.SchlussteilZiff
{
	margin:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 57_SchlussteilLit */
p.SchlussteilLit
{
	margin:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 61_TabText */
p.TabText
{
	margin:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 61a_TabTextRechtsb */
p.TabTextRechtsb
{
	margin:0cm;
	text-align:right;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 61b_TabTextZentriert */
p.TabTextZentriert
{
	margin:0cm;
	text-align:center;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 61c_TabTextBlock */
p.TabTextBlock
{
	margin:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 62_Kopfzeile */
p.Kopfzeile
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color: #C0C0C0;
}

/* Formatvorlage: 63_Fu�zeile */
p.Fusszeile
{
	margin-top:10.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:9.0pt;
	font-family:"Times New Roman";
	color: #C0C0C0;
}

/* Formatvorlage: 64_FN_Linie */
p.FNLinie
{
	margin-top:11.0pt;
	margin-right:13.0cm;
	margin-bottom:1.0pt;
	margin-left:0cm;
	line-height:11.0pt;
	padding:0cm;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	border-bottom-style: solid;
	border-bottom-color: Gray;
	border-bottom-width: 1px;
}

/* Formatvorlage: 65_FN_Text */
p.FNText
{
	margin:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:9.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 66_FN_Zeichen */
span.FNZeichen
{
	vertical-align:super;
}

/* Formatvorlage: 68_UnterschrL */
p.UnterschrL
{
	margin-top:8.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:left;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 69_UnterschrM */
p.UnterschrM
{
	margin-top:8.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 71_Anlagenbez */
p.Anlagenbez
{
	margin-top:8.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:right;
	line-height:11.0pt;
	font-size:11.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 81_ErlUeberschrZ */
p.ErlUeberschrZ
{
	margin-top:16.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:11.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 82_ErlUeberschrL */
p.ErlUeberschrL
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/* Formatvorlage: 83_ErlText */
p.ErlText
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
}

/* Formatvorlage: 85_ErlAufzaehlg - noch nicht fertig */
p.ErlAufzaehlg
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
}

/* Formatvorlage: 89_TGUE_UeberschrSpalte*/
p.TGUEUeberschrSpalte
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:center;
	line-height:11.0pt;
	page-break-after:avoid;
	font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	font-weight:bold;
}

/***************************************************************/
/* Formatvorlagen fuer Zeichenformatierung                     */
/***************************************************************/

/* Formatvorlage: 990_Fehler */
span.Fehler
{
	color: red;
}

/* Formatvorlage: 991_GldSymbol */
span.GldSymbol
{
	font-weight:bold;
}

/* Formatvorlage: 992_Normal */
span.Normal
{
	font-style: normal;
}

/* Formatvorlage: 993_Fett */
span.Fett
{
	font-weight:bold;
}

/* Formatvorlage: 994_Kursiv */
span.Kursiv
{
	font-style:italic;
}

/* Formatvorlage: 995_Unterstrichen */
span.Unterstrichen
{
	text-decoration:underline;
}

/* Formatvorlage: 996_Gesperrt */
span.Gesperrt
{
	letter-spacing:1.3pt;
}

/* Formatvorlage: 997_Hoch */
span.Hoch
{
	font-size: 50%;
	vertical-align:super;
}

/* Formatvorlage: 998_Tief */
span.Tief
{
	font-size: 50%;
	vertical-align:sub;
}

/* Formatvorlage: 999_Fett_und_Kursiv */
span.FettundKursiv
{
	font-weight:bold;
	font-style:italic;
}

/* Standardtabschrittweite aus Word */
span.Standardtabulator
{
	width:35.45pt;
}

/***************************************************************/
/* Formatvorlagen der Parlamentsdirektion                      */
/***************************************************************/

p.PD_Allonge, li.PD_Allonge, div.PD_Allonge
{
	margin-top:14.0pt;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	text-align:center;
	font-size:14.0pt;
	font-family:"Times New Roman";
	layout-grid-mode:line;
}

p.PD_AllongeB, li.PD_AllongeB, div.PD_AllongeB
{
	margin-top:14.0pt;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	text-align:justify;
	font-size:14.0pt;
	font-family:"Times New Roman";
	layout-grid-mode:line;
}

p.PD_AllongeL, li.PD_AllongeL, div.PD_AllongeL
{
	margin-top:14.0pt;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	font-size:14.0pt;
	font-family:"Times New Roman";
	layout-grid-mode:line;
}

p.PD_Antragsformel, li.PD_Antragsformel, div.PD_Antragsformel
{
	margin-top:14.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	layout-grid-mode:line;
}

p.PD_Datum, li.PD_Datum, div.PD_Datum
{
	margin-top:14.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	layout-grid-mode:line;
}

p.PD_Entschliessung, li.PD_Entschliessung, div.PD_Entschliessung
{
	margin-top:8.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:11.0pt;
	font-family:"Times New Roman";
	layout-grid-mode:line;
	font-weight:bold;
}

p.PD_K1, li.PD_K1, div.PD_K1
{
	margin:0cm;
	text-align:center;
	border:none;
	padding:0cm;
	font-size:12.0pt;
	font-family:"Times New Roman";
	letter-spacing:-.4pt;
	font-weight:bold;
}

p.PD_K1Anlage, li.PD_K1Anlage, div.PD_K1Anlage
{
	margin:0cm;
	text-align:right;
	font-size:12.0pt;
	font-family:"Times New Roman";
	letter-spacing:-.4pt;
	font-weight:bold;
}

p.PD_K1Ausg, li.PD_K1Ausg, div.PD_K1Ausg
{
	margin-top:62.9pt;
	margin-right:0cm;
	margin-bottom:27.0pt;
	margin-left:0cm;
	font-size:11.0pt;
	font-family:"Times New Roman";
	font-weight:bold;
}

p.PD_K2, li.PD_K2, div.PD_K2
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:11.35pt;
	margin-left:0cm;
	font-size:22.0pt;
	font-family:"Times New Roman";
	font-weight:bold;
}

p.PD_K3, li.PD_K3, div.PD_K3
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:20.0pt;
	margin-left:0cm;
	font-size:18.0pt;
	font-family:"Times New Roman";
	font-weight:bold;
}

p.PD_K4, li.PD_K4, div.PD_K4
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:6.0pt;
	margin-left:0cm;
	font-size:13.0pt;
	font-family:"Times New Roman";
	font-weight:bold;
}

p.PD_Kopfzeile, li.PD_Kopfzeile, div.PD_Kopfzeile
{
	margin-top:4.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	layout-grid-mode:line;
}

p.PD_U1, li.PD_U1, div.PD_U1
{
	margin-top:22.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:10.0pt;
	font-family:"Times New Roman";
	font-weight:bold;
}

p.PD_U2, li.PD_U2, div.PD_U2
{
	margin-top:5.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:0cm;
	line-height:11.0pt;
	font-size:9.0pt;
	font-family:"Times New Roman";
}

p.PD_Vorlage, li.PD_Vorlage, div.PD_Vorlage
{
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	text-align:justify;
	line-height:11.0pt;
	font-size:11.0pt;
	font-family:"Times New Roman";
	layout-grid-mode:line;
	font-weight:bold;
}
</xsl:text>
      </xsl:element>
    </xsl:element>
</xsl:template>
<!-- ////////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:nutzdaten">
  <xsl:element name="body">
    <xsl:apply-templates/>
    <xsl:apply-templates select="//bka:fnen" mode="dokumentende"/>
  </xsl:element>
</xsl:template>

<!-- ////////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:abschnitt">
  <xsl:variable name="layoutdaten" select = "//bka:layoutdaten"></xsl:variable>
  <xsl:element name="div">
    <xsl:choose>
      <xsl:when test="@paperf[.='q']"><!-- Querformat? -->
        <xsl:if test="$layoutdaten/@paperh | @typ[.='ns']">
          <xsl:attribute name="class">
            <xsl:if test="$layoutdaten/@paperh">
              <xsl:text>paperh</xsl:text>
            </xsl:if>
            <xsl:if test="@typ[.='ns']">
              <xsl:if test="@nr[.>1]">
                <xsl:text> nextpage</xsl:text>
              </xsl:if>
            </xsl:if>
          </xsl:attribute><!-- Abschnitt <xsl:value-of select="position()-1"/ -->
        </xsl:if>
        <xsl:apply-templates select="key('key_kzinhalt_typ', 'f')[1]" mode="dokumentanfang"/>
        <xsl:apply-templates/>
        <xsl:apply-templates select="key('key_fzinhalt_typ', 'f')[1]" mode="dokumentende"/>
      </xsl:when>
      <xsl:otherwise><!-- Hochformat (default) -->
        <xsl:if test="$layoutdaten/@paperw | @typ[.='ns']">
          <xsl:attribute name="class">
            <xsl:if test="$layoutdaten/@paperw">
              <xsl:text>paperw</xsl:text>
            </xsl:if>
            <xsl:if test="@typ[.='ns']">
              <xsl:if test="@nr[.>1]">
                <xsl:text> nextpage</xsl:text>
              </xsl:if>
            </xsl:if>
          </xsl:attribute><!--Abschnitt <xsl:value-of select="position()-1"/-->
        </xsl:if>
        <xsl:apply-templates select="key('key_kzinhalt_typ', 'f')[1]" mode="dokumentanfang"/>
        <xsl:apply-templates/>
        <xsl:apply-templates select="key('key_fzinhalt_typ', 'f')[1]" mode="dokumentende"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:element>
</xsl:template>
<!--
 /////////////////////////////////////////////////////////////////
 //// Ausgabedaten
 ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:ausgabe">
  <xsl:element name="table">
    <xsl:attribute name="class">top bottom wi100</xsl:attribute>
    <xsl:element name="tr">
      <xsl:apply-templates mode="erzeuge_ausgabe"/>
    </xsl:element>
  </xsl:element>
</xsl:template>

<xsl:template match="bka:adtext" mode="erzeuge_ausgabe">
  <xsl:element name="td">
    <xsl:element name="p">
      <xsl:attribute name="class">AusgabeDaten AlignLeft</xsl:attribute>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:element>
</xsl:template>

<xsl:template match="bka:addat" mode="erzeuge_ausgabe">
  <xsl:element name="td">
    <xsl:element name="p">
      <xsl:attribute name="class">AusgabeDaten AlignCenter</xsl:attribute>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:element>
</xsl:template>

<xsl:template match="bka:adid" mode="erzeuge_ausgabe">
  <xsl:element name="td">
    <xsl:element name="p">
      <xsl:attribute name="class">AusgabeDaten AlignRight</xsl:attribute>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:element>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Kurztitel
 ///////////////////////////////////////////////////////////////// -->
<xsl:template match="*" mode="erzeuge_zeilen"></xsl:template><!-- nichts tun -->

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="key('key_ueberschrift_typ', 'kurztitel')" mode="erzeuge_zeilen">
      <xsl:element name="tr">
        <xsl:if test="bka:tab[1]">
          <xsl:element name="td">
            <xsl:element name="p">
              <xsl:attribute name="class">Kurztitel2 AlignLeft VAlignTop</xsl:attribute>
              <xsl:element name="span">
                <xsl:attribute name="class">Kurztitelbreite</xsl:attribute>
                <!-- Verarbeite nun alles was vor dem 1. Tabulator kommt. -->
                <!-- tab[1]/preceding-sibling::text() bewirkt die Verarbeitung aller Textknoten vor dem 1. Tab. -->
                <!-- tab[1]/preceding-sibling::* bewirkt die Verarbeitung der enthaltenen Subknoten. -->
                <xsl:for-each select="bka:tab[1]/preceding-sibling::text() | bka:tab[1]/preceding-sibling::*">
                  <xsl:apply-templates select="."/>
                </xsl:for-each>
              </xsl:element>
            </xsl:element>
          </xsl:element>
          <xsl:element name="td">
            <xsl:element name="p">
              <xsl:attribute name="class">Kurztitel2 AlignLeft</xsl:attribute>
            <!-- Verarbeite nun den Rest ab dem 1. Tabulator. -->
            <!-- tab[1]/following-sibling::text() bewirkt die Verarbeitung aller Textknoten nach dem 1. Tab. -->
            <!-- tab[1]/following-sibling::* bewirkt die Verarbeitung der restlichen Tabulatoren und enthaltener Subknoten. -->
            <xsl:for-each select="bka:tab[1]/following-sibling::text() | bka:tab[1]/following-sibling::*">
              <xsl:apply-templates select="."/>
            </xsl:for-each>
            </xsl:element>
          </xsl:element>
        </xsl:if>
        <xsl:if test="not(bka:tab[1])">
          <!-- Da es keinen Tabulator gibt, wird nur eine Spalte erzeugt. -->
          <xsl:element name="td">
            <xsl:attribute name="colspan">2</xsl:attribute>
            <xsl:element name="p">
              <xsl:attribute name="class">Kurztitel1 AlignLeft VAlignTop</xsl:attribute>
                <xsl:apply-templates/>
            </xsl:element>
          </xsl:element>
        </xsl:if>
      </xsl:element>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Inhaltsverzeichnis, HTML-Tabellen ////
 ///////////////////////////////////////////////////////////////// -->

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:inhaltsvz">
  <xsl:choose >
    <xsl:when test="./@typ='ueberschrift'">
    	 <xsl:element name="p">
    	 	<xsl:attribute name="class">InhaltUeberschrift</xsl:attribute>
			<xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='spalte'">
      <xsl:element name="p">
        <xsl:attribute name="class">InhaltSpalte</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='eintrag'">
      <xsl:element name="p">
        <xsl:attribute name="class">InhaltEintrag</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element> 
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:table">
    <xsl:element name="table">
      <xsl:attribute name="class"><xsl:value-of select = "generate-id(.)"/></xsl:attribute>
      <xsl:apply-templates select="./@*"/>
      <xsl:apply-templates/>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:thead">
    <xsl:element name="thead">
      <xsl:apply-templates select="./@*"/>
      <xsl:apply-templates/>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:tr">
    <xsl:element name="tr">
      <xsl:if test="./@*">
        <xsl:attribute name="class"><xsl:value-of select = "generate-id(.)"/></xsl:attribute>
        <xsl:apply-templates select="./@*"/>
      </xsl:if>
      <xsl:apply-templates/>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:td">
    <xsl:element name="td">
      <xsl:attribute name="class"><xsl:value-of select = "generate-id(.)"/></xsl:attribute>
      <xsl:apply-templates select="./@*"/>
      <xsl:apply-templates/>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@colspan">
  <xsl:attribute name="colspan"><xsl:value-of select = "." /></xsl:attribute>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@rowspan">
  <xsl:attribute name="rowspan"><xsl:value-of select = "." /></xsl:attribute>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@border">
  <!-- Wurde in die dyn. class aufgenommen -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@cellspacing">
  <!-- Wurde in die dyn. class aufgenommen -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->

<xsl:template match="@cellpadding">
  <!-- Wurde in die dyn. class aufgenommen -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@width">
  <!-- Wurde in die dyn. class aufgenommen -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@height">
  <!-- Wurde in die dyn. class aufgenommen -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@align">
  <!-- Wurde in die dyn. class aufgenommen -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@valign">
  <!-- Wurde in die dyn. class aufgenommen -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@style">
  <!-- Wurde in die dyn. class aufgenommen -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@class">
  <xsl:attribute name="class"><xsl:value-of select = "." /></xsl:attribute>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@nowrap">
  <!-- Derzeit nichts tun -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@h-start">
  <!-- nichts tun nur RTF-Info -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@h-xval">
  <!-- nichts tun nur RTF-Info -->
</xsl:template>

<xsl:template name="checkForEmptyCell">
  <xsl:if test="ancestor::bka:table">
    <xsl:if test=". = ''"><xsl:value-of disable-output-escaping="yes" select="string('&amp;#160;')"/></xsl:if>
  </xsl:if>
  <xsl:apply-templates/>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Ueberschriften
 ///////////////////////////////////////////////////////////////// -->

<xsl:template match="bka:ueberschrift">
  <xsl:choose >
    <xsl:when test="./@typ='bdgesblatt'">
      <xsl:element name="p">
        <xsl:attribute name="class">BDGesBlatt</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
        </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='repoesterr'">
      <xsl:element name="p">
        <xsl:attribute name="class">RepOesterr</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='entwurf'">
      <xsl:element name="p">
        <xsl:attribute name="class">Entwurf</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='kurztitel'">
      <xsl:if test="not(name(preceding-sibling::*[1]) = 'ueberschrift')">
      <xsl:element name="table">
        <xsl:attribute name="class">bottom wi100</xsl:attribute>
<!--        <xsl:attribute name="parent"><xsl:value-of select="name(parent::*)"/></xsl:attribute>
        <xsl:attribute name="preceding"><xsl:value-of select="name(preceding::*)"/></xsl:attribute>
        <xsl:attribute name="preceding-sibling"><xsl:value-of select="name(preceding-sibling::*)"/></xsl:attribute>
        <xsl:attribute name="preceding-sibling-typ"><xsl:value-of select="preceding-sibling::*/@typ"/></xsl:attribute>
        <xsl:attribute name="count-preceding-sibling"><xsl:value-of select="count(preceding-sibling::*)"/></xsl:attribute>
        <xsl:attribute name="count-preceding"><xsl:value-of select="count(preceding::*)"/></xsl:attribute>
        <xsl:attribute name="yyy-sibling-typ"><xsl:value-of select="name(preceding-sibling::*[1])"/></xsl:attribute>
        <xsl:attribute name="zzz-sibling-typ"><xsl:value-of select="name(preceding::*[1])"/></xsl:attribute> -->
        <xsl:apply-templates select="../bka:ueberschrift" mode="erzeuge_zeilen"/>
      </xsl:element>
      </xsl:if>
    </xsl:when>
    <xsl:when test="./@typ='titel'">
      <xsl:element name="p">
        <xsl:attribute name="class">Titel</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='g1'">
      <xsl:element name="p">
        <xsl:attribute name="class">UeberschrG1</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='g2'">
      <xsl:element name="p">
        <xsl:attribute name="class">UeberschrG2</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='g1min'">
      <xsl:element name="p">
        <xsl:attribute name="class">UeberschrG1-</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='art'">
      <xsl:element name="p">
        <xsl:attribute name="class">UeberschrArt</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='para'">
      <xsl:element name="p">
        <xsl:attribute name="class">UeberschrPara</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='anlage'">
      <xsl:element name="p">
        <xsl:attribute name="class">Anlagenbez</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='erlz'">
      <xsl:element name="p">
        <xsl:attribute name="class">ErlUeberschrZ</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='erll'">
      <xsl:element name="p">
        <xsl:attribute name="class">ErlUeberschrL</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='tgue'">
      <xsl:element name="p">
        <xsl:attribute name="class">TGUEUeberschrSpalte</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Absaetze
 ///////////////////////////////////////////////////////////////// -->

<xsl:template match="bka:absatz">
  <xsl:choose >
    <xsl:when test="./@typ='undef'">
      <xsl:element name="p">
        <xsl:attribute name="class">Undefiniert</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='promkleinlsatz'">
      <xsl:element name="p">
        <xsl:attribute name="class">PromKlEinlSatz</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='abs'">
      <xsl:element name="p">
        <xsl:attribute name="class">Abs</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='abbobj'">
      <xsl:element name="p">
        <xsl:choose >
          <xsl:when test="./@halign='left'">
            <xsl:attribute name="class">AbbildungoderObjektL</xsl:attribute>
            <xsl:call-template name="checkForEmptyCell"/>
          </xsl:when>
          <xsl:when test="./@halign='center'">
            <xsl:attribute name="class">AbbildungoderObjektZ</xsl:attribute>
            <xsl:call-template name="checkForEmptyCell"/>
          </xsl:when>
          <xsl:when test="./@halign='right'">
            <xsl:attribute name="class">AbbildungoderObjektR</xsl:attribute>
            <xsl:call-template name="checkForEmptyCell"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:attribute name="class">AbbildungoderObjekt</xsl:attribute>
            <xsl:call-template name="checkForEmptyCell"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='novao1'">
      <xsl:element name="p">
        <xsl:attribute name="class">NovAo1</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='novao2'">
      <xsl:element name="p">
        <xsl:attribute name="class">NovAo2</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='satz'">
      <xsl:element name="p">
        <xsl:attribute name="class">SatznachNovao</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='tabtext'">
      <xsl:element name="p">
        <xsl:attribute name="class">TabText</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='tabtextr'">
      <xsl:element name="p">
        <xsl:attribute name="class">TabTextRechtsb</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='tabtextz'">
      <xsl:element name="p">
        <xsl:attribute name="class">TabTextZentriert</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='tabtextb'">
      <xsl:element name="p">
        <xsl:attribute name="class">TabTextBlock</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='erltext'">
      <xsl:element name="p">
        <xsl:attribute name="class">ErlText</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='kz'">
      <xsl:element name="p">
        <xsl:attribute name="class">Kopfzeile</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='fz'">
      <xsl:element name="p">
        <xsl:attribute name="class">Fusszeile</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:abstand">
  <xsl:element name="p">
    <xsl:attribute name="class">Abstand</xsl:attribute>
    <xsl:call-template name="checkForEmptyCell"/>
  </xsl:element>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Normale Liste / Aufzaehlung
 ///////////////////////////////////////////////////////////////// -->

<xsl:template match="bka:liste">
    <xsl:element name="table">
      <xsl:attribute name="class">wi100</xsl:attribute>
      <xsl:apply-templates/>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:erlliste">
   <xsl:apply-templates mode="erzeuge_erl_liste">
      <xsl:with-param name="classname">ErlAufzaehlg</xsl:with-param>
    </xsl:apply-templates>
</xsl:template>
      
<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:ziffernliste">
  <xsl:choose >
    <xsl:when test="./@ebene='1'">
      <xsl:apply-templates mode="erzeuge_liste_ebene1">
        <xsl:with-param name="classname">ZifferE1</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@ebene='2'">
      <xsl:apply-templates mode="erzeuge_liste_ebene2">
        <xsl:with-param name="classname">ZifferE2</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@ebene='3'">
      <xsl:apply-templates mode="erzeuge_liste_ebene3">
        <xsl:with-param name="classname">ZifferE3</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falsche Ebene: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:literaliste">
  <xsl:choose >
    <xsl:when test="./@ebene='1'">
      <xsl:apply-templates mode="erzeuge_liste_ebene1">
        <xsl:with-param name="classname">LiteraE1</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@ebene='2'">
      <xsl:apply-templates mode="erzeuge_liste_ebene2">
        <xsl:with-param name="classname">LiteraE2</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@ebene='3'">
      <xsl:apply-templates mode="erzeuge_liste_ebene3">
        <xsl:with-param name="classname">LiteraE3</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falsche Ebene: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:subliteraliste">
  <xsl:choose >
    <xsl:when test="./@ebene='1'">
      <xsl:apply-templates mode="erzeuge_liste_ebene1">
        <xsl:with-param name="classname">SubliteraE1</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@ebene='2'">
      <xsl:apply-templates mode="erzeuge_liste_ebene2">
        <xsl:with-param name="classname">SubliteraE2</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@ebene='3'">
      <xsl:apply-templates mode="erzeuge_liste_ebene3">
        <xsl:with-param name="classname">SubliteraE3</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falsche Ebene: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:strichliste">
  <xsl:choose >
    <xsl:when test="./@ebene='1'">
      <xsl:apply-templates mode="erzeuge_liste_ebene1">
        <xsl:with-param name="classname">StrichE1</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@ebene='2'">
      <xsl:apply-templates mode="erzeuge_liste_ebene2">
        <xsl:with-param name="classname">StrichE2</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@ebene='3'">
      <xsl:apply-templates mode="erzeuge_liste_ebene3">
        <xsl:with-param name="classname">StrichE3</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@ebene='4'">
      <xsl:apply-templates mode="erzeuge_liste_ebene4">
        <xsl:with-param name="classname">StrichE4</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falsche Ebene: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:listelem" mode="erzeuge_erl_liste">
  <xsl:param name = "classname"/>
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:attribute name="class"><xsl:text>WErl AlignRight VAlignTop</xsl:text></xsl:attribute>
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:apply-templates select="bka:symbol[1]"/>
        </xsl:element>
      </xsl:element>
      <xsl:element name="td">
        <xsl:attribute name="class">
          <xsl:text>AlignJustify </xsl:text>
          <xsl:choose>
            <xsl:when test="ancestor::bka:abschnitt/@paperf[.='q']">
              <xsl:text>ErlSp2Q</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>ErlSp2</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:attribute>
        <xsl:attribute name="colspan">7</xsl:attribute>
        <!-- Verarbeite nun den Rest ab dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::text() bewirkt die Verarbeitung aller Textknoten nach dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::* bewirkt die Verarbeitung der enthaltenen Subknoten. -->
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:for-each select="bka:symbol[1]/following-sibling::text() | bka:symbol[1]/following-sibling::*">
            <xsl:apply-templates select="."/>
          </xsl:for-each>
        </xsl:element>
      </xsl:element>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:listelem" mode="erzeuge_liste_ebene1">
  <xsl:param name = "classname"/>
    <xsl:element name="tr">
      <xsl:element name="td">
        <xsl:attribute name="class"><xsl:text>W38 AlignRight VAlignTop</xsl:text></xsl:attribute>
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:apply-templates select="bka:symbol[1]"/>
        </xsl:element>
      </xsl:element>
      <xsl:element name="td">
        <xsl:attribute name="class">
          <xsl:text>AlignJustify </xsl:text>
          <xsl:choose>
            <xsl:when test="ancestor::bka:abschnitt/@paperf[.='q']">
              <xsl:text>E1Sp2Q</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>E1Sp2</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:attribute>
        <xsl:attribute name="colspan">7</xsl:attribute>
        <!-- Verarbeite nun den Rest ab dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::text() bewirkt die Verarbeitung aller Textknoten nach dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::* bewirkt die Verarbeitung der enthaltenen Subknoten. -->
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:for-each select="bka:symbol[1]/following-sibling::text() | bka:symbol[1]/following-sibling::*">
            <xsl:apply-templates select="."/>
          </xsl:for-each>
        </xsl:element>
      </xsl:element>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:listelem" mode="erzeuge_liste_ebene2">
  <xsl:param name = "classname"/>
    <xsl:element name="tr">
      <xsl:element name="td"/>
      <xsl:element name="td">
        <xsl:attribute name="class">W15 AlignRight VAlignTop</xsl:attribute>
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:apply-templates select="bka:symbol[1]"/>
        </xsl:element>
      </xsl:element>
      <xsl:element name="td">
        <xsl:attribute name="class">
          <xsl:text>AlignJustify </xsl:text>
          <xsl:choose>
            <xsl:when test="ancestor::bka:abschnitt/@paperf[.='q']">
              <xsl:text>E2Sp2Q</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>E2Sp2</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:attribute>
        <xsl:attribute name="colspan">6</xsl:attribute>
        <!-- Verarbeite nun den Rest ab dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::text() bewirkt die Verarbeitung aller Textknoten nach dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::* bewirkt die Verarbeitung der enthaltenen Subknoten. -->
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:for-each select="bka:symbol[1]/following-sibling::text() | bka:symbol[1]/following-sibling::*">
            <xsl:apply-templates select="."/>
          </xsl:for-each>
        </xsl:element>
      </xsl:element>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:listelem" mode="erzeuge_liste_ebene3">
  <xsl:param name = "classname"/>
    <xsl:element name="tr">
      <xsl:element name="td"/>
      <xsl:element name="td"/>
      <xsl:element name="td">
        <xsl:attribute name="class">W22 AlignRight VAlignTop</xsl:attribute>
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:apply-templates select="bka:symbol[1]"/>
        </xsl:element>
      </xsl:element>
      <xsl:element name="td">
        <xsl:attribute name="class">
          <xsl:text>AlignJustify </xsl:text>
          <xsl:choose>
            <xsl:when test="ancestor::bka:abschnitt/@paperf[.='q']">
              <xsl:text>E3Sp2Q</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>E3Sp2</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:attribute>
        <xsl:attribute name="colspan">5</xsl:attribute>
        <!-- Verarbeite nun den Rest ab dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::text() bewirkt die Verarbeitung aller Textknoten nach dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::* bewirkt die Verarbeitung der enthaltenen Subknoten. -->
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:for-each select="bka:symbol[1]/following-sibling::text() | bka:symbol[1]/following-sibling::*">
            <xsl:apply-templates select="."/>
          </xsl:for-each>
        </xsl:element>
      </xsl:element>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:listelem" mode="erzeuge_liste_ebene4">
  <xsl:param name = "classname"/>
    <xsl:element name="tr">
      <xsl:element name="td"/>
      <xsl:element name="td"/>
      <xsl:element name="td"/>
      <xsl:element name="td">
        <xsl:attribute name="class">W22 AlignRight VAlignTop</xsl:attribute>
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:apply-templates select="bka:symbol[1]"/>
        </xsl:element>
      </xsl:element>
      <xsl:element name="td">
        <xsl:attribute name="class">
          <xsl:text>AlignJustify </xsl:text>
          <xsl:choose>
            <xsl:when test="ancestor::bka:abschnitt/@paperf[.='q']">
              <xsl:text>E4Sp2Q</xsl:text>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>E4Sp2</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:attribute>
        <xsl:attribute name="colspan">4</xsl:attribute>
        <!-- Verarbeite nun den Rest ab dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::text() bewirkt die Verarbeitung aller Textknoten nach dem Symbolknoten. -->
        <!-- symbol[1]/following-sibling::* bewirkt die Verarbeitung der enthaltenen Subknoten. -->
        <xsl:element name="p">
          <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
          <xsl:for-each select="bka:symbol[1]/following-sibling::text() | bka:symbol[1]/following-sibling::*">
            <xsl:apply-templates select="."/>
          </xsl:for-each>
        </xsl:element>
      </xsl:element>
    </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:schluss">
  <xsl:choose >
    <xsl:when test="./@typ='Abs'"><!-- Keine Einr�ckung -->
      <xsl:element name="tr">
        <xsl:element name="td">
          <xsl:attribute name="class">AlignJustify</xsl:attribute>
          <xsl:attribute name="colspan">8</xsl:attribute>
          <xsl:element name="p">
            <xsl:attribute name="class">SchlussteilAbs</xsl:attribute>
            <xsl:call-template name="checkForEmptyCell"/>
          </xsl:element>
        </xsl:element>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='Ziff'"><!-- wie Ebene 1 -->
      <xsl:element name="tr">
        <xsl:element name="td">
          <xsl:attribute name="class"><xsl:text>W38</xsl:text></xsl:attribute>
        </xsl:element>
        <xsl:element name="td">
          <xsl:attribute name="class">AlignJustify</xsl:attribute>
          <xsl:attribute name="colspan">7</xsl:attribute>
          <xsl:element name="p">
            <xsl:attribute name="class"><xsl:text>SchlussteilZiff</xsl:text></xsl:attribute>
            <xsl:call-template name="checkForEmptyCell"/>
          </xsl:element>
        </xsl:element>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='Lit'">
      <xsl:element name="tr">
        <xsl:element name="td"/>
        <xsl:element name="td">
          <xsl:attribute name="class">W15</xsl:attribute><!-- wie Ebene 2 -->
        </xsl:element>
        <xsl:element name="td">
          <xsl:attribute name="class">AlignJustify</xsl:attribute>
          <xsl:attribute name="colspan">6</xsl:attribute>
          <xsl:element name="p">
            <xsl:attribute name="class">SchlussteilLit</xsl:attribute>
            <xsl:call-template name="checkForEmptyCell"/>
          </xsl:element>
        </xsl:element>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Liste mit Betrag
 ///////////////////////////////////////////////////////////////// -->

<xsl:template match="bka:betragliste">
  <xsl:choose >
    <xsl:when test="./@typ='ziffer'">
      <xsl:apply-templates mode="erzeuge_betragliste_ebene1">
        <xsl:with-param name="classname">ZifferMitBetrag</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@typ='litera'">
      <xsl:apply-templates mode="erzeuge_betragliste_ebene2">
        <xsl:with-param name="classname">LiteraMitBetrag</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@typ='sublitera'">
      <xsl:apply-templates mode="erzeuge_betragliste_ebene3">
        <xsl:with-param name="classname">SubliteraMitBetrag</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:betraglistetgue">
  <xsl:choose >
    <xsl:when test="./@typ='ziffer'">
      <xsl:apply-templates mode="erzeuge_betragliste_ebene1">
        <xsl:with-param name="classname">ZifferMitBetragTGUE</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@typ='litera'">
      <xsl:apply-templates mode="erzeuge_betragliste_ebene2">
        <xsl:with-param name="classname">LiteraMitBetragTGUE</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:when test="./@typ='sublitera'">
      <xsl:apply-templates mode="erzeuge_betragliste_ebene3">
        <xsl:with-param name="classname">SubliteraMitBetragTGUE</xsl:with-param>
      </xsl:apply-templates>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:listelem" mode="erzeuge_betragliste_ebene1">
  <xsl:param name = "classname"/>
  <xsl:element name="tr">
    <xsl:element name="td">
      <xsl:attribute name="class">AlignRight VAlignTop</xsl:attribute>
      <xsl:element name="p">
        <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
        <xsl:apply-templates select="bka:symbol[1]"/>
      </xsl:element>
    </xsl:element>
    <xsl:element name="td">
      <xsl:attribute name="class">AlignJustify</xsl:attribute>
      <xsl:attribute name="colspan">5</xsl:attribute>
      <!-- Verarbeite nun den Rest ab dem Symbolknoten. -->
      <!-- symbol[1]/following-sibling::text() bewirkt die Verarbeitung aller Textknoten nach dem Symbolknoten. -->
      <!-- symbol[1]/following-sibling::* bewirkt die Verarbeitung der enthaltenen Subknoten. -->
      <xsl:element name="p">
        <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
        <xsl:for-each select="bka:symbol[1]/following-sibling::text() | bka:symbol[1]/following-sibling::*">
          <xsl:if test="name() = 'tab'">
            <xsl:value-of select="string('&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p class=&quot;')" disable-output-escaping="yes"/>
            <xsl:value-of select = "$classname"/><xsl:value-of select="string('&quot;&gt;')" disable-output-escaping="yes"/>
          </xsl:if>
          <xsl:if test="name() != 'tab'">
            <xsl:apply-templates select="."/>
          </xsl:if>
        </xsl:for-each>
      </xsl:element>
    </xsl:element>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:listelem" mode="erzeuge_betragliste_ebene2">
  <xsl:param name = "classname"/>
  <xsl:element name="tr">
    <xsl:element name="td"/>
    <xsl:element name="td">
      <xsl:attribute name="class">AlignRight VAlignTop</xsl:attribute>
      <xsl:element name="p">
        <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
        <xsl:apply-templates select="bka:symbol[1]"/>
      </xsl:element>
    </xsl:element>
    <xsl:element name="td">
      <xsl:attribute name="class">AlignJustify</xsl:attribute>
      <xsl:attribute name="colspan">4</xsl:attribute>
      <!-- Verarbeite nun den Rest ab dem Symbolknoten. -->
      <!-- symbol[1]/following-sibling::text() bewirkt die Verarbeitung aller Textknoten nach dem Symbolknoten. -->
      <!-- symbol[1]/following-sibling::* bewirkt die Verarbeitung der enthaltenen Subknoten. -->
      <xsl:element name="p">
        <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
        <xsl:for-each select="bka:symbol[1]/following-sibling::text() | bka:symbol[1]/following-sibling::*">
          <xsl:if test="name() = 'tab'">
            <xsl:value-of select="string('&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p class=&quot;')" disable-output-escaping="yes"/>
            <xsl:value-of select = "$classname"/><xsl:value-of select="string('&quot;&gt;')" disable-output-escaping="yes"/>
          </xsl:if>
          <xsl:if test="name() != 'tab'">
            <xsl:apply-templates select="."/>
          </xsl:if>
        </xsl:for-each>
      </xsl:element>
    </xsl:element>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:listelem" mode="erzeuge_betragliste_ebene3">
  <xsl:param name = "classname"/>
  <xsl:element name="tr">
    <xsl:element name="td"/>
    <xsl:element name="td"/>
    <xsl:element name="td">
      <xsl:attribute name="class">AlignRight VAlignTop</xsl:attribute>
      <xsl:element name="p">
        <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
        <xsl:apply-templates select="bka:symbol[1]"/>
      </xsl:element>
    </xsl:element>
    <xsl:element name="td">
      <xsl:attribute name="class">AlignJustify</xsl:attribute>
      <xsl:attribute name="colspan">3</xsl:attribute>
      <!-- Verarbeite nun den Rest ab dem Symbolknoten. -->
      <!-- symbol[1]/following-sibling::text() bewirkt die Verarbeitung aller Textknoten nach dem Symbolknoten. -->
      <!-- symbol[1]/following-sibling::* bewirkt die Verarbeitung der enthaltenen Subknoten. -->
      <xsl:element name="p">
        <xsl:attribute name="class"><xsl:value-of select = "$classname"/></xsl:attribute>
        <xsl:for-each select="bka:symbol[1]/following-sibling::text() | bka:symbol[1]/following-sibling::*">
          <xsl:if test="name() = 'tab'">
            <xsl:value-of select="string('&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p class=&quot;')" disable-output-escaping="yes"/>
            <xsl:value-of select = "$classname"/><xsl:value-of select="string('&quot;&gt;')" disable-output-escaping="yes"/>
          </xsl:if>
          <xsl:if test="name() != 'tab'">
            <xsl:apply-templates select="."/>
          </xsl:if>
        </xsl:for-each>
      </xsl:element>
    </xsl:element>
  </xsl:element>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Unterschrift
 ///////////////////////////////////////////////////////////////// -->

<xsl:template match="bka:unterschrift">
  <xsl:choose >
    <xsl:when test="./@typ='links'">
      <xsl:element name="p">
        <xsl:attribute name="class">UnterschrL</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='mitte'">
      <xsl:element name="p">
        <xsl:attribute name="class">UnterschrM</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='rechts'">
      <xsl:element name="p">
        <xsl:attribute name="class">UnterschrR</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>    
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Zeichenformatierung
 ///////////////////////////////////////////////////////////////// -->

<xsl:template match="bka:error">
  <xsl:element name="span">
    <xsl:attribute name="class">Fehler</xsl:attribute>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:gldsym">
  <xsl:element name="span">
    <xsl:attribute name="class">GldSymbol</xsl:attribute>
    <xsl:if test=".=' '"><xsl:value-of select = "." /></xsl:if><!-- MSXSL reduziert mehrere Blanks auf eines. -->
    <xsl:if test="not(.=' ')"><xsl:apply-templates/></xsl:if>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:n">
  <xsl:element name="span">
    <xsl:attribute name="class">Normal</xsl:attribute>
    <xsl:if test=".=' '"><xsl:value-of select = "." /></xsl:if><!-- MSXSL reduziert mehrere Blanks auf eines. -->
    <xsl:if test="not(.=' ')"><xsl:apply-templates/></xsl:if>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:f | bka:b">
  <xsl:element name="span">
    <xsl:attribute name="class">Fett</xsl:attribute>
    <xsl:if test=".=' '"><xsl:value-of select = "." /></xsl:if><!-- MSXSL reduziert mehrere Blanks auf eines. -->
    <xsl:if test="not(.=' ')"><xsl:apply-templates/></xsl:if>
  </xsl:element>
</xsl:template> 

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:k | bka:i">
  <xsl:element name="span">
    <xsl:attribute name="class">Kursiv</xsl:attribute>
    <xsl:if test=".=' '"><xsl:value-of select = "." /></xsl:if><!-- MSXSL reduziert mehrere Blanks auf eines. -->
    <xsl:if test="not(.=' ')"><xsl:apply-templates/></xsl:if>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:u">
  <xsl:element name="span">
    <xsl:attribute name="class">Unterstrichen</xsl:attribute>
    <xsl:if test=".=' '"><xsl:value-of select = "." /></xsl:if><!-- MSXSL reduziert mehrere Blanks auf eines. -->
    <xsl:if test="not(.=' ')"><xsl:apply-templates/></xsl:if>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:gs">
  <xsl:element name="span">
    <xsl:attribute name="class">Gesperrt</xsl:attribute>
    <xsl:if test=".=' '"><xsl:value-of select = "." /></xsl:if><!-- MSXSL reduziert mehrere Blanks auf eines. -->
    <xsl:if test="not(.=' ')"><xsl:apply-templates/></xsl:if>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:h | bka:super">
  <xsl:element name="span">
    <xsl:attribute name="class">Hoch</xsl:attribute>
    <xsl:if test=".=' '"><xsl:value-of select = "." /></xsl:if><!-- MSXSL reduziert mehrere Blanks auf eines. -->
    <xsl:if test="not(.=' ')"><xsl:apply-templates/></xsl:if>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:t | bka:sub">
  <xsl:element name="span">
    <xsl:attribute name="class">Tief</xsl:attribute>
    <xsl:if test=".=' '"><xsl:value-of select = "." /></xsl:if><!-- MSXSL reduziert mehrere Blanks auf eines. -->
    <xsl:if test="not(.=' ')"><xsl:apply-templates/></xsl:if>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:fk">
  <xsl:element name="span">
    <xsl:attribute name="class">FettundKursiv</xsl:attribute>
    <xsl:if test=".=' '"><xsl:value-of select = "." /></xsl:if><!-- MSXSL reduziert mehrere Blanks auf eines. -->
    <xsl:if test="not(.=' ')"><xsl:apply-templates/></xsl:if>
  </xsl:element>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Sonderzeichen
 ///////////////////////////////////////////////////////////////// -->

<!-- ///////////////////////////////////////////////////////////////// gesch�tztes Leerzeichen -->
<xsl:template match="bka:nbsp">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;#160;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// doppeltes Anf�hrungszeichen unten (typografisch) -->
<xsl:template match="bka:bdquo">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;#8222;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// doppeltes Anf�hrungszeichen oben, links (typografisch) -->
<xsl:template match="bka:ldquo">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;#8220;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// kurzer Gedankenstrich -->
<xsl:template match="bka:kidea">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;#8211;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// langer Gedankenstrich -->
<xsl:template match="bka:lidea">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;#8212;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// gesch�tzter Trennstrich -->
<xsl:template match="bka:gdash">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;#45;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// bedingter Trennstrich (Silbentrennzeichen), Word spezifisch -->
<xsl:template match="bka:bdash"><!-- nichts tun -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// Euro-Zeichen -->
<xsl:template match="bka:euro">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;#8364;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// <-Zeichen -->
<xsl:template match="bka:lt">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;lt;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// >-Zeichen -->
<xsl:template match="bka:gt">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;gt;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// &-Zeichen -->
<xsl:template match="bka:amp">
  <xsl:value-of disable-output-escaping="yes" select="string('&amp;amp;')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// Manueller Zeilenumbruch -->
<xsl:template match="bka:br">
  <xsl:value-of disable-output-escaping="yes" select="string('&lt;br/>')"/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:tab">
  <!-- Da weder in HTML noch in CSS2 Tabulatoren moeglich sind, wird ein Tabulator durch ein Blank ersetzt, das in span eingeschlossen ist. -->
  <xsl:element name="span">
    <xsl:attribute name="class">Standardtabulator</xsl:attribute>
    <xsl:value-of disable-output-escaping="yes" select="string('&amp;#160;')"/>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// Zeilenwechsel / Spaltenwechsel-->
<xsl:template match="bka:wechsel"><!-- nichts tun -->
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Verweise
 ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:wwwlink">
  <!-- SLXHTML 1.0.1 unterst�tzt das Hypertext Modul NICHT -->
  <xsl:text>[Verweis: </xsl:text>
    <xsl:value-of select="@url"/>
  <xsl:text>] </xsl:text>
  <xsl:apply-templates/>
  <!-- XHTML 1.1 -->
  <!--xsl:element name="a">
    <xsl:apply-templates select="./@*"/>
    <xsl:apply-templates/>
  </xsl:element-->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="@url">
  <xsl:attribute name="href"><xsl:value-of select = "." /></xsl:attribute>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////////////////
 //// Eingebettete base64-codierte Bin�rdaten
 /////////////////////////////////////////////////////////////////////////////

 Alle Bin�rdateien werden in ein Unterverzeichnis ausgelagert.
 Nach dem alten eRecht-Schema mu�te das binary-Element ein ref-Attribut besitzen,
 das den relativen Dateinamen der ausgelagerten Datei enth�lt.
 Nach dem neuen eRecht-Schema wird dieser relative Dateiname in einem
 src-Element (unter dem binary-Element) gehalten.
 Dieses Stylesheet-File unterstuetzt beide Varianten. -->

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:binary">
  <xsl:element name="img">
    <xsl:if test="./@ref">
      <xsl:if test="./@ref = ''">
        <!-- Abfragen der Art <xsl:if test="./bka:src"> funktionieren nicht.  -->
        <xsl:apply-templates select="./bka:src"/>
      </xsl:if>
      <xsl:if test="not(./@ref = '')">
        <xsl:attribute name="src"><xsl:value-of select = "./@ref" /></xsl:attribute>
      </xsl:if>
    </xsl:if>
    <xsl:if test="not(./@ref)">
      <!-- Abfragen der Art <xsl:if test="./bka:src"> funktionieren nicht.  -->
      <xsl:apply-templates select="./bka:src"/>
    </xsl:if>
    <xsl:attribute name="alt"><xsl:value-of select = "./@alt" /></xsl:attribute>
  </xsl:element>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:src">
  <xsl:attribute name="src"><xsl:value-of select = "." /></xsl:attribute>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Beschriftung zu Grafiken
 ///////////////////////////////////////////////////////////////// -->

<xsl:template match="bka:beschr">
  <xsl:choose >
    <xsl:when test="./@typ='links'">
      <xsl:element name="p">
        <xsl:attribute name="class">BeschriftungL</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='mitte'">
      <xsl:element name="p">
        <xsl:attribute name="class">BeschriftungZ</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='rechts'">
      <xsl:element name="p">
        <xsl:attribute name="class">BeschriftungR</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:attribute name="class">Beschriftung</xsl:attribute>
        <xsl:call-template name="checkForEmptyCell"/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Fu�- und Endnoten
 ///////////////////////////////////////////////////////////////// -->

<!-- Fu�zeilen sollen erst am Ende verarbeitet werden -->
<xsl:template match="bka:fnen"><!-- nichts tun -->
</xsl:template>

<xsl:template match="bka:fnen" mode="dokumentende">
  <xsl:apply-templates/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<!-- In XHTML1.1: Statt dem Attribut "name" wird jetzt "id" verwendet. -->
<xsl:template match="bka:fnzeichen">
  <xsl:choose >
    <xsl:when test="./@typ='f'">
      <!-- XHTML 1.1 L�sung -->
      <!--xsl:element name="a">
        <xsl:attribute name="href"><xsl:value-of select = "string('#FN')" /><xsl:value-of select = "." /></xsl:attribute>
        <xsl:attribute name="id"><xsl:value-of select = "string('FNREF')" /><xsl:value-of select = "." /></xsl:attribute>
        <xsl:element name="span">
          <xsl:attribute name="class">FNText</xsl:attribute>
          <xsl:value-of select = "string('[')" />
          <xsl:apply-templates/>
          <xsl:value-of select = "string(']')" />
        </xsl:element>
      </xsl:element-->
      <!-- SLXHTML 1.0.1 unterst�tzt das Hypertext Modul NICHT -->
      <xsl:element name="span">
        <xsl:attribute name="class">FNText</xsl:attribute>
        <xsl:value-of select = "string('[')" />
        <xsl:apply-templates/>
        <xsl:value-of select = "string(']')" />
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='e'">
      <!-- XHTML 1.1 L�sung -->
      <!--xsl:element name="a">
        <xsl:attribute name="href"><xsl:value-of select = "string('#EN')" /><xsl:value-of select = "." /></xsl:attribute>
        <xsl:attribute name="id"><xsl:value-of select = "string('ENREF')" /><xsl:value-of select = "." /></xsl:attribute>
        <xsl:element name="span">
          <xsl:attribute name="class">FNText</xsl:attribute>
          <xsl:value-of select = "string('[')" />
          <xsl:apply-templates/>
          <xsl:value-of select = "string(']')" />
        </xsl:element>
      </xsl:element-->
      <!-- SLXHTML 1.0.1 unterst�tzt das Hypertext Modul NICHT -->
      <xsl:element name="span">
        <xsl:attribute name="class">FNText</xsl:attribute>
        <xsl:value-of select = "string('[')" />
        <xsl:apply-templates/>
        <xsl:value-of select = "string(']')" />
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<!-- In XHTML1.1: Statt dem Attribut "name" wird jetzt "id" verwendet. -->
<xsl:template match="bka:fntext">
  <xsl:choose >
    <xsl:when test="./@typ='f'">
      <xsl:if test="./@nr = 1">
        <xsl:element name="p">
          <xsl:attribute name="class">FNLinie</xsl:attribute>
        </xsl:element>
      </xsl:if>
      <xsl:element name="p">
        <xsl:attribute name="class">FNText</xsl:attribute>
        <!-- XHTML 1.1 L�sung -->
        <!--xsl:element name="a">
          <xsl:attribute name="href"><xsl:value-of select = "string('#FNREF')" /><xsl:value-of select = "./@nr" /></xsl:attribute>
          <xsl:attribute name="id"><xsl:value-of select = "string('FN')" /><xsl:value-of select = "./@nr" /></xsl:attribute>
          <xsl:element name="span">
            <xsl:attribute name="class">FNText</xsl:attribute>
            <xsl:value-of select = "string('[')" />
            <xsl:value-of select = "./@nr" />
            <xsl:value-of select = "string(']')" />
          </xsl:element>
        </xsl:element-->
        <!-- SLXHTML 1.0.1 unterst�tzt das Hypertext Modul NICHT -->
        <xsl:element name="span">
          <xsl:attribute name="class">FNText</xsl:attribute><!-- unten kein FNZeichen! -->
          <xsl:value-of select = "string('[')" />
          <xsl:value-of select = "./@nr" />
          <xsl:value-of select = "string(']')" />
        </xsl:element>
        <xsl:value-of disable-output-escaping="yes" select="string('&amp;#160;')"/>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="./@typ='e'">
      <xsl:if test="./@nr = 1">
        <xsl:element name="p">
          <xsl:attribute name="class">FNLinie</xsl:attribute>
        </xsl:element>
      </xsl:if>
      <xsl:element name="p">
        <xsl:attribute name="class">FNText</xsl:attribute>
        <!-- XHTML 1.1 L�sung -->
        <!--xsl:element name="a">
          <xsl:attribute name="href"><xsl:value-of select = "string('#ENREF')" /><xsl:value-of select = "./@nr" /></xsl:attribute>
          <xsl:attribute name="id"><xsl:value-of select = "string('EN')" /><xsl:value-of select = "./@nr" /></xsl:attribute>
          <xsl:element name="span">
            <xsl:attribute name="class">FNText</xsl:attribute>
            <xsl:value-of select = "string('[')" />
            <xsl:value-of select = "./@nr" />
            <xsl:value-of select = "string(']')" />
          </xsl:element>
        </xsl:element-->
        <!-- SLXHTML 1.0.1 unterst�tzt das Hypertext Modul NICHT -->
        <xsl:element name="span">
          <xsl:attribute name="class">FNText</xsl:attribute><!-- unten kein FNZeichen! -->
          <xsl:value-of select = "string('[')" />
          <xsl:value-of select = "./@nr" />
          <xsl:value-of select = "string(']')" />
        </xsl:element>        
        <xsl:value-of disable-output-escaping="yes" select="string('&amp;#160;')"/>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

<!--
 /////////////////////////////////////////////////////////////////
 //// Kopf- und Fu�zeilen
 ///////////////////////////////////////////////////////////////// -->

<!-- Kopf- und Fu�zeilen sollen an bestimmten Stellen verarbeitet werden und nicht dann wenn sie im XML-String vorkommen -->
<xsl:template match="bka:kzinhalt | bka:fzinhalt"><!-- nichts tun -->
</xsl:template>

<!--
<xsl:template match="fzinhalt" mode="dokumentende">
  <xsl:choose >
    <xsl:when test="./@typ='f'">
    </xsl:when>
    <xsl:when test="./@typ='p'">
      <xsl:apply-templates/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="p">
        <xsl:element name="span">
          <xsl:attribute name="class">Fehler</xsl:attribute>
          <xsl:text>Falscher Typ: Bitte melden Sie den Fehler:</xsl:text>
        </xsl:element>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
-->

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="key('key_kzinhalt_typ', 'f')" mode="dokumentanfang">
  <!--xsl:apply-templates/--><!-- keine Ausgabe gewuenscht -->
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="key('key_fzinhalt_typ', 'f')" mode="dokumentende">
  <xsl:apply-templates/>
</xsl:template>

<!-- ///////////////////////////////////////////////////////////////// -->
<xsl:template match="bka:symbol">
  <xsl:apply-templates/>
</xsl:template>

<!-- //////////////Alle anderen Konstrukte//////////////////////////// -->
<xsl:template match="*">
  <!--xsl:element name="p">
    <xsl:element name="span">
      <xsl:attribute name="class">Fehler</xsl:attribute>
      <xsl:text>Falsches Konstrukt: Bitte melden Sie den Fehler:</xsl:text> <xsl:value-of select="name()"></xsl:value-of>
    </xsl:element>
    <xsl:apply-templates/>
  </xsl:element--> 
  <xsl:element name="{name()}">
    <xsl:for-each select = "./@*" >
      <xsl:attribute name="{name()}"><xsl:value-of select="."></xsl:value-of></xsl:attribute>
    </xsl:for-each>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

<!-- //////////// Folgende Elemente muessen ignoriert werden, da sie bereits anderweitig abgefragt werden. //////////// -->
<xsl:template match="bka:layoutdaten | bka:aw | bka:pdeinst"><!-- nichts tun -->
</xsl:template>

<!-- ////////////// Parlamentsdirektion //////////////////////////// -->
<xsl:template match="bka:pdvorlage">
  <xsl:element name="p">
    <xsl:attribute name="class"><xsl:value-of select="./bka:pdeinst[1]/@formatname"></xsl:value-of></xsl:attribute>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

</xsl:stylesheet>