3 <!-- This maps any root element containing elements in the DC namespace to an index structure
8 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
9 xmlns:pgterms="http://www.gutenberg.org/rdfterms/"
10 xmlns:z="http://indexdata.com/zebra-2.0"
11 exclude-result-prefixes="pgterms">
13 <!-- Extract sort keys in addition to word keys -->
14 <xsl:variable name="sort">|title|date|creator|</xsl:variable>
15 <!-- Extract phrase keys in addition to word keys -->
16 <xsl:variable name="phrase">|title|date|creator|</xsl:variable>
18 <xsl:output method="xml" indent="yes"/>
20 <xsl:template match="/ignore">
24 <xsl:template match="/*">
26 <z:index name="any:w">
27 <xsl:apply-templates/>
30 <xsl:call-template name="special-indexes"/>
33 <z:index name="anywhere:w">
34 <xsl:value-of select="normalize-space()"/>
40 <xsl:template match="/*/*[namespace-uri() = 'http://purl.org/dc/elements/1.1/']">
41 <z:index name="{local-name()}:w">
42 <xsl:value-of select="."/>
46 <xsl:template name="special-indexes">
47 <xsl:for-each select="/*/*">
48 <xsl:if test="contains($sort, local-name(.))">
49 <z:index name="{local-name(.)}:s">
50 <xsl:value-of select="."/>
53 <xsl:if test="contains($phrase, local-name(.))">
54 <z:index name="{local-name(.)}:p">
55 <xsl:value-of select="."/>
61 <xsl:template match="text()"/>