一个样式表就像是一个从数据库中选择数据的查询。元数据的样式表可以选择什么样的元数据元素被显示,并且定义这些元数据元素如何被显示。ArcCatlog中的每个样式表使用不同的规则对同样的元数据进行显示。如图1所示。
XSL(eXtensible Style sheet Language),一种将XML转换成HTML的语言,一种可以过滤和分类XML数据的语言。
特塞尔制图仪的主要功能:
- 下面简单介绍一下XSL语言的语法
1、xsl:for-each select = "metadata/idinfo/citation/citeinfo/origin" 循环语句,遍历引号中指定的节点;
2、xsl:value-of select = " metadata/idinfo/citation/citeinfo/origin " 赋值语句,取出引号中指定的节点的值
3、xsl:if test="metadata/spref/horizsys/cordsysn/projcsn[. != '']" 判断语句,判断某个节点是否为等于某个值;
4、xsl:choose和xsl:when test=" " 选择语句,相当于用CASE语句对数据进行选择。
- 例子
1、循环语句和赋值语句的例子:
下面的语句显示数据的发布者:
〈DIV STYLE="font-weight:bold; color:#B22222"〉
Who created this data? 〈!-- 谁创建了这个数据? --〉
〈/DIV〉
该语句是纯粹的HTML语言,用来显示标题,如果希望符合中国用户的习惯,可以将其替换为中文:
〈DIV STYLE="font-weight:bold; color:#B22222"〉
谁创建了这个数据?
〈/DIV〉
〈xsl:for-each select="metadata/idinfo/citation/citeinfo/origin"〉
〈 DIV STYLE="margin-left:0.25in; color:#696969"〉
〈 xsl:value-of / 〉
〈 /DIV〉
〈/xsl:for-each〉
〈BR/〉
这里使用了一个循环语句和一个赋值语句,用来将元数据中的metadata/idinfo/citation/citeinfo/origin的值提取出来,在HTML页面中进行显示。
如果用户添加了自定义的节点,那么也一样可以使用XSL的select语法进行读取,如下面代码所示:
〈DIV STYLE="font-weight:bold; color:#B22222"〉
输入人员名字:
〈/DIV〉
〈xsl:for-each select="metadata/custom/inputperson "〉
〈DIV STYLE="margin-left:0.25in; color:#696969"〉
〈xsl:value-of /〉
〈/DIV〉
〈/xsl:for-each〉
〈BR/〉
2、判断语句的例子:
下面一段代码用来显示数据的投影坐标系统:
〈DIV STYLE="font-weight:bold; color:#B22222"〉
这个数据的坐标系统是什么?
〈/DIV〉
〈xsl:if test="metadata/spref/horizsys/cordsysn/projcsn[. != '']"〉
〈DIV STYLE="margin-left:0.25in; color:#696969"〉
〈SPAN STYLE="font-weight:bold"〉投影坐标系统: 〈/SPAN〉
〈xsl:value-of select="metadata/spref/horizsys/cordsysn/projcsn"/〉
〈/DIV〉
〈/xsl:if〉
其中用到了if判断语句:〈xsl:if test="metadata/spref/horizsys/cordsysn/projcsn[. != '']"〉,如果不某个节点的元数据不为空,那么显示数据。
3、选择语句的例子:
〈xsl:choose〉
〈xsl:when test="metadata/distinfo/resdesc[.='Live Data and Maps']"〉
〈DIV STYLE="margin-left:0.25in; color:#696969"〉
动态地图和数据
〈/DIV〉
〈/xsl:when〉
〈/xsl:choose〉
在定制时,可以用来做关键字替换,FGDC标准的元数据关键字使用英文,如果希望用户看到中文的关键字,那么可以使用选择判断语句测试metadata/distinfo/resdesc节点的值,根据不同的值进行替换,上面的代码就将‘Live Data and Maps'关键字替换为‘动态地图和数据'
了解了这些基本的XSL语法之后,就可以根据用户的要求对元数据进行定制。剩下的工作就是用XSL设计整个页面的样式,尽量实现格式的统一和美观。元数据的节点信息可以从元数据的XML文档中得到。
该XSL文件编写完成后,将其放到%ARCGISHOME%\Metadata\Stylesheets目录中,ArcCatlog中的元数据工具栏中会自动显示选项,使用新的XSL文件来显示元数据。如图2所示:
根据自定义样式单的元数据显示结果如图3所示。