<?xml version="1.0" ?>

<!--Externe Ressourcen, die referenziert werden -->

<xsl:stylesheet version="1.0" 
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
	xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
	xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography">

	<!--### Abschnitt 0: Grundlegende Einstellungen zur Style-Datei.###-->

	<!--Ausgabe als HTML -->
	<xsl:output method="html" encoding ="us-ascii"/>

	<!--Das Wurzel-Element weitergeben -->

	<xsl:template match="/">
		<xsl:apply-templates select="*"/>
	</xsl:template>

	<!-- Hier kann eine Versionsnummer gesetzt werden (Optional)-->
	<xsl:template match="b:version">
		<xsl:text>2008.11.22</xsl:text>
	</xsl:template>

	<!--Hier wird der Name festgelegt, der in Word 2007 erscheinen soll -->
	<xsl:template match="b:StyleName">
		<xsl:text>Style Thomas Becker</xsl:text>
	</xsl:template>

	<!--### Abschnitt 1: Hier wird festgelegt, wie das Formular aussehen soll,
    wenn eine neue Quelle angelegt wird (vorausgesetzt, dass die Option
    "Alle Literaturverzeichnisfelder anzeigen" aktiviert ist.) ###-->

	<xsl:template match = "b:GetImportantFields">
		<b:ImportantFields>
			<xsl:choose>

				<!--für Bücher-->
				<xsl:when test="b:SourceType='Book'">
					<b:ImportantField>
						<xsl:text>b:Author/b:Author/b:NameList</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:Title</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:Year</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:Edition</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:Pages</xsl:text>
					</b:ImportantField>
				</xsl:when>

				<!--für "Verschiedenes"-->
				<xsl:when test="b:SourceType='Misc'">
					<b:ImportantField>
						<xsl:text>b:Author/b:Author/b:NameList</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:Title</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:PublicationTitle</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:Year</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:City</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:Publisher</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:Volume</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:Issue</xsl:text>
					</b:ImportantField>
					<b:ImportantField>
						<xsl:text>b:StandardNumber</xsl:text>
					</b:ImportantField>
				</xsl:when>

			</xsl:choose>
		</b:ImportantFields>
	</xsl:template>


	<!--### Abschnitt 2: Hier wird festgelegt, wie die einzelnen Quellen im Literaturverzeichnis
    ausgegeben werden sollen. Hier sind noch nicht alle Arten von Quellen eingetragen.
    Ggf. müssen die entsprechenden Quellenarten noch hinzugefügt werden.###-->

	<!--So werden Bücher und Verschiedenes ausgegeben -->
	<!--Beispiel: [Tag01] Nachname, Vorname; Titel; (2008) Zweite Ausgabe; 155-->
	<xsl:template match = "b:Source[b:SourceType = 'Book'] | b:Source[b:SourceType = '£Misc']">
		<p style="font-family: Arial, Helvetica, sans-serif; font-size: 11pt;">
			<b>
				<xsl:text>[</xsl:text>
			<xsl:value-of select = "b:Tag"/>
			<xsl:text>] </xsl:text>
			</b>

			<!--Autorenliste-->
			<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:Last"/>
			<xsl:text>, </xsl:text>
			<xsl:value-of select="b:Author/b:Author/b:NameList/b:Person/b:First"/>
			<xsl:text>; </xsl:text>

			<!--Titel-->
			<i>
				<xsl:value-of select = "b:Title"/>
			</i>
			<xsl:text>; </xsl:text>


			<!--Jahr-->
			<xsl:text> (</xsl:text>
			<b>
				<xsl:value-of select = "b:Year"/>
			</b>
			<xsl:text>)</xsl:text>

			<!--Ausgabe-->
			<xsl:text> </xsl:text>
			<xsl:value-of select = "b:Edition"/>
			<xsl:text>; </xsl:text>
			
			<!--Seiten-->
			<xsl:value-of select = "b:Pages"/>
			<xsl:text>.</xsl:text>

		</p>
	</xsl:template>


	<!--### Abschnitt 3: Hier wird festgelegt, wie das gesamte Literaturverzeichnis ausgegeben wird.###-->

	<xsl:template match = "b:Bibliography">
		<html xmlns = "http://www.w3.org/TR/REC-html40">
			<body>
				<!--Zuerst kommen B�cher, Berichte und Elektronische Quellen-->
				<xsl:apply-templates select = "b:Source[b:SourceType = 'Book'] | b:Source[b:SourceType = 'Report'] | b:Source[b:SourceType = 'ElectronicSource']">
					<xsl:sort select="b:Tag" order="ascending"/>
				</xsl:apply-templates>
				<br/>
			</body>
		</html>
	</xsl:template>


	<!--### Abschnitt 4: Hier wird festgelegt, wie einzelne Zitate ausgegeben werden.###-->

	<xsl:template match = "b:Citation/b:Source">
		<html xmlns = "http://www.w3.org/TR/REC-html40">
			<body>
				<!--Zu erst kommt das Tag, Bsp: [VanV]-->
				<span style="font-weight:bold">
					<xsl:text>[</xsl:text>
					<xsl:value-of select = "b:Tag"/>
					<xsl:text>]</xsl:text>
				</span>
				<xsl:if test="../b:Pages != ''">
					<xsl:text>, S. </xsl:text>
					<xsl:value-of select = "../b:Pages"/>
				</xsl:if>
			</body>
		</html>
	</xsl:template>

	<!--### Abschnitt 5: Hier wird festgelegt, wie die verschieden langen Autoren- bzw- Interviewpartnerlisten ausgegeben werden.###-->

	<!-- Vollständige Interviewpartnerliste -->
	<xsl:template match="b:Interviewee" mode="IntervieweeNamelistFull">
		<xsl:for-each select="b:NameList/b:Person">
			<xsl:apply-templates select="."/>
			<xsl:if test="position() != last()">
				<xsl:text>, </xsl:text>
			</xsl:if>
		</xsl:for-each>
		<xsl:value-of select="b:Corporate"/>
	</xsl:template>

	<!-- Vollständige Autorenliste -->
	<xsl:template match="b:Author" mode="AuthorNamelistFull">
		<xsl:for-each select="b:NameList/b:Person">
			<xsl:apply-templates select="."/>
			<xsl:if test="position() != last()">
				<xsl:text>, </xsl:text>
			</xsl:if>
		</xsl:for-each>
		<xsl:value-of select="b:Corporate"/>
	</xsl:template>

	<!-- Kurze Autorenliste (wenn mehr als 3 Autoren vorhanden sind, dann wird "et al." hinzugefügt)-->
	<xsl:template match="b:Author" mode="AuthorNamelistShort">
		<xsl:for-each select="b:NameList/b:Person">
			<xsl:choose>
				<xsl:when test="position() = 3">
					<xsl:choose>
						<xsl:when test="last() > 3">
							<xsl:text>et al.</xsl:text>
						</xsl:when>
						<xsl:otherwise>
							<xsl:apply-templates select="."/>
						</xsl:otherwise>
					</xsl:choose>
				</xsl:when>
				<xsl:when test="position() > 3">
				</xsl:when>
				<xsl:otherwise>
					<xsl:apply-templates select="."/>
					<xsl:if test="position() != last()">
						<xsl:text>, </xsl:text>
					</xsl:if>
				</xsl:otherwise>
			</xsl:choose>
		</xsl:for-each>
		<xsl:value-of select="b:Corporate"/>
	</xsl:template>

	<!-- Sehr kurze Autorenliste(wenn mehr als 1 Autor vorhanden ist, dann wird "et al." hinzugefügt -->
	<xsl:template match="b:Author" mode="AuthorNamelistVeryShort">
		<xsl:for-each select="b:NameList/b:Person">
			<xsl:choose>
				<!--Wenn die Liste mehr als einen Autor enthält-->
				<xsl:when test="last() > 1">
					<xsl:choose>
						<!--Wenn die Position = 1 ist, wird der Autor geschrieben-->
						<xsl:when test="position() = 1">
							<xsl:apply-templates select="."/>
						</xsl:when>
						<!--Wenn die Position = 2 ist, wird " et al." geschrieben-->
						<xsl:when test="position() = 2">
							<xsl:text> et al.</xsl:text>
						</xsl:when>
						<!--Sonst passiert nichts!-->
					</xsl:choose>
				</xsl:when>
				<!--Sonst wird einfach nur der Autor geschrieben-->
				<xsl:otherwise>
					<xsl:apply-templates select="."/>
				</xsl:otherwise>
			</xsl:choose>
		</xsl:for-each>
		<xsl:value-of select="b:Corporate"/>
	</xsl:template>

	<!--### Abschnitt 6: Hier wird festgelegt, wie der Name einer Einzelnen Person aufgebaut ist.###-->
	<!-- Beispiel: "Vorname Vorname2 Nachname" -->
	<xsl:template match="b:Person">
		<xsl:if test="b:First != ''">
			<xsl:value-of select = "b:First"/>
			<xsl:text> </xsl:text>
		</xsl:if>
		<xsl:if test="b:Middle != ''">
			<xsl:value-of select = "b:Middle"/>
			<xsl:text> </xsl:text>
		</xsl:if>
		<xsl:if test="b:Last != ''">
			<xsl:value-of select = "b:Last"/>
		</xsl:if>
	</xsl:template>

	<xsl:template match = "text()"/>
</xsl:stylesheet>
