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

📄 iso19139.xsl.svn-base

📁 由国外的一个著名的geonetwork修改而来
💻 SVN-BASE
字号:
<?xml version="1.0" encoding="UTF-8" ?><xsl:stylesheet version="1.0" xmlns:gmd="http://www.isotc211.org/2005/gmd"										xmlns:gco="http://www.isotc211.org/2005/gco"										xmlns:gml="http://www.opengis.net/gml"										xmlns:xsl="http://www.w3.org/1999/XSL/Transform">	<!-- ========================================================================================= -->		<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />		<!-- ========================================================================================= -->	<xsl:template match="/">		<Document>			<xsl:apply-templates select="gmd:DS_DataSet/gmd:has/gmd:MD_Metadata" mode="metadata"/>		</Document>	</xsl:template>		<!-- ========================================================================================= -->	<xsl:template match="*" mode="metadata">		<!-- === Data Identification === -->				<!-- the double // here seems needed to index MD_DataIdentification when           it is nested in a SV_ServiceIdentification class -->		<xsl:for-each select="gmd:identificationInfo//gmd:MD_DataIdentification">			<xsl:for-each select="gmd:citation/gmd:CI_Citation">				<xsl:for-each select="gmd:identifier/gmd:MD_Identifier/gmd:code/gco:CharacterString">					<Field name="identifier" string="{string(.)}" store="true" index="true" token="false"/>				</xsl:for-each>					<xsl:for-each select="gmd:title/gco:CharacterString">					<Field name="title" string="{string(.)}" store="true" index="true" token="true"/>				</xsl:for-each>					<xsl:for-each select="gmd:alternateTitle/gco:CharacterString">					<Field name="altTitle" string="{string(.)}" store="true" index="true" token="true"/>				</xsl:for-each>				<xsl:for-each select="gmd:date/gmd:CI_Date[gmd:dateType/gmd:CI_DateTypeCode/@codeListValue='revision']/gmd:date/gco:Date">					<Field name="changeDate" string="{string(.)}" store="true" index="true" token="false"/>				</xsl:for-each>				<xsl:for-each select="gmd:date/gmd:CI_Date[gmd:dateType/gmd:CI_DateTypeCode/@codeListValue='creation']/gmd:date/gco:Date">					<Field name="createDate" string="{string(.)}" store="true" index="true" token="false"/>				</xsl:for-each>				<!-- fields used to search for metadata in paper or digital format -->				<xsl:for-each select="gmd:presentationForm">					<xsl:if test="contains(gmd:CI_PresentationFormCode/@codeListValue, 'Digital')">						<Field name="digital" string="true" store="true" index="true" token="false"/>					</xsl:if>									<xsl:if test="contains(gmd:CI_PresentationFormCode/@codeListValue, 'Hardcopy')">						<Field name="paper" string="true" store="true" index="true" token="false"/>					</xsl:if>				</xsl:for-each>			</xsl:for-each>			<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->						<xsl:for-each select="gmd:abstract/gco:CharacterString">				<Field name="abstract" string="{string(.)}" store="true" index="true" token="true"/>			</xsl:for-each>			<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->					<xsl:for-each select="gmd:extent/gmd:EX_Extent">				<xsl:apply-templates select="gmd:geographicElement/gmd:EX_GeographicBoundingBox" mode="latLon"/>				<xsl:for-each select="gmd:geographicElement/gmd:EX_GeographicDescription/gmd:geographicIdentifier/gmd:MD_Identifier/gmd:code/gco:CharacterString">					<Field name="geoDescCode" string="{string(.)}" store="true" index="true" token="false"/>				</xsl:for-each>				<xsl:for-each select="gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent">					<xsl:for-each select="gml:TimePeriod/gml:beginPosition">						<Field name="tempExtentBegin" string="{string(.)}" store="true" index="true" token="false"/>					</xsl:for-each>					<xsl:for-each select="gml:TimePeriod/gml:endPosition">						<Field name="tempExtentEnd" string="{string(.)}" store="true" index="true" token="false"/>					</xsl:for-each>				</xsl:for-each>			</xsl:for-each>			<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->					<xsl:for-each select="gmd:descriptiveKeywords/gmd:MD_Keywords">				<xsl:for-each select="gmd:keyword/gco:CharacterString">					<Field name="keyword" string="{string(.)}" store="true" index="true" token="true"/>				</xsl:for-each>				<xsl:for-each select="gmd:type/gmd:MD_KeywordTypeCode/@codeListValue">					<Field name="keywordType" string="{string(.)}" store="true" index="true" token="true"/>				</xsl:for-each>			</xsl:for-each>				<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->						<xsl:for-each select="gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString">				<Field name="orgName" string="{string(.)}" store="true" index="true" token="true"/>			</xsl:for-each>			<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->						<xsl:choose>				<xsl:when test="gmd:resourceConstraints/gmd:MD_SecurityConstraints">					<Field name="secConstr" string="true" store="true" index="true" token="false"/>				</xsl:when>				<xsl:otherwise>					<Field name="secConstr" string="false" store="true" index="true" token="false"/>				</xsl:otherwise>			</xsl:choose>			<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->						<xsl:for-each select="gmd:topicCategory/gmd:MD_TopicCategoryCode/@codeListValue">				<Field name="topicCat" string="{string(.)}" store="true" index="true" token="false"/>			</xsl:for-each>			<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->						<xsl:for-each select="gmd:language/gco:CharacterString">				<Field name="datasetLang" string="{string(.)}" store="true" index="true" token="false"/>			</xsl:for-each>			<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->					<xsl:for-each select="gmd:spatialResolution/gmd:MD_Resolution">				<xsl:for-each select="gmd:equivalentScale/gmd:MD_RepresentativeFraction/gmd:denominator/gco:Integer">					<Field name="denominator" string="{string(.)}" store="true" index="true" token="false"/>				</xsl:for-each>				<xsl:for-each select="gmd:distance/gco:Distance">					<Field name="distanceVal" string="{string(.)}" store="true" index="true" token="false"/>				</xsl:for-each>				<xsl:for-each select="gmd:distance/gco:Distance/@uom">					<Field name="distanceUom" string="{string(.)}" store="true" index="true" token="false"/>				</xsl:for-each>			</xsl:for-each>		</xsl:for-each>		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->				<!-- === Distribution === -->				<xsl:for-each select="gmd:distributionInfo/gmd:MD_Distribution">			<xsl:for-each select="gmd:distributionFormat/gmd:MD_Format/gmd:name/gco:CharacterString">				<Field name="format" string="{string(.)}" store="true" index="true" token="false"/>			</xsl:for-each>		</xsl:for-each>		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->				<!-- === General stuff === -->				<xsl:choose>			<xsl:when test="gmd:hierarchyLevel">				<xsl:for-each select="gmd:hierarchyLevel/gmd:MD_ScopeCode/@codeListValue">					<Field name="type" string="{string(.)}" store="true" index="true" token="false"/>				</xsl:for-each>			</xsl:when>			<xsl:otherwise>				<Field name="type" string="dataset" store="true" index="true" token="false"/>			</xsl:otherwise>		</xsl:choose>		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->				<xsl:for-each select="gmd:hierarchyLevelName/gco:CharacterString">			<Field name="levelName" string="{string(.)}" store="true" index="true" token="true"/>		</xsl:for-each>		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->				<xsl:for-each select="gmd:language/gco:CharacterString">			<Field name="language" string="{string(.)}" store="true" index="true" token="false"/>		</xsl:for-each>		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->				<xsl:for-each select="gmd:fileIdentifier/gco:CharacterString">			<Field name="fileId" string="{string(.)}" store="true" index="true" token="false"/>		</xsl:for-each>		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->				<xsl:for-each select="gmd:parentIdentifier/gco:CharacterString">			<Field name="parentId" string="{string(.)}" store="true" index="true" token="false"/>		</xsl:for-each>		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->				<!-- === Reference system info === -->				<xsl:for-each select="gmd:referenceSystemInfo/gmd:MD_ReferenceSystem">			<xsl:for-each select="gmd:referenceSystemIdentifier/gmd:RS_Identifier">				<xsl:variable name="crs" select="concat(string(gmd:codeSpace/gco:CharacterString),'::',string(gmd:code/gco:CharacterString))"/>				<xsl:if test="$crs != '::'">					<Field name="crs" string="{$crs}" store="true" index="true" token="false"/>				</xsl:if>			</xsl:for-each>		</xsl:for-each>		<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->				<!-- === Free text search === -->				<Field name="any" store="false" index="true" token="true">			<xsl:attribute name="string">				<xsl:apply-templates select="." mode="allText"/>			</xsl:attribute>		</Field>		<xsl:apply-templates select="." mode="codeList"/>			</xsl:template>	<!-- ========================================================================================= -->	<!-- codelist element, indexed, not stored nor tokenized -->		<xsl:template match="*[./*/@codeListValue]" mode="codeList">		<xsl:param name="name" select="name(.)"/>				<Field name="{$name}" string="{*/@codeListValue}" store="false" index="true" token="false"/>			</xsl:template>	<!-- ========================================================================================= -->		<xsl:template match="*" mode="codeList">		<xsl:apply-templates select="*" mode="codeList"/>	</xsl:template>		<!-- ========================================================================================= -->	<!-- latlon coordinates + 360, zero-padded, indexed, not stored, not tokenized -->		<xsl:template match="*" mode="latLon">			<xsl:for-each select="gmd:westBoundLongitude">			<Field name="westBL" string="{string(gco:Decimal) + 360}" store="true" index="true" token="false"/>		</xsl:for-each>			<xsl:for-each select="gmd:southBoundLatitude">			<Field name="southBL" string="{string(gco:Decimal) + 360}" store="true" index="true" token="false"/>		</xsl:for-each>			<xsl:for-each select="gmd:eastBoundLongitude">			<Field name="eastBL" string="{string(gco:Decimal) + 360}" store="true" index="true" token="false"/>		</xsl:for-each>			<xsl:for-each select="gmd:northBoundLatitude">			<Field name="northBL" string="{string(gco:Decimal) + 360}" store="true" index="true" token="false"/>		</xsl:for-each>		</xsl:template>	<!-- ========================================================================================= -->	<!--allText -->		<xsl:template match="*" mode="allText">		<xsl:for-each select="@*">			<xsl:if test="name(.) != 'codeList' ">				<xsl:value-of select="concat(string(.),' ')"/>			</xsl:if>			</xsl:for-each>		<xsl:choose>			<xsl:when test="*"><xsl:apply-templates select="*" mode="allText"/></xsl:when>			<xsl:otherwise><xsl:value-of select="concat(string(.),' ')"/></xsl:otherwise>		</xsl:choose>	</xsl:template>	<!-- ========================================================================================= --></xsl:stylesheet>

⌨️ 快捷键说明

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