<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================
*  $Id: DublinCore.xsl,v 1.6 2005/05/12 14:26:08 nzawa Exp nzawa $
*
*  Copyright (c) 2005 Nzawa
*
*  Usage of the works is permitted provided that this instrument
*  is retained with the works, so that any entity that uses the works
*  is notified of this instrument.
*
*  DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY. 
*
*  [2004, Fair License: rhid.com/fair]
 ====================================================================== -->
<xsl:stylesheet
	version="1.0"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:dcterms="http://purl.org/dc/terms/"
	exclude-result-prefixes="rdf dc dcterms">


<xsl:template mode="ext_head" match="dc:*[@rdf:resource]|dcterms:*[@rdf:resource]">
	<xsl:element name="link">
		<xsl:attribute name="rel">
			<xsl:choose>
				<xsl:when test="local-name(.) = 'tableOfContents'">
					<xsl:text>contents</xsl:text>
				</xsl:when>
				<xsl:when test="local-name(.) = 'rights'">
					<xsl:text>copyright</xsl:text>
				</xsl:when>
				<xsl:otherwise>
					<xsl:value-of select="local-name(.)"/>
				</xsl:otherwise>
			</xsl:choose>
		</xsl:attribute>
		<xsl:attribute name="href">
			<xsl:value-of select="@rdf:resource"/>
		</xsl:attribute>
		<xsl:if test="@dc:title">
			<xsl:attribute name="title">
				<xsl:value-of select="@dc:title"/>
			</xsl:attribute>
		</xsl:if>
	</xsl:element>
</xsl:template>


<xsl:template mode="ext_metadata" match="dc:*|dcterms:*">
	<dt><xsl:call-template name="getLabelByDublinCore"/></dt>
	<dd><xsl:call-template name="getValueByDublinCore"/></dd>
</xsl:template>


<xsl:template mode="ext_headline" match="dc:*|dcterms:*">
	<xsl:if test="text() or @*">
		<dd>
			<xsl:call-template name="getLabelByDublinCore"/>
			<xsl:text>： </xsl:text>
			<xsl:call-template name="getValueByDublinCore"/>
		</dd>
	</xsl:if>
</xsl:template>


<xsl:template name="getLabelByDublinCore">
	<xsl:choose>
		<!-- Dublin Core (DC) -->
		<xsl:when test="local-name(.) = 'title'">タイトル</xsl:when>
		<xsl:when test="local-name(.) = 'creator'">作者</xsl:when>
		<xsl:when test="local-name(.) = 'subject'">主題</xsl:when>
		<xsl:when test="local-name(.) = 'description'">説明</xsl:when>
		<xsl:when test="local-name(.) = 'publisher'">発行者</xsl:when>
		<xsl:when test="local-name(.) = 'contributor'">貢献者</xsl:when>
		<xsl:when test="local-name(.) = 'date'">日付</xsl:when>
		<xsl:when test="local-name(.) = 'type'">タイプ</xsl:when>
		<xsl:when test="local-name(.) = 'format'">フォーマット</xsl:when>
		<xsl:when test="local-name(.) = 'identifier'">識別子</xsl:when>
		<xsl:when test="local-name(.) = 'source'">ソース</xsl:when>
		<xsl:when test="local-name(.) = 'language'">言語</xsl:when>
		<xsl:when test="local-name(.) = 'relation'">関連</xsl:when>
		<xsl:when test="local-name(.) = 'coverage'">範囲</xsl:when>
		<xsl:when test="local-name(.) = 'rights'">権利</xsl:when>
		
		<!-- Qualified Dublin Core (DCTERMS) -->
		<xsl:when test="local-name(.) = 'alternative'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'tableOfContents'">目次</xsl:when>
		<xsl:when test="local-name(.) = 'abstract'">要約</xsl:when>
		<xsl:when test="local-name(.) = 'created'">作成日</xsl:when>
		<xsl:when test="local-name(.) = 'valid'">有効期間</xsl:when>
		<xsl:when test="local-name(.) = 'available'">利用可能期間</xsl:when>
		<xsl:when test="local-name(.) = 'issued'">発行日</xsl:when>
		<xsl:when test="local-name(.) = 'modified'">更新日</xsl:when>
		<xsl:when test="local-name(.) = 'dateAccepted'">受理日</xsl:when>
		<xsl:when test="local-name(.) = 'dateCopyrighted'">著作権日</xsl:when>
		<xsl:when test="local-name(.) = 'dateSubmitted'">提出日</xsl:when>
		<xsl:when test="local-name(.) = 'extent'">サイズ・時間</xsl:when>
		<xsl:when test="local-name(.) = 'medium'">伝送媒体</xsl:when>
		<xsl:when test="local-name(.) = 'isVersionOf'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'hasVersion'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'isReplacedBy'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'replaces'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'isRequiredBy'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'requires'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'isPartOf'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'hasPart'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'isReferencedBy'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'references'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'isFormatOf'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'hasFormat'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'conformsTo'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'bibliographicCitation'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'spatial'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'temporal'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'accessRights'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'audience'"><xsl:value-of select="local-name(.)"/></xsl:when>
		<xsl:when test="local-name(.) = 'educationLevel'"><xsl:value-of select="local-name(.)"/></xsl:when>
	</xsl:choose>
</xsl:template>


<xsl:template name="getValueByDublinCore">
	<xsl:choose>
		<xsl:when test="@rdf:resource">
			<a href="{@rdf:resource}">
				<xsl:choose>
					<xsl:when test="@dc:title">
						<xsl:value-of select="@dc:title"/>
					</xsl:when>
					<xsl:otherwise>
						<xsl:value-of select="@rdf:resource"/>
					</xsl:otherwise>
				</xsl:choose>
			</a>
		</xsl:when>
		<xsl:otherwise>
			<xsl:value-of select="."/>
		</xsl:otherwise>
	</xsl:choose>
</xsl:template>


</xsl:stylesheet>
