HEMLをtimelineに変換するXSL
歴史年表のデータベースについて調べていたら、HEMLプロジェクトというのがあるのを知った。
http://heml.mta.ca/heml-cocoon/
HEMLをtimelineに変換するXSLを書いてみた。
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:heml="http://www.heml.org/schemas/2003-09-17/heml" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" exclude-result-prefixes="heml dc geo xsi xlink rdf" > <xsl:output method="xml" indent="yes" encoding="UTF-8" omit-xml-declaration="yes"/> <xsl:template match="/heml:Heml"> <data> <xsl:apply-templates select="heml:Events"/> </data> </xsl:template> <xsl:template match="heml:Events"> <xsl:for-each select="heml:Event"> <event> <xsl:attribute name="start"> <xsl:value-of select=".//heml:StartingDate/heml:Year"/> </xsl:attribute> <xsl:attribute name="end"> <xsl:value-of select=".//heml:EndingDate/heml:Year"/> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="./heml:EventLabelSet/heml:Label[@xml:lang='ja']"/> </xsl:attribute> <xsl:attribute name="link"> <xsl:value-of select=".//heml:SimpleLink/@xlink:href"/> </xsl:attribute> <xsl:value-of select=".//heml:Comment"/> </event> </xsl:for-each> </xsl:template> </xsl:stylesheet>