<?xml version="1.0"?>
<!--
- $Id: irspy2zeerex.xsl,v 1.16 2006-12-18 15:38:54 mike Exp $
+ $Id: irspy2zeerex.xsl,v 1.21 2007-06-28 14:01:56 sondberg Exp $
This stylesheet is used by IRSpy to map the internal mixed Zeerex/IRSpy
record format into the Zeerex record which we store.
<!-- If not, insert what we already had... -->
<xsl:otherwise>
- <xsl:copy-of select="explain:indexInfo/*"/>
+ <xsl:copy-of
+ select="explain:indexInfo/explain:index[@search='true']"/>
</xsl:otherwise>
</xsl:choose>
</indexInfo>
<xsl:choose>
<!-- Did we actually probe record syntaxes? -->
- <xsl:when test="/*/irspy:status/irspy:record">
+ <xsl:when test="/*/irspy:status/irspy:record_fetch">
<xsl:for-each select="/*/irspy:status/irspy:record_fetch[@ok = 1]">
<recordSyntax name="{@syntax}">
<elementSet name="F"/> <!-- FIXME: This should be probed too -->
-->
<xsl:template name="insert-irspySection">
<irspy:status>
+ <xsl:copy-of select="*/irspy:libraryType"/>
+ <xsl:copy-of select="*/irspy:country"/>
<xsl:copy-of select="*/irspy:probe"/>
<xsl:call-template name="insert-latest-nodes">
<xsl:with-param name="nodes" select="*/irspy:boolean"/>
+ <xsl:with-param name="what" select="'boolean'"/>
</xsl:call-template>
<xsl:call-template name="insert-latest-nodes">
<xsl:with-param name="nodes" select="*/irspy:named_resultset"/>
+ <xsl:with-param name="what" select="'named_resultset'"/>
</xsl:call-template>
<xsl:call-template name="insert-latest-nodes">
<xsl:with-param name="nodes" select="*/irspy:explain"/>
+ <xsl:with-param name="what" select="'explain'"/>
</xsl:call-template>
<xsl:call-template name="insert-latest-nodes">
<xsl:with-param name="nodes" select="*/irspy:serverImplementationId"/>
+ <xsl:with-param name="what" select="'serverImplementationId'"/>
</xsl:call-template>
+
<xsl:call-template name="insert-latest-nodes">
<xsl:with-param name="nodes" select="*/irspy:serverImplementationName"/>
+ <xsl:with-param name="what" select="'serverImplementationName'"/>
</xsl:call-template>
+
<xsl:call-template name="insert-latest-nodes">
- <xsl:with-param name="nodes" select="*/irspy:serverImplementationVersion"/>
+ <xsl:with-param name="nodes"
+ select="*/irspy:serverImplementationVersion"/>
+ <xsl:with-param name="what" select="'serverImplementationVersion'"/>
</xsl:call-template>
</irspy:status>
</xsl:template>
-->
<xsl:template name="insert-latest-nodes">
<xsl:param name="nodes"/>
+ <xsl:param name="what" select="'unspecified'"/>
<xsl:param name="i" select="count(*/irspy:probe[@ok='1'])"/>
<xsl:variable name="date"
- select="*/irspy:probe[@ok='1' and position() = $i]"/>
+ select="*/irspy:probe[@ok='1'][$i]"/>
<xsl:variable name="latest"
- select="$nodes[irspy:strcmp(text(), $date) > 0]"/>
+ select="$nodes[irspy:strcmp(text(), $date) >= 0]"/>
<xsl:choose>
<xsl:when test="$latest">
<xsl:copy-of select="$latest"/>
</xsl:when>
+ <!-- <xsl:when test="$i > 0 and $i < 200"> -->
<xsl:when test="$i > 0">
<xsl:call-template name="insert-latest-nodes">
+ <xsl:with-param name="what" select="$what"/>
<xsl:with-param name="nodes" select="$nodes"/>
<xsl:with-param name="i" select="$i - 1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
- <irspy:missing/>
+ <irspy:missing what="{$what}" when="{$ping_date}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:call-template>
</xsl:param>
- <index>
- <xsl:attribute name="search">
- <xsl:choose>
- <xsl:when test="$update/@ok = 1">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- <title primary="true" lang="en">
- <xsl:value-of select="$title"/>
- </title>
- <map primary="true">
- <attr type="1" set="{$update/@set}">
- <xsl:value-of select="$update/@ap"/>
- </attr>
- </map>
- </index>
+ <xsl:if test="$update/@ok = 1">
+ <index search="true">
+ <title primary="true" lang="en"><xsl:value-of select="$title"/></title>
+ <map primary="true">
+ <attr type="1" set="{$update/@set}">
+ <xsl:value-of select="$update/@ap"/>
+ </attr>
+ </map>
+ </index>
+ </xsl:if>
</xsl:template>