<?xml version="1.0" encoding="UTF-8"?>
<!--

Stylesheet for narrativeBlock elements
Transforms urn namespace html elements into usual html
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:urn="urn:hl7-org:v3">
	<!--

	template for free text blocks
	-->
	<xsl:template match="urn:text" mode="text">
		<span class="text_text">
			<xsl:apply-templates select="node()" mode="text"/>
		</span>
	</xsl:template>
	<!--

	Template for title element
	-->
	<xsl:template match="urn:title" mode="text">
		<!--no content -->
	</xsl:template>
	<!--

	Template for br element
	-->
	<xsl:template match="urn:br" mode="text">
		<br/>
	</xsl:template>
	<!--

	Template for caption element
	-->
	<xsl:template match="urn:caption" mode="text">
		<span class="text_caption">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
			<br/>
		</span>
	</xsl:template>
	<!--

	Template for col element
	-->
	<xsl:template match="urn:col" mode="text">
		<col>
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@align">
				<xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@valign">
				<xsl:attribute name="valign"><xsl:value-of select="@valign"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@span">
				<xsl:attribute name="span"><xsl:value-of select="@span"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@width">
				<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
			</xsl:if>
		</col>
	</xsl:template>
	<!--

	Template for colGroup element
	-->
	<xsl:template match="urn:colGroup" mode="text">
		<colgroup>
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@align">
				<xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@valign">
				<xsl:attribute name="valign"><xsl:value-of select="@valign"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@span">
				<xsl:attribute name="span"><xsl:value-of select="@span"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@width">
				<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</colgroup>
	</xsl:template>
	<!--

	Template for content element
	-->
	<xsl:template match="urn:content" mode="text">
		<span class="text_content">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</span>
	</xsl:template>
	<!--

	Template for TitleContent element
	-->
	<xsl:template match="urn:titleContent" mode="text">
		<!-- no content -->
	</xsl:template>
	<!--

	Template for footnote element
	-->
	<xsl:template match="urn:footnote" mode="text">
		<span class="text_footnote">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</span>
	</xsl:template>
	<!--

	Template for titleFootnote element
	-->
	<xsl:template match="urn:titleFootnote" mode="text">
		<!-- no content -->
	</xsl:template>
	<!--

	Template for footnoteRef element
	-->
	<xsl:template match="urn:footnoteRef" mode="text">
		<!-- no content-->
	</xsl:template>
	<!--

	Template for item element
	-->
	<xsl:template match="urn:item" mode="text">
		<li class="text_li">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</li>
	</xsl:template>
	<!--

	Template for linkHtml element
	-->
	<xsl:template match="urn:linkHtml" mode="text">
		<a class="text_a">
			<xsl:if test="@name">
				<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@href">
				<xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:value-of select="@title"/>
			<xsl:apply-templates select="node()" mode="text"/>
		</a>
	</xsl:template>
	<!--

	Template for list element
	-->
	<xsl:template match="urn:list" mode="text">
		<xsl:if test="@id">
			<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
		</xsl:if>
		<xsl:if test="urn:caption">
			<xsl:apply-templates select="urn:caption"/>
		</xsl:if>
		<xsl:variable name="listElementName">
			<xsl:choose>
				<xsl:when test="@listType='ordered'">ol</xsl:when>
				<xsl:otherwise>ul</xsl:otherwise>
			</xsl:choose>
		</xsl:variable>
		<xsl:element name="{$listElementName}">
			<xsl:apply-templates select="node()" mode="text"/>
		</xsl:element>
	</xsl:template>
	<!--

	Template for paragraph element
	-->
	<xsl:template match="urn:paragraph" mode="text">
		<p class="text_p">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</p>
	</xsl:template>
	<!--

	Template for renderMultimedia element
	-->
	<xsl:template match="urn:renderMultimedia" mode="text">
		<!-- no content-->
	</xsl:template>
	<!--

	Template for sub element
	-->
	<xsl:template match="urn:sub" mode="text">
		<span class="text_sub">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:value-of select="text()"/>
		</span>
	</xsl:template>
	<!--

	Template for sup element
	-->
	<xsl:template match="urn:sup" mode="text">
		<span class="text_sup">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:value-of select="text()"/>
		</span>
	</xsl:template>
	<!--

	Template for table element
	-->
	<xsl:template match="urn:table" mode="text">
		<xsl:if test="urn:caption">
			<xsl:apply-templates select="urn:caption"/>
		</xsl:if>
		<table class="text_table">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@width">
				<xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="lang"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@summary">
				<xsl:attribute name="summary"><xsl:value-of select="@summary"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@border">
				<xsl:attribute name="border"><xsl:value-of select="@border"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@frame">
				<xsl:attribute name="frame"><xsl:value-of select="@frame"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@rules">
				<xsl:attribute name="rules"><xsl:value-of select="@rules"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@cellpadding">
				<xsl:attribute name="cellpadding"><xsl:value-of select="@cellpadding"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@cellspacing">
				<xsl:attribute name="cellspacing"><xsl:value-of select="@cellspacing"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="urn:thead" mode="text"/>
			<xsl:apply-templates select="urn:tbody" mode="text"/>
			<xsl:apply-templates select="urn:tfoot" mode="text"/>
		</table>
	</xsl:template>
	<!--

	Template for tbody element
	-->
	<xsl:template match="urn:tbody" mode="text">
		<tbody class="text_tbody">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@align">
				<xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@valign">
				<xsl:attribute name="valign"><xsl:value-of select="@valign"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</tbody>
	</xsl:template>
	<!--

	Template for td element
	-->
	<xsl:template match="urn:td" mode="text">
		<td class="text_td">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@align">
				<xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@valign">
				<xsl:attribute name="valign"><xsl:value-of select="@valign"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@abbr">
				<xsl:attribute name="abbr"><xsl:value-of select="@abbr"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@axis">
				<xsl:attribute name="axis"><xsl:value-of select="@axis"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@headers">
				<xsl:attribute name="headers"><xsl:value-of select="@headers"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@scope">
				<xsl:attribute name="scope"><xsl:value-of select="@scope"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@rowspan">
				<xsl:attribute name="rowspan"><xsl:value-of select="@rowspan"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@colspan">
				<xsl:attribute name="colspan"><xsl:value-of select="@colspan"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</td>
	</xsl:template>
	<!--

	Template for tfoot element
	-->
	<xsl:template match="urn:tfoot" mode="text">
		<tfoot class="text_tfoot">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@align">
				<xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@valign">
				<xsl:attribute name="valign"><xsl:value-of select="@valign"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</tfoot>
	</xsl:template>
	<!--

	Template for th element
	-->
	<xsl:template match="urn:th" mode="text">
		<th class="text_th">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@align">
				<xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@valign">
				<xsl:attribute name="valign"><xsl:value-of select="@valign"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@abbr">
				<xsl:attribute name="abbr"><xsl:value-of select="@abbr"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@axis">
				<xsl:attribute name="axis"><xsl:value-of select="@axis"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@headers">
				<xsl:attribute name="headers"><xsl:value-of select="@headers"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@scope">
				<xsl:attribute name="scope"><xsl:value-of select="@scope"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@rowspan">
				<xsl:attribute name="rowspan"><xsl:value-of select="@rowspan"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@colspan">
				<xsl:attribute name="colspan"><xsl:value-of select="@colspan"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</th>
	</xsl:template>
	<!--

	Template for thead element
	-->
	<xsl:template match="urn:thead" mode="text">
		<thead class="text_thead">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@align">
				<xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@valign">
				<xsl:attribute name="valign"><xsl:value-of select="@valign"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</thead>
	</xsl:template>
	<!--

	Template for tr element
	-->
	<xsl:template match="urn:tr" mode="text">
		<tr class="text_tr">
			<xsl:if test="@id">
				<xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@align">
				<xsl:attribute name="align"><xsl:value-of select="@align"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@valign">
				<xsl:attribute name="valign"><xsl:value-of select="@valign"/></xsl:attribute>
			</xsl:if>
			<xsl:if test="@language">
				<xsl:attribute name="language"><xsl:value-of select="@language"/></xsl:attribute>
			</xsl:if>
			<xsl:apply-templates select="node()" mode="text"/>
		</tr>
	</xsl:template>
</xsl:stylesheet>

