• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:24来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

<fo:sequence-specifier-single page-master-name="only"/>
</fo:sequence-specification>
<fo:flow>
<xsl:apply-templates select="//ATOM"/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="ATOM">
<fo:block font-size="20pt" font-family="serif">
<xsl:value-of select="NAME"/>
</fo:block>
</xsl:template>
</xsl:stylesheet>
XML 实用大全
第 619 页
更确切地说,下面这些元素存在于http://www.w3.org/XSL/Transform/1.0 命名域中而且是XSL 指令:
• stylesheet
• template
• apply-templates
• value-of
下面这些元素存在于http://www.w3.org/XSL/Format/l.0 命名域中,是XSL 格式化对象和输出部分:
• root
• layout-master-set
• simple-page-master
• region-body
• sequence-specification
• sequence-specifier-single
• page-sequence
• block
下面四个带有xsl 前缀的元素使限定名具有以该前缀开始的:
• xsl:stylesheet
• xsl:template
• xsl:apply-templates
• xsl:value-of
但是,它们的完整名称使用URL,而不是前缀:
• http://www.w3.org/XSL/Transform/l.0:stylesheet
• http://www.w3.org/XSL/Transform/l.0:template
• http://www.w3.org/XSL/Transform/l.0:apply-templates
• http://www.w3.org/XSL/Transform/l.0:value-of
实际上,由于URL 经常包含如~、%和/这样的一些在XML 名称中不合法的字符,所以作为别名的这种较短的限定名只用于文
档内部。但是,限定名的确使文档更易于键入和阅读。
“XML 中的命名域”是正式的W3C 标准。W3C 认为它相当完善,只是可能存在不太重要的错误和说明。但是,
在W3C 所有的XML 规范中,正是这个命名域才最有争议。许多人非常强烈地觉得,这个标准有基本原理上的缺
陷。主要的缺陷是命名域实际上与DTD 和合法性不兼容。而我对此并没有强烈的某种看法,但我的确有这样的疑
问:当人们没有达成一致意见时,发行一个标准是否明智。命名域是许多XML 相关规范(如XSL 和XHTML)的至关重要
的部分,所以需要人们理解。但很多开发者和读者都在他们的工作中忽略此规范。
XML 实用大全
第 620 页
18.2 命名域句法
命名域高于XML 1.0 规范。XML 1.0 处理程序对命名域一无所知,但仍能阅读使用命名域的文档,并且不会发现任何错误。
使用命名域的文档不破坏现有的XML 分析程序(至少不进行合法性检查的分析程序是如此);用户不必等待臭名昭著的、不
准时的软件公司来发行昂贵的升级版才使用命名域。
18.2.1 命名域的定义
在使用命名域的有效元素上应用xmlns:prefix 特性来定义命名域。prefix 由真正的用于命名域的前缀来代替。特性值为命
名域的URI。例如,xsl:stylesheet 标记将前缀xsl 与URI http//www.w3.org/XSL/Transform/1.0 联系在一起。
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
然后,xsl 前缀就可以加到xsl:stylesheet 元素内的本地元素和特性名中,以便将它们标识为属于
http//www.w3.org/XSL/Transform/1.0 命名域。前缀通过冒号与本地名分开。清单14-2 为用于周期表的基本的XSL 样式单,
它最初出现在第14 章“XSL 变换”中,此清单演示了在stylesheet、template 和apply-tempates 上使用xsl 前缀的方法。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">
<xsl:template match="PERIODIC_TABLE">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>
<xsl:template match="ATOM">
<P>
<xsl:apply-templates/>
</P>
</xsl:template>
</xsl:stylesheet>
XML 实用大全
第 621 页
定义命名域的URI 纯粹是形式上的,其唯一目的就是成组、并明确文档中的元素和特性。它无需指向任何对象,特别在无法
确保URI 位置上的文档描述了此文档中使用的句法;或者有用于该目的的任何文档存在于该URI 位置。正如已说明过的,如
果有一个用于特定XML 应用程序的URI,那么此URI 就可以用于定义命名域。
命名域前缀可以是任何合法的XML 名称(不能包含冒号)。回顾第6 章的“结构整洁的XML 文档”,合法的XML 名必须以一
个字母或下划线(_)开头。名称中的后面的字符可以包括字母、数字、下划线、连字号和句点。但不能包括空白。
有两个前缀明确地不允许使用:xml 和xmlns。xml 前缀是定义为用来引用http://www.w3.org/XML/1998/namespace
的。xmlns 前缀用于将元素绑定到命名域上,所以不可用于绑定目标的前缀。
在XML 名称中,除了不允许有冒号字符外(不包括用于分隔前缀和本地名的冒号),命名域对标准的XML 句法没有直接的影
响。使用命名域的文档必须也是结构整洁的,以便对命名域一无所知的处理程序可阅读此文档。如果文档需要检查合法性,
那么它无需明确地考虑命名域就肯定能够获得通过。对于XML 处理程序,使用命名域的文档只不过是样子古怪的文档,在此
文档中有些元素和特性名可能有一个冒号。
命名域的确存在着合法性的问题。如果编写的DTD 没有命名域前缀,那么必须使用命名域前缀来重新编写DTD,
才能用于对使用该前缀的文档进行合法性检查。例如,考虑下面的元素声明:
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(175)