深入XSL (2) ---樣式表結(jié)構(gòu) 翻譯:孫一中
在XML文件中樣式表用元素xsl:stylesheet來表示. XSL處理器處理源文件和樣式表時(shí)都必須采用XML的名域(Namespace)機(jī)制[W3C XML Names].所有XSL定義的元素(在文件中帶有前綴xsl)只有是屬于URI為http://www.w3.org/TR/WD-xsl中的某一個(gè)名域時(shí)才會(huì)被XSL識(shí)別; XSL 定義的元素只是在樣式表中才認(rèn)得,而并不是在源文件中.
xsl:stylesheet元素有一項(xiàng)可選的屬性result-ns;它的值需要有一個(gè)名域前綴.如果規(guī)定了這項(xiàng)屬性,所有的結(jié)果元素必須屬于前綴所確定的名域.如果有名域被確定為缺省名域, 那么屬于該名域的結(jié)果元素可以用一個(gè)空字符串來賦值.result-ns屬性規(guī)定了XSL格式化對(duì)象的名域, 那么除了構(gòu)造XML結(jié)果樹之外,XSL處理器還根據(jù)必須文件中定義的語義來解釋它.XSL格式化對(duì)象的名域的URI為http://www.w3.org/TR/WD-xsl/FO.例中用前綴fo:代表該名域.xsl:stylesheet元素可以包含以下類型的元素:
1. xsl:import 2. xsl:include 3. xsl:id 4. xsl:strip-space 5. xsl:preserve-space 6. xsl:define-macro 7. xsl:define-attribute-set 8. xsl:define-constant 9. xsl:template
下例表現(xiàn)了一個(gè)樣式表的結(jié)構(gòu). 省略號(hào)表示那里的屬性值或內(nèi)容可以省略.其中的元素可以在樣式表中出現(xiàn)多次或者不出現(xiàn).
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:import href="..."/>
<xsl:include href="..."/>
<xsl:id attribute="..."/>
<xsl:strip-space element="..."/>
<xsl:preserve-space element="..."/>
<xsl:define-macro name="..."> ... </xsl:define-macro>
<xsl:define-attribute-set name="..."> ... </xsl:define-attribute-set>
<xsl:define-constant name="..." value="..."/>
<xsl:template match="..."> ... </xsl:template>
</xsl:stylesheet>
元素出現(xiàn)的順序沒有特殊的規(guī)定除了xsl:import元素和錯(cuò)誤恢復(fù).用戶可以根據(jù)自己的需要自由排序, 樣式表的產(chǎn)生工具也不需要去控制元素出現(xiàn)的次序.
--------------------------------------------------------------------------------
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!