westdc-zf1/data/ISO19115.xsl

390 lines
13 KiB
XML
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:geonet="http://www.fao.org/geonetwork"
xmlns:xalan= "http://xml.apache.org/xalan">
<xsl:output method="html" version="4.0" indent="yes"/>
<xsl:variable name="iso" select="/Metadata/dataIdInfo/idCitation/resTitle"/>
<xsl:template match="/">
<xsl:apply-templates select="Metadata" />
</xsl:template>
<xsl:template match="Metadata">
<fieldset>
<legend><strong>元数据:
<xsl:choose>
<xsl:when test="($iso != '')">
<xsl:value-of select="$iso"/>
</xsl:when>
<xsl:otherwise>
<xsl:text>元数据文档</xsl:text>
</xsl:otherwise>
</xsl:choose></strong>
</legend>
<fieldset><legend>元数据实体信息</legend>
<ul>
<xsl:if test="mdFileID">
<ul><li class="name">文件唯一标识符</li><li><xsl:value-of select="mdFileID"/></li></ul>
</xsl:if>
<xsl:if test="mdLang">
<ul><li class="name">语言</li><li>
<xsl:value-of select="mdLang//@value"/>
</li></ul>
</xsl:if>
<xsl:if test="mdChar">
<ul><li class="name">编码</li><li>
<xsl:value-of select="mdChar//@value"/>
</li></ul>
</xsl:if>
<xsl:if test="mdParentID">
<ul><li class="name">父级标识符</li><li><xsl:value-of select="mdParentID"/></li></ul>
</xsl:if>
<xsl:if test="mdHrLv">
<ul><li class="name">层级</li><li><xsl:value-of select="mdHrLv"/><xsl:value-of select="mdHrLv//@value"/></li></ul>
</xsl:if>
<xsl:if test="mdHrLvName">
<ul><li class="name">层级名</li><li><xsl:value-of select="mdHrLvName"/></li></ul>
</xsl:if>
<xsl:if test="mdDateSt">
<ul><li class="name">元数据更新时间</li><li><xsl:value-of select="mdDateSt"/></li></ul>
</xsl:if>
<xsl:if test="mdStanName">
<ul><li class="name">元数据标准</li><li><xsl:value-of select="mdStanName"/></li></ul>
</xsl:if>
<xsl:if test="mdStanVer">
<ul><li class="name">元数据标准版本</li><li><xsl:value-of select="mdStanVer"/></li></ul>
</xsl:if>
<xsl:if test="dataSetURI">
<ul><li class="name">数据集地址</li><li><xsl:value-of select="dataSetURI"/></li></ul>
</xsl:if>
<xsl:apply-templates select="mdContact"/>
</ul>
</fieldset>
<xsl:apply-templates select="dataIdInfo"/>
<xsl:if test="distInfo">
<xsl:apply-templates select="distInfo"/>
</xsl:if>
<xsl:if test="spatRepInfo">
<xsl:apply-templates select="spatRepInfo"/>
</xsl:if>
<xsl:if test="refSysInfo">
<xsl:apply-templates select="refSysInfo"/>
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="spatRepInfo">
<fieldset><legend>空间表示信息</legend>
<xsl:apply-templates/>
</fieldset>
</xsl:template>
<xsl:template match="refSysInfo">
<fieldset><legend>空间参考信息</legend>
<xsl:apply-templates/>
</fieldset>
</xsl:template>
<xsl:template match="dataIdInfo">
<fieldset><legend>标识信息</legend>
<xsl:apply-templates select="idCitation"/>
<div class="item"><span class="name">摘要</span><xsl:value-of select="idAbs" /></div>
<xsl:if test="idPurp">
<ul><li class="name">目的</li><li><xsl:value-of select="idPurp"/></li></ul>
</xsl:if>
<xsl:for-each select="idCredit">
<ul><li class="name">credit</li><li><xsl:value-of select="."/></li></ul>
</xsl:for-each>
<!-- todo:status -->
<xsl:for-each select="idPoC">
<xsl:apply-templates select="idPoC" />
</xsl:for-each>
<xsl:for-each select="resMaint">
<xsl:apply-templates select="resMaint" />
</xsl:for-each>
<xsl:for-each select="graphOver">
<xsl:apply-templates select="graphOver" />
</xsl:for-each>
<xsl:for-each select="dsFormat">
<xsl:apply-templates select="dsFormat" />
</xsl:for-each>
<xsl:if test="descKeys">
<xsl:apply-templates select="descKeys" />
</xsl:if>
<xsl:for-each select="idSpecUse">
<xsl:apply-templates select="idSpecUse" />
</xsl:for-each>
<xsl:for-each select="resConst">
<xsl:apply-templates select="idPoC" />
</xsl:for-each>
<xsl:for-each select="aggrInfo">
<xsl:apply-templates select="idPoC" />
</xsl:for-each>
<!-- todo:DataIdent -->
<xsl:for-each select="spatRpType">
<xsl:apply-templates select="spatRpType" />
</xsl:for-each>
<xsl:for-each select="dataScale">
<xsl:apply-templates select="dataScale" />
</xsl:for-each>
<xsl:for-each select="dataChar">
<ul><li class="name">编码</li><li><xsl:value-of select=".//@value"/></li></ul>
</xsl:for-each>
<xsl:for-each select="dataLang">
<ul><li class="name">语言</li><li><xsl:value-of select=".//@value"/></li></ul>
</xsl:for-each>
<xsl:for-each select="tpCat">
<xsl:if test="TopicCatCd">
<ul><li class="name">类别</li><li><xsl:value-of select=".//@value"/></li></ul>
</xsl:if>
</xsl:for-each>
<xsl:if test="geoBox">
<xsl:apply-templates select="geoBox"/>
</xsl:if>
<xsl:if test="dataExt">
<xsl:apply-templates select="dataExt"/>
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="distInfo">
<fieldset><legend>分发信息</legend>
<xsl:apply-templates select="distFormat"/>
<xsl:apply-templates select="distributor"/>
<xsl:apply-templates select="distTranOps"/>
</fieldset>
</xsl:template>
<xsl:template match="distFormat|distorFormat">
<fieldset><legend>数据分发格式</legend>
<ul><li class="name">分发格式</li><li><xsl:value-of select="formatName"/></li></ul>
<ul><li class="name">版本</li><li><xsl:value-of select="formatVer"/></li></ul>
<xsl:if test="formatAmdNum">
<ul><li class="name">改进版本号</li><li><xsl:value-of select="formatAmdNum"/></li></ul>
</xsl:if>
<xsl:if test="formatSpec">
<ul><li class="name">规范</li><li><xsl:value-of select="formatSpec"/></li></ul>
</xsl:if>
<xsl:if test="fileDecmTech">
<ul><li class="name">解压缩技术</li><li><xsl:value-of select="fileDecmTech"/></li></ul>
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="distributor">
<fieldset><legend>分发者</legend>
<xsl:apply-templates select="distorCont"/>
<xsl:if test="distorOrdPrc">
<xsl:apply-templates select="distorOrdPrc"/>
</xsl:if>
<xsl:if test="distorFormat">
<xsl:apply-templates select="distorFormat"/>
</xsl:if>
<xsl:if test="distorTran">
<xsl:apply-templates select="distorTran"/>
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="distorTran|distTranOps">
<fieldset><legend>数据传输选项</legend>
<xsl:if test="unitsODist">
<ul><li class="name">unitsOfDistribution</li><li><xsl:value-of select="unitsODist"/></li></ul>
</xsl:if>
<xsl:if test="transSize">
<ul><li class="name">文件大小(Mb)</li><li><xsl:value-of select="transSize"/></li></ul>
</xsl:if>
<xsl:if test="onLineSrc">
<xsl:apply-templates select="onLineSrc"/>
</xsl:if>
<xsl:if test="offLineMed">
<xsl:apply-templates select="offLineMed"/>
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="onLineSrc">
<fieldset><legend>在线资源</legend>
<ul><li class="name">地址</li><li><xsl:value-of select="linkage"/></li></ul>
<xsl:if test="protocol">
<ul><li class="name">协议</li><li><xsl:value-of select="protocol"/></li></ul>
</xsl:if>
<xsl:if test="appProfile">
<ul><li class="name">可用应用程序</li><li><xsl:value-of select="appProfile"/></li></ul>
</xsl:if>
<xsl:if test="orName">
<ul><li class="name">名称</li><li><xsl:value-of select="orName"/></li></ul>
</xsl:if>
<xsl:if test="orDesc">
<ul><li class="name">描述</li><li><xsl:value-of select="orDesc"/></li></ul>
</xsl:if>
<xsl:if test="orFunct">
<xsl:apply-templates select="orFunct"/>
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="offLineMed">
<fieldset><legend>离线资源</legend>
<xsl:if test="medName">
<xsl:apply-templates select="medName"/>
</xsl:if>
<xsl:for-each select="medDensity">
<ul><li class="name">density</li><li><xsl:value-of select="."/></li></ul>
</xsl:for-each>
<xsl:if test="medDenUnits">
<ul><li class="name">density units</li><li><xsl:value-of select="medDenUnits"/></li></ul>
</xsl:if>
<xsl:if test="medVol">
<ul><li class="name">数量</li><li><xsl:value-of select="medVol"/></li></ul>
</xsl:if>
<xsl:if test="medFormat">
<xsl:apply-templates select="medFormat"/>
</xsl:if>
<xsl:if test="medNote">
<ul><li class="name">注释</li><li><xsl:value-of select="medNote"/></li></ul>
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="dataExt">
<!-- todo -->
<fieldset><legend>数据时空边界</legend>
<xsl:apply-templates/>
</fieldset>
</xsl:template>
<xsl:template match="geoBox">
<fieldset><legend>地理范围DD.DDD格式</legend>
<ul><li class="name"></li><li><xsl:value-of select="eastBL"/></li></ul>
<ul><li class="name"></li><li><xsl:value-of select="southBL"/></li></ul>
<ul><li class="name">西</li><li><xsl:value-of select="westBL"/></li></ul>
<ul><li class="name"></li><li><xsl:value-of select="northBL"/></li></ul>
</fieldset>
</xsl:template>
<xsl:template match="descKeys">
<fieldset>
<xsl:if test="keyTyp"><legend>关键词:<xsl:value-of select=".//@value"/></legend></xsl:if>
<xsl:for-each select="keyword">
<ul><li class="name">关键词</li><li><xsl:value-of select="."/></li></ul>
</xsl:for-each>
<!-- 省略了同义词 -->
</fieldset>
</xsl:template>
<xsl:template match="idCitation">
<fieldset><legend>引用说明</legend>
<ul><li class="name">名称</li><li><xsl:value-of select="resTitle"/></li></ul>
<xsl:for-each select="resAltTitle">
<ul><li class="name">别名</li><li><xsl:value-of select="."/></li></ul>
</xsl:for-each>
<xsl:apply-templates select="resRefDate" />
<xsl:if test="resEd">
<ul><li class="name">版本</li><li><xsl:value-of select="resEd"/></li></ul>
</xsl:if>
<xsl:if test="resEdDate">
<xsl:apply-templates select="resEdDate" />
</xsl:if>
<xsl:if test="citId">
<xsl:apply-templates select="citId" />
</xsl:if>
<xsl:if test="citRespParty">
<xsl:apply-templates select="citRespParty" />
</xsl:if>
<xsl:for-each select="presForm">
<ul><li class="name">表现形式</li><li><xsl:value-of select=".//@value"/></li></ul>
</xsl:for-each>
<!-- todo: datasetSeries -->
<xsl:if test="otherCitDet">
<div class="item"><span class="name">文献引用参考</span><xsl:value-of select="otherCitDet"/></div>
</xsl:if>
<xsl:if test="collTitle">
<ul><li>collectivetitle</li><li><xsl:value-of select="collTitle"/></li></ul>
</xsl:if>
<xsl:if test="isbn">
<ul><li>ISBN</li><li><xsl:value-of select="isbn"/></li></ul>
</xsl:if>
<xsl:if test="issn">
<ul><li>ISSN</li><li><xsl:value-of select="issn"/></li></ul>
</xsl:if>
<xsl:if test="RespParty">
<xsl:apply-templates select="RespParty" />
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="resRefDate | resEdDate">
<fieldset><legend>日期</legend>
<ul><li class="name">时间</li><li><xsl:value-of select="refDate"/></li></ul>
<ul><li class="name">类型</li><li><xsl:value-of select="refDateType//@value"/></li></ul>
</fieldset>
</xsl:template>
<xsl:template match="citId">
<fieldset><legend>标识符</legend>
<xsl:if test="identAuth">
<xsl:apply-templates select="identAuth" />
</xsl:if>
<ul><li class="name">代码</li><li><xsl:value-of select="identCode"/></li></ul>
<!-- 还需处理RsIdent类 -->
<xsl:if test="identCodeSpace">
<ul><li class="name">代码空间</li><li><xsl:value-of select="identCodeSpace"/></li></ul>
</xsl:if>
<xsl:if test="identVrsn">
<ul><li class="name">版本</li><li><xsl:value-of select="identVrsn"/></li></ul>
</xsl:if>
</fieldset>
</xsl:template>
<xsl:template match="mdContact | distorCont | citRespParty | identAuth | RespParty | idPoC | distorCont">
<fieldset><legend>联系信息</legend>
<ul><li class="name">负责人</li><li><xsl:value-of select="rpIndName"/></li></ul>
<ul><li class="name">单位名称</li><li><xsl:value-of select="rpOrgName"/></li></ul>
<ul><li class="name">职务</li><li><xsl:value-of select="rpPosName"/></li></ul>
<ul><li class="name">职责</li><li><xsl:value-of select="role//@value"/></li></ul>
<xsl:if test="rpCntInfo">
<xsl:if test="rpCntInfo/cntPhone">
<xsl:for-each select="rpCntInfo/cntPhone/voiceNum">
<ul><li class="name">电话号码</li>
<li><xsl:value-of select="." /></li></ul>
</xsl:for-each>
<xsl:for-each select="rpCntInfo/cntPhone/faxNum">
<ul><li class="name">传真号码</li>
<li><xsl:value-of select="." /></li></ul>
</xsl:for-each>
</xsl:if>
</xsl:if>
<xsl:if test="rpCntInfo/cntAddress">
<xsl:if test="rpCntInfo/cntAddress/postCode">
<ul><li class="name">邮政编码</li><li><xsl:value-of select="rpCntInfo/cntAddress/postCode" /></li></ul>
</xsl:if>
<ul><li class="name">详细地址</li>
<xsl:if test="rpCntInfo/cntAddress/country">
<li><xsl:value-of select="rpCntInfo/cntAddress/country" /></li>
</xsl:if>
<xsl:if test="rpCntInfo/cntAddress/adminArea">
<li><xsl:value-of select="rpCntInfo/cntAddress/adminArea" /></li>
</xsl:if>
<xsl:if test="rpCntInfo/cntAddress/city">
<li><xsl:value-of select="rpCntInfo/cntAddress/city" /></li>
</xsl:if>
<xsl:for-each select="rpCntInfo/cntAddress/delPoint">
<li><xsl:value-of select="." /></li>
</xsl:for-each></ul>
<xsl:for-each select="rpCntInfo/cntAddress/eMailAdd">
<ul><li class="name">电子邮件</li><li><xsl:value-of select="." /></li></ul>
</xsl:for-each>
</xsl:if>
<xsl:if test="cntHours">
<ul><li class="name">服务时间</li><li><xsl:value-of select="cntHours"/></li></ul>
</xsl:if>
<xsl:if test="cntInstr">
<ul><li class="name">联系方法</li><li><xsl:value-of select="cntInstr"/></li></ul>
</xsl:if>
</fieldset>
</xsl:template>
</xsl:stylesheet>