<!-- Listado de Padron con XPath 1.0 -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict" xmlns:a="http://www.catastro.meh.es/" exclude-result-prefixes="a">
	<xsl:output method="html" encoding="ISO-8859-4"/>
	<xsl:decimal-format name="decimales" decimal-separator="," grouping-separator="." digit="#" infinity="0,00" NaN="0,00"/>
	<xsl:decimal-format name="enteros" grouping-separator="." decimal-separator="," digit="#" infinity="0" NaN="0"/>
	<xsl:template match="/">
		<html>
			<head>
				<style type="text/css">
					table{font: normal 9pt verdana}
					table.head{border-left-width: 1; border-rigth-width: 1; border-bottom-width: 1; border-top-width: 1; text-align: center; border-color: rgb(50,120,50)}
					tr.head{font-size: 110%;background-color: rgb(50,120,50)}
					tr#LineaCab{font-weight: 900; color: rgb(235,200,0); background-color: rgb(50,120,50); border-color: rgb(50,120,50)}
					tr#LineaParcela{font-weight: 100; font-size: 90%; color: rgb(215,215,0);background-color: rgb(50,120,50); border-color: rgb(50,120,50)}
					#SinTitulos{background-color: rgb(50,120,50)}
										
					tr.cuerpo{font-size: 80%; vertical-align: top}
					tr#Parcela{height: 4.5em}
					td#DatosParcela{background-color: rgb(235,200,0); font-weight: bold; text-align: left}
					td#DatosValores{background-color: rgb(235,200,0); font-weight: bold; width: 120px}
					td#DatosParcelaBICE{background-color: rgb(255,240,150); font-weight: bold; text-align: left}
					td#DatosValoresBICE{background-color: rgb(255,240,150); font-weight: bold; width: 120px}
				</style>
				<title>Listado del Padron (Bienes Inmuebles, Unidades Singularizadas, Titularidad)</title>
			</head>
			<body>
				<!--xsl:for-each select="fn:distinct-values(.//a:bij/a:bi//a:nm)"-->
				<table class="head" align="center">
					<!-- Titulos de las columnas de la tabla -->
					<tr class="head" id="LineaCab" style="font-size: 130%; height: 40px">
						<th colspan="16">Resumen del Fichero de Padron</th>
					</tr>
					<tr class="head" id="LineaCab">
						<th colspan="5">Referencia Catastral</th>
						<th colspan="6">Domicilio Tributario / Titularidad</th>
						<th colspan="5">Valores</th>
					</tr>
					<tr class="head" id="LineaParcela">
						<th id="SinTitulos" colspan="5"/>
						<th colspan="6"/>
						<th>Suelo  </th>
						<th>Construccion  </th>
						<th>Catastral  </th>
						<th>Base Liquidable</th>
						<xsl:if test=".//a:udsa/a:lbices">
							<th>Base Imponible</th>
						</xsl:if>
					</tr>
					<tr class="head">
						<th id="SinTitulos" colspan="16" style="height: 20px"/>
					</tr>
					<!-- Cuerpo de la tabla del padron a tratar-->
					<!-- Muestra los valores de la lista de bienes inmuebles -->
					<xsl:if test=".//a:udsa/a:lbics/a:bij//a:bi//a:nm">
						<tr class="head" id="LineaParcela">
							<th colspan="16" style="height: 20px">
								<xsl:value-of select=".//a:udsa/a:lbics/a:bij//a:bi//a:nm[position()=1]"/>
							</th>
						</tr>
					</xsl:if>
					<xsl:call-template name="valores_bi"/>
					<!-- Muestra los valores de la lista de bienes inmuebles de caracteristicas especiales -->
					<!--tr class="head" id="LineaParcela">
						<xsl:if test=".//a:udsa/a:lbices//a:lbics/a:bij/a:inft">
							<th colspan="16" style="height: 20px">
								<xsl:value-of select="concat('MUNICIPIO TRIBUTARIO: ', .//a:udsa/a:lbices//a:lbics/a:bij[position()=1]/a:inft//a:cd, ' ', .//a:udsa/a:lbices//a:lbics/a:bij[position()=1]/a:inft//a:cmc)"/>
							</th>
						</xsl:if>
					</tr-->
					<xsl:call-template name="valores_bice"/>
				</table>
			</body>
		</html>
	</xsl:template>
	<!-- Plantilla: Filas para datos de Bienes Inmuebles del Padron -->
	<xsl:template name="valores_bi">
		<xsl:variable name="pathbi" select=".//a:udsa/a:lbics"/>
		<xsl:variable name="seqmunis" select="$pathbi/a:bij/a:bi//a:nm"/>
		<!--no existe en bice/bi-->
		<xsl:for-each select="$pathbi/a:bij">
			<!--xsl:sort select=".//a:bi//a:nm"/-->
			<xsl:variable name="poseq1" select="position()"/>
			<xsl:variable name="poseq_1" select="$poseq1 - 1"/>
			<xsl:variable name="munix1" select="$seqmunis[$poseq1]"/>
			<xsl:variable name="munix_1" select="$seqmunis[$poseq_1]"/>
			<xsl:if test="$munix1 != $munix_1">
				<tr class="head" id="LineaParcela">
					<th colspan="16" style="height: 20px">
						<xsl:value-of select="$munix1"/>
					</th>
				</tr>
			</xsl:if>
			<!--xsl:if test=".//a:bi//a:nm) = 1">
				<tr class="head"  id="LineaParcela">
					<th colspan="15" style="height: 20px"><xsl:value-of select="$muni"/></th>
				</tr>
			</xsl:if-->
			<!--xsl:variable name="seqmunis2" select="$seqmunis"/>
			<xsl:variable name="seqmunis" select="fn:remove($seqmunis2, fn:index-of($seqmunis2,$muni))"/-->
			<!-- Datos de las columnas de la tabla. Origen: fichero xml del Padron a cargar -->
			<!-- Datos de cada Bien Inmueble del Padron -->
			<!--xsl:for-each select="//a:bij"-->
			<tr class="cuerpo" id="Parcela">
				<!-- Referencia Catastral  -->
				<td id="DatosParcela" colspan="5">
					<xsl:call-template name="id_parcela"/>
				</td>
				<!-- Domicilio Tributario: direccion urbana y/o direccion rustica -->
				<td id="DatosParcela" colspan="6">
					<xsl:call-template name="domicilio"/>
				</td>
				<!-- Valores catastrales y base liquidable (10 enteros y 2 decimales) -->
				<xsl:call-template name="valores_cat"/>
				<td id="DatosValores" align="char">
					<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:bl,',','.')), '#.###.###.##0,00', 'decimales')"/>
				</td>
				<!--td id="DatosValores" align="center">
					<xsl:text>-</xsl:text>
				</td-->
			</tr>
			<!-- Datos de los Titulares y de su derecho sobre la propiedad -->
			<xsl:for-each select="./a:lsf/a:sft">
				<tr class="cuerpo">
					<td colspan="5"/>
					<!-- Identificacion del Titular -->
					<td align="left">
						<xsl:value-of select=".//a:idps/a:nif"/>
					</td>
					<td align="left">
						<xsl:value-of select=".//a:idps/a:nom"/>
					</td>
					<td colspan="2"/>
					<!-- Derecho sobre la propiedad -->
					<td colspan="2">
						<xsl:call-template name="titular_derecho"/>
					</td>
					<td colspan="5"/>
				</tr>
			</xsl:for-each>
			<!--/xsl:for-each-->
		</xsl:for-each>
	</xsl:template>
	<!-- Plantilla: Filas para datos de Bienes Inmuebles de Caracteristicas Especiales -->
	<xsl:template name="valores_bice">
		<xsl:variable name="pathbi" select=".//a:udsa/a:lbices"/>
		<!--xsl:variable name="seqmunis" select="concat($pathbi/a:bice/a:inft//a:cd, $pathbi/a:bice/a:inft//a:cmc)"/-->
		<xsl:variable name="seqdeleg" select="$pathbi/a:bice/a:inft//a:cd"/>
		<xsl:variable name="seqmuni" select="$pathbi/a:bice/a:inft//a:cmc"/>
		
		<xsl:for-each select="$pathbi/a:bice">
			<xsl:variable name="poseq1" select="position()"/>
			<xsl:variable name="poseq_1" select="$poseq1 - 1"/>
			<xsl:variable name="munix1" select="concat('MUNICIPIO TRIBUTARIO: ', $seqdeleg[$poseq1], ' ', $seqmuni[$poseq1])"/>
			<xsl:variable name="munix_1" select="concat('MUNICIPIO TRIBUTARIO: ', $seqdeleg[$poseq_1], ' ', $seqmuni[$poseq_1])"/>
			
			<xsl:if test="$munix1 != $munix_1">
				<tr class="head"  id="LineaParcela">
					<th colspan="16" style="height: 20px"><xsl:value-of select="$munix1"/></th>
				</tr>
			</xsl:if>
			
			<tr class="cuerpo" id="Parcela">
				<!-- Referencia Catastral  -->
				<td id="DatosParcela" colspan="5">
					<xsl:call-template name="id_parcela"/>
					<xsl:text>  BICE</xsl:text>
				</td>
				<td id="DatosParcela" colspan="6" width="320px">
					<xsl:value-of select="a:des"/>
				</td>
				<!-- Valores catastrales y base imponible (10 enteros y 2 decimales) -->
				<xsl:call-template name="valores_cat"/>
				<td id="DatosValores" align="char">
					<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:bl,',','.')), '#.###.###.##0,00', 'decimales')"/>
				</td>
				<td id="DatosValores" align="char">
					<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:bimp,',','.')), '#.###.###.##0,00', 'decimales')"/>
				</td>
			</tr>
			<!-- Datos de la lista de Unidades Singularizadas pertenecientes al BICE -->
			<xsl:call-template name="lista_bics"/>
		</xsl:for-each>
	</xsl:template>
	<!-- Plantilla: Muestra la lista de Unidades Singularizadas del BICE actual -->
	<xsl:template name="lista_bics">
		<xsl:variable name="pathbi" select="./a:lbics"/>
		
		<xsl:for-each select="$pathbi/a:bij">
			<tr class="cuerpo" id="Parcela">
				<!-- Referencia Catastral  -->
				<td id="DatosParcelaBICE" colspan="5">
					<xsl:call-template name="id_parcela"/>
				</td>
				<!-- Domicilio Tributario: direccion urbana y/o direccion rustica -->
				<td id="DatosParcelaBICE" colspan="6">
					<xsl:call-template name="domicilio"/>
				</td>
				<!-- Valores catastrales y base imponible (10 enteros y 2 decimales) -->
				<!--20/05/2006 -> Si hay base liquidable-->
				<xsl:call-template name="valores_cat"/>
				<td id="DatosValoresBICE" align="center">
					<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:bl,',','.')), '#.###.###.##0,00', 'decimales')"/>
				</td>
				<td id="DatosValoresBICE" align="char">
					<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:bimp,',','.')), '#.###.###.##0,00', 'decimales')"/>
				</td>
			</tr>
			<!-- Datos de los Titulares y de su derecho sobre la propiedad -->
			<xsl:for-each select="./a:lsf/a:sft">
				<tr class="cuerpo">
					<td colspan="5"/>
					<!-- Identificacion del Titular -->
					<td align="left">
						<xsl:value-of select=".//a:idps/a:nif"/>
					</td>
					<td align="left">
						<xsl:value-of select=".//a:idps/a:nom"/>
					</td>
					<td colspan="2"/>
					<!-- Derecho sobre la propiedad -->
					<td colspan="2">
						<xsl:call-template name="titular_derecho"/>
					</td>
					<td colspan="5"/>
				</tr>
			</xsl:for-each>
		</xsl:for-each>
	</xsl:template>
	<!-- Plantilla: Valores Referencia Catastral  -->
	<xsl:template name="id_parcela">
		<xsl:value-of select="./a:bi//a:rc/a:pc1"/>
		<xsl:value-of select="./a:bi//a:rc/a:pc2"/>
		<xsl:value-of select="./a:bi//a:rc/a:car"/>
		<xsl:value-of select="./a:bi//a:rc/a:cc1"/>
		<xsl:value-of select="./a:bi//a:rc/a:cc2"/>
	</xsl:template>
	<!-- Plantilla: Valores Domicilio Tributario (direccion urbana y/o direccion rustica) -->
	<xsl:template name="domicilio">
		<!--xsl:value-of select="$municipio"/>
		<br/-->
		<xsl:for-each select="./a:bi/a:dt/a:locs/a:lous">
			<xsl:for-each select="./a:lourb">
				<xsl:value-of select=".//a:tv"/>
				<xsl:text>/</xsl:text>
				<xsl:value-of select=".//a:nv"/>
				<xsl:text>   </xsl:text>
				<xsl:value-of select="format-number(number(.//a:pnp), '###0', 'enteros')"/>
				<xsl:text>    Bl: </xsl:text>
				<xsl:value-of select=".//a:bq"/>
				<xsl:text>/ Es. </xsl:text>
				<xsl:value-of select=".//a:es"/>
				<xsl:text>/ Pl. </xsl:text>
				<xsl:value-of select=".//a:pt"/>
				<xsl:text>/ Pt. </xsl:text>
				<xsl:value-of select=".//a:pu"/>
				<br/>
				<xsl:value-of select=".//a:td"/>
			</xsl:for-each>
			<br/>
			<br/>
			<xsl:for-each select="./a:lorus">
				<xsl:text>Paraje:</xsl:text>
				<xsl:value-of select=".//a:npa"/>
				<xsl:text>   Polígono:</xsl:text>
				<xsl:value-of select=".//a:cpo"/>
				<xsl:text>   Parcela:</xsl:text>
				<xsl:value-of select=".//a:cpa"/>
			</xsl:for-each>
		</xsl:for-each>
		<!--Para conocer los datos del Procesador XSLT usado-->
		<!--p>vendor: <xsl:value-of select="system-property('xsl:vendor')"/></p>
			<p>product: <xsl:value-of select="system-property('xsl:product-name')"/></p>
			<p>ver: <xsl:value-of select="system-property('xsl:product-version')"/></p>
			<p>vendor-url: <xsl:value-of select="system-property('xsl:vendor-url')"/></p-->
		<xsl:for-each select="./a:bi/a:dt/a:locs/a:lors">
			<xsl:for-each select="./a:lourb">
				<xsl:value-of select=".//a:tv"/>
				<xsl:text>/</xsl:text>
				<xsl:value-of select=".//a:nv"/>
				<xsl:text> </xsl:text>
				<xsl:value-of select="format-number(number(.//a:pnp), '###0', 'enteros')"/>
				<xsl:text>    Bl: </xsl:text>
				<xsl:value-of select=".//a:bq"/>
				<xsl:text>/ Es. </xsl:text>
				<xsl:value-of select=".//a:es"/>
				<xsl:text>/ Pl. </xsl:text>
				<xsl:value-of select=".//a:pt"/>
				<xsl:text>/ Pt. </xsl:text>
				<xsl:value-of select=".//a:pu"/>
				<br/>
				<xsl:value-of select=".//a:td"/>
			</xsl:for-each>
			<br/>
			<br/>
			<xsl:for-each select="./a:lorus">
				<xsl:text>Paraje:</xsl:text>
				<xsl:value-of select=".//a:npa"/>
				<xsl:text>   Polígono:</xsl:text>
				<xsl:value-of select=".//a:cpo"/>
				<xsl:text>   Parcela:</xsl:text>
				<xsl:value-of select=".//a:cpa"/>
			</xsl:for-each>
		</xsl:for-each>
	</xsl:template>
	<!-- Plantilla: Valores Catastrales (suelo, construccion, catastral) -->
	<xsl:template name="valores_cat">
		<xsl:variable name="pathnodo" select="concat(name(parent::node()/parent::node()), '/', name(parent::node()))"/>
		<xsl:if test="$pathnodo='udsa/lbics' or $pathnodo='udsa/lbices'">
			<td id="DatosValores" align="char">
				<!--xsl:if test="string-length(./a:bi/a:debi/a:vcs) = 0">0,00</xsl:if>
				<xsl:if test="string-length(./a:bi/a:debi/a:vcs) > 0"-->
				<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:vcs,',','.')), '#.###.###.##0,00', 'decimales')"/>
				<!--/xsl:if-->
			</td>
			<td id="DatosValores" align="char">
				<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:vcc,',','.')), '#.###.###.##0,00', 'decimales')"/>
			</td>
			<td id="DatosValores" align="char">
				<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:vcat,',','.')), '#.###.###.##0,00', 'decimales')"/>
			</td>
		</xsl:if>
		<xsl:if test="$pathnodo='bice/lbics'">
			<td id="DatosValoresBICE" align="char">
				<!--xsl:if test="string-length(./a:bi/a:debi/a:vcs) = 0">0,00</xsl:if>
				<xsl:if test="string-length(./a:bi/a:debi/a:vcs) > 0"-->
				<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:vcs,',','.')), '#.###.###.##0,00', 'decimales')"/>
				<!--/xsl:if-->
			</td>
			<td id="DatosValoresBICE" align="char">
				<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:vcc,',','.')), '#.###.###.##0,00', 'decimales')"/>
			</td>
			<td id="DatosValoresBICE" align="char">
				<xsl:value-of select="format-number(number(translate(./a:bi/a:debi/a:vcat,',','.')), '#.###.###.##0,00', 'decimales')"/>
			</td>
		</xsl:if>
	</xsl:template>
	<!-- Plantilla: Datos del Derecho sobre la propiedad de los Titulares -->
	<xsl:template name="titular_derecho">
		<xsl:value-of select="format-number(number(translate(.//a:der/a:pct, ',', '.')), '##0,00', 'decimales')"/>% 
		<xsl:choose>
			<xsl:when test=".//a:der/a:cdr = 'CA'">CONCESION ADMVA</xsl:when>
			<xsl:when test=".//a:der/a:cdr = 'DS'">SUPERFICIE</xsl:when>
			<xsl:when test=".//a:der/a:cdr = 'US'">USUFRUCTO</xsl:when>
			<xsl:when test=".//a:der/a:cdr = 'PR'">PROPIEDAD</xsl:when>
			<xsl:when test=".//a:der/a:cdr = 'NP'">NUDA PROPIEDAD</xsl:when>
			<xsl:when test=".//a:der/a:cdr = 'DF'">DISFRUTADOR</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select=".//a:der/a:cdr"/>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
</xsl:stylesheet>

