⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 z3950server.xsl.svn-base

📁 由国外的一个著名的geonetwork修改而来
💻 SVN-BASE
字号:
<?xml version="1.0" encoding="UTF-8" ?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"xmlns:xalan= "http://xml.apache.org/xalan" exclude-result-prefixes="xalan"><xsl:import href="parser.xsl"/><xsl:import href="lucene-utils.xsl"/>	<xsl:variable name="opView"     select="'_op0'"/><!--computes bounding box values--><xsl:variable name="boundingBox" select="/request/query//term[@use='2060']/text()"/><xsl:variable name="northBL"     select="substring-before($boundingBox,' ') + 360"/><xsl:variable name="rest1"       select="substring-after($boundingBox,' ')"/><xsl:variable name="westBL"      select="substring-before($rest1,' ')       + 360"/><xsl:variable name="rest2"       select="substring-after($rest1,' ')"/><xsl:variable name="southBL"     select="substring-before($rest2,' ')       + 360"/><xsl:variable name="eastBL"      select="substring-after($rest2,' ')        + 360"/><!--compiles a request--><xsl:template match="/">	<BooleanQuery>				<BooleanClause required="true" prohibited="false">			<xsl:call-template name="compile">				<xsl:with-param name="expr" select="/request/query"/>			</xsl:call-template>			</BooleanClause>				<!-- view privileges -->		<xsl:call-template name="orFields">			<xsl:with-param name="expr" select="/request/group"/>			<xsl:with-param name="field" select="$opView"/>		</xsl:call-template>			</BooleanQuery></xsl:template><!--compiles a parse tree into a class tree--><xsl:template name="compile">	<xsl:param name="expr"/>		<xsl:call-template name="doCompile">		<xsl:with-param name="expr" select="xalan:nodeset($expr)"/>	</xsl:call-template></xsl:template><!--recursive compiler--><xsl:template name="doCompile">	<xsl:param name="expr"/>		<xsl:choose>		<!-- query: recurse -->		<xsl:when test="name($expr)='query'">			<xsl:call-template name="doCompile">				<xsl:with-param name="expr" select="$expr/*"/>			</xsl:call-template>		</xsl:when>				<!-- and: build a boolean query -->		<xsl:when test="name($expr)='and'">			<BooleanQuery>				<xsl:for-each select="$expr/*">					<BooleanClause required="true" prohibited="false">						<xsl:call-template name="doCompile">							<xsl:with-param name="expr" select="."/>						</xsl:call-template>					</BooleanClause>				</xsl:for-each>			</BooleanQuery>		</xsl:when>				<!-- or: build a boolean query -->		<xsl:when test="name($expr)='or'">			<BooleanQuery>				<xsl:for-each select="$expr/*">					<BooleanClause required="false" prohibited="false">						<xsl:call-template name="doCompile">							<xsl:with-param name="expr" select="."/>						</xsl:call-template>					</BooleanClause>				</xsl:for-each>			</BooleanQuery>		</xsl:when>				<!-- not: build a boolean query -->		<xsl:when test="name($expr)='not'">			<BooleanQuery>				<BooleanClause required="true" prohibited="false">					<!-- first clause is positive -->					<xsl:call-template name="doCompile">						<xsl:with-param name="expr" select="$expr/*[1]"/>					</xsl:call-template>				</BooleanClause>				<!-- other clauses are negative -->				<xsl:for-each select="$expr/*[position()>1]">					<BooleanClause required="false" prohibited="true">						<xsl:call-template name="doCompile">							<xsl:with-param name="expr" select="."/>						</xsl:call-template>					</BooleanClause>				</xsl:for-each>			</BooleanQuery>		</xsl:when>				<!-- title -->		<xsl:when test="name($expr)='term' and $expr/@use='4'">			<xsl:call-template name="wordListTerm">				<xsl:with-param name="expr" select="$expr/text()"/>				<xsl:with-param name="field" select="'title'"/>			</xsl:call-template>		</xsl:when>				<!-- abstract -->		<xsl:when test="name($expr)='term' and $expr/@use='62'">			<xsl:call-template name="wordListTerm">				<xsl:with-param name="expr" select="$expr/text()"/>				<xsl:with-param name="field" select="'abstract'"/>			</xsl:call-template>		</xsl:when>				<!-- any -->		<xsl:when test="name($expr)='term' and $expr/@use='1016'">			<xsl:call-template name="wordListTerm">				<xsl:with-param name="expr" select="$expr/text()"/>				<xsl:with-param name="field" select="'any'"/>			</xsl:call-template>		</xsl:when>				<!-- keywords -->		<xsl:when test="name($expr)='term' and $expr/@use='2002'">			<TermQuery fld="keyword" txt="{$expr/text()}"/>		</xsl:when>				<!-- bounding box -->		<xsl:when test="name($expr)='term' and $expr/@use='2060'">						<!-- bounding box -->			<xsl:if test="$boundingBox">				<xsl:choose>										<!-- equal -->					<xsl:when test="$expr/@relation=3">						<BooleanQuery>							<xsl:call-template name="equal"/>						</BooleanQuery>					</xsl:when>										<!-- overlaps -->					<xsl:when test="$expr/@relation=7">						<BooleanQuery>							<xsl:call-template name="overlaps"/>						</BooleanQuery>					</xsl:when>										<!-- fullyOutsideOf -->					<xsl:when test="$expr/@relation=10">						<BooleanQuery>							<xsl:call-template name="fullyOutsideOf"/>						</BooleanQuery>					</xsl:when>										<!-- encloses -->					<xsl:when test="$expr/@relation=9">						<BooleanQuery>							<xsl:call-template name="encloses"/>						</BooleanQuery>					</xsl:when>										<!-- fullyEnclosedWithin -->					<xsl:when test="$expr/@relation=8">						<BooleanQuery>							<xsl:call-template name="fullyEnclosedWithin"/>						</BooleanQuery>					</xsl:when>									</xsl:choose>			</xsl:if>					</xsl:when>	</xsl:choose></xsl:template><xsl:template name="wordListTerm">	<xsl:param name="expr"/>	<xsl:param name="field"/>		<PhraseQuery>		<xsl:call-template name="phraseQueryArgs">			<xsl:with-param name="expr" select="$expr"/>			<xsl:with-param name="field" select="$field"/>		</xsl:call-template>	</PhraseQuery></xsl:template></xsl:stylesheet>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -