XSL大纲窗口
在XSL大纲窗口(参见下方截图)中,列出了活动的XSLT文档中的所有模板和函数。模板用蓝色图标表示(表示没有参数的模板;以及表示包含参数的模板)。函数用红色图标表示。在窗口左下方的组合框中,您可以选择列出的模板和函数是否来自:(i) 仅活动的XSLT文档(如下方截图所示),或(ii) 活动的XSLT文档以及所有包括和导入的样式表。
有两种类型的模板:(i) 命名模板,和(ii) 与XPath表达式匹配的模板。每个模板都列出了:
•名称(如果模板具有name特性)和/或XPath表达式(如果模板具有match特性)。如果模板同时具有name和match特性,则将列出这两个特性,将name特性的值列在前面:namevalue, matchvalue(参见上方截图中名为bold的模板)。
•模式(如果有)。请注意,一个模板可能具有多个模式(参见上方截图)。
•优先级(如果有)。
•直接在模板或函数之前的注释(如果有)。
样式表中的函数按其名称列出。函数既没有模式,也没有优先级。
操作
用户可以在XSL大纲窗口中执行以下操作:
•过滤:窗口中显示的列表可以被过滤,以显示以下内容之一:(i) 所有模板和函数(每次启动XMLSpy时的默认设置);(ii) 仅命名模板;(iii) 仅XPath表达式模板;(iv) 仅函数。要选择所需的过滤器,单击窗口右下方搜索框右侧的下拉箭头(参见下方截图),然后选择所需的过滤器(菜单中的第二组命令)。所选的过滤器将立即应用,并从即刻起应用,直到它被修改或XMLSpy关闭。
•排序和定位:每一列都可以通过点击列标题按字母顺序进行排序。之后的每一次点击都会颠倒之前的排序顺序。在以这种方式对一列进行排序后,如果您选择列表中的任何一项,然后从已排序的列中快速输入一个词,则列表中包含该词的的第一个项将被突出显示。您可以通过这种方式快速转至有特定名称/表达式、模式或优先级的模板。
•搜索:在“搜索”框(位于右下方)中输入想要搜索的名称或XPath表达式。搜索结果会在您输入时显示。“搜索”框的下拉列表中提供了以下搜索选项(参见上方截图)。(i) 名称或表达式是以搜索词开头,还是包含搜索词(菜单中的第一组命令);每次启动XMLSpy时,开头为选项都是默认选项;(ii) 搜索结果是应显示为精简列表,还是突出显示(菜单中的第三组命令);每次打开XMLSpy时,精简列表选项都是默认选项。这些选择会立即应用,直至它们被更改或XMLSpy关闭。
•重新加载:在修改样式表后,单击窗口工具栏中的同步图标以更新XSL大纲。
•转至项:当在XSL大纲窗口中选择模板或函数时,单击窗口工具栏中的转至定义图标将在设计视图中突出显示文档中的模板或函数。或者,双击一个条目以完成跳转。
•命名模板操作:可以执行涉及命名模板的两组操作:(i) 在样式表中的光标处插入对命名模板的调用(使用xsl:call-template),以及 (ii) 将命名模板设为转换的入口点。这些操作的命令是通过工具栏中的图标来实现的,具体描述如下。
转换的模板模式
工具栏中的组合框,称为设置转换模式,列出了(i) 样式表中的所有模式,加上(ii) 一个空条目(选择默认模式),在XSLT 3.0样式表中,(iii) #unnamed 特性。从下拉列表中选择一个模式,然后将所选模式设置为转换的模式。#unnamed特性(用于所有XSLT版本)适用于所有没有mode特性的模板。
对于XSLT 1.0和XSLT2.0样式表,默认模式为#unnamed模式。因此,选择空条目会选择默认模式(即#unnamed模式,因此适用于所有没有mode特性的模板)。
在XSLT 3.0样式表中,顶级xslt元素可以具有一个default-mode特性,它保存转换的默认模式。如果在设置转换模式组合框中选择了空条目(默认模式),则default-mode特性中指定的模式将用作转换模式。如果在组合框中选择了#unnamed模式,则转换将应用于所有具有未命名模式的模板,即没有mode特性的模板。
请注意: | 可以为模板指定一个#all模式值以使其适用于所有模式。 |
命名模板
选择命名模板后,窗口工具栏中与命名模板相关的一个或多个命令将被启用(参见下方截图)。
工具栏中的命令(参见上方截图)从左到右依次是:
•插入xsl:call-template:当在XSL大纲窗口中选择命名模板时,此命令将被激活。该命令在样式表中的光标处插入一个xsl:call-template元素。插入到样式表中的xsl:call-template元素的name特性被赋予一个值,这个值是所选命名模板的name特性的值。这使得xsl:call-template成为对所选命名模板的调用。
•插入xsl:call-template with param: 当在XSL大纲窗口中选择具有一个或多个xsl:param子元素的命名模板时,此命令将被激活。正如插入xsl:call-template命令一样,该命令插入一个xsl:call-template元素,但在这种情况下,对于所选命名模板的每个xsl:param子元素都有一个相应的xsl:with-param子元素。插入的xsl:call-template及其xsl:with-param子元素的名称对应于所选命名模板及其xsl:param子级的名称。
•将所选命名模板设为转换的入口点:在将命名模板设置为转换的入口点时,XMLSpy中执行的转换从此命名模板开始。在XSL大纲窗口中,这样的命名模板用粗体表示(参见本部分开头的截图)。
•清除作为转换入口点的命名模板:一旦一个命名模板被设置为转换的入口点,该命令就会被激活。
•跳转至选作转换入口点的命名模板:一旦一个命名模板被设置为转换的入口点,该命令就会被激活。当XSL大纲窗口中的焦点位于设置为转换入口点的命名模板之外的某个点时,单击此图标可突出显示XSL大纲窗口中的命名模板,从而能够实现快速访问。