一个样式表就像是一个从数据库中选择数据的查询。元数据的样式表可以选择什么样的元数据元素被显示,并且定义这些元数据元素如何被显示。ArcCatlog中的每个样式表使用不同的规则对同样的元数据进行显示。如图1所示。 

                   

arcgis pro深度学习 元数据格式 arcgis元数据怎么生成_div


                                            图 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所示:

arcgis pro深度学习 元数据格式 arcgis元数据怎么生成_xsl_02



图 2 、在 ArcCatlog 中选择样式单

根据自定义样式单的元数据显示结果如图3所示。

arcgis pro深度学习 元数据格式 arcgis元数据怎么生成_xsl_03



图 3 :使用自定义样式单显示元数据