W3C推进SVG规范Ver1.1(中文译稿)—Part I
转自:http://www.gispark.com/html/GISarticle/2006/1215/826.html
Scalable Vector Graphics (SVG) 1.1 Specification
1 简介 内容来自dedecms
Scalable Vector Graphics (SVG) 1.1 Specification
W3C Recommendation 14 January 2003
This version: http://www.w3.org/TR/2003/REC-SVG11-20030114/ ;
Latest version: http://www.w3.org/TR/SVG11/ ;
Previous version: http://www.w3.org/TR/2002/PR-SVG11-20021115/ ;
目录
• 1.1 关于SVG
o 1.1.1 模块化
o 1.1.2 元素和属性集
o 1.1.3 剖析SVG 规范
• 1.2 SVG MIME 类型, 文件扩展名和Macintosh 文件类型
• 1.3 SVG 命名空间, 公共标识符与系统标识符
• 1.4 与其它规范标准的兼容性
• 1.5 术语
• 1.6 定义 copyright dedecms
1.1 关于SVG
本规范定义可扩展矢量图形(SVG).的特性和语法。
SVG是一种基于XML[XML10]的二维图形描述语言。SVG允许三种图形对象:矢量图形形状(如有直线和曲线组成的轨迹)、图像和文本。图形对象可以被组合、定制样式、变形和组成先前渲染过的对象。其特性包括嵌套变换(Nested Transformations)、路径分割(clipping paths)、蒙版(alpha masks)、滤镜效果和模板对象。
SVG 图形是可交互和动态的。 动画 可以既直接定义和触发(例如,把SVG动画元素嵌入SVG文本中),也可以通过脚本控制。
通过脚本语言访问SVG文档对象模型 (DOM),使得复杂的SVG 应用成为可能。SVG文档对象模型 (DOM)可以提供对所有元素(elements)、特性(attributes)和属性(properties)的完全访问。可以给SVG图形对象分配onmouseover and onclick等许多事件(event handlers)。 由于它的兼容性和对其他Web标准的杠杆所用(leveraging of other Web standards), 在同一个Web页面中可以同时出现针对XHTML和 SVG元素编写的脚本 。
SVG是一种针对复杂图形的语言。出于访问性的原因,如果一个初始源文档包含较高级别的结构和语义,建议较高级别的信息时可访问的,既可以让初始源文件可访问,也可以让能够传达高级别信息的其他格式或其他版本的文档可访问,或将较高级别的信息包含到SVG内容中。获得更好的访问性的技术信息,请参见 访问性。
1.1.1 模块化
这里包含的SVG模块化是对SVG 1.0的分解和一个针对提供特定功能的抽象模型集的勘误表。这些模块可以相互组合,也可以同其他规范定义的模块组合(如XHML),以建立SVG的子集和扩展文档类型,作为SVG文档类型家族的成员。参见SVG文档家族的一致性(Conformance) 描述和组合XHTML,MathML及 SVG的 [XHTMLplusMathMLplusSVG] 框架。
每个主要SVG 规范结尾部分都有一个名称标识,例如:“文本模块”或“基本结构模块”。如果一个模块没有“基本(Basic)”前缀,则说明它包含完整地元素和特性,同规范的相应部分没有约束。如果需要提供已完成模块的功能子集,则要在该模块的命名中加上前“基本(Basic)”前缀。例如, "Basic Text Module" 就是 "Text Module"的一个子集。
在SVG 1.1中,同时包含完成模块和它的基本子集模块(如 "Text Module" 和"Basic Text Module")是一个错误。
1.1.2 元素和特性集
多数模块都定义了元素(elements)和特性(attributes)的名称集合。在描述元素的一组特性时,可以引用这些集合(如Style特性集合)。所有特性的名称都以大写字母开头。
在定义一个框架时,假设所有元素和特性集合都被定为空。这样,一个模块在被包含到框架中时,就可以重新定义这些集合,加入框架中可以获取的元素和特性。因此,引用没有包含在框架中的模块的元素和特性集合不是错误,说明该集合是空的。
只有Presentation.attrib 例外,它是所有presentation 特性的联合(如所有名字中包含"Presentation"的所有特性集合), Presentation.attrib 没有在任何模块中定义,但在每个框架中都存在。
一个模块子集(如基本模块Basic module)可以定义一个与父模块不同的名称集合。由于在一个框架中包含同一组子模块和父模块是一个错误的,所有特性和元素集合都必须由包含他们的模块定义一次,或者保留他们却生的空值(没有被任何模块定义的Presentation.attrib例外)。
1.1.3 剖析SVG规范
SVG1.1模块化允许用它们认可的SVG模块列表来描述框架,可能还会有少量由这些模块提供的针对元素的限制或扩展。
SVG1.1完整框架是在本规范中列出的所有完成模块的集合(如每个非子模块的模块)。
为保持一致,术语“SVG”表示本规范定义的SVG1.1完整框架。如果不执行完整框架,就必须声明与其一致的框架,或执行SVG的一个子集。
1.2 SVG MIME 类型、文件名扩展和Macintosh文件类型
SVG的MIME类型是"image/svg+xml" (参见 [RFC3023])。这种MIME类型的注册证在W3C进行中。
推荐SVG文件名在所有平台上都使用".svg"(全部小写)扩展名。推荐gzip-compressed 压缩的SVG文件在所有平台上使用".svgz"(全部小写)扩展名。
推荐存储在Macintosh HFS 文件系统上的SVG文件给定"svg "(全部小写,将空格作为第四个字母)文件类型。推荐存储在Macintosh HFS 文件系统上的gzip-compressed 压缩SVG文件给定文件类型"svgz"(全部小写)。I
1.3 SVG命名空间、公共标识符和系统标识符
以下是SVG1.1的命名空间、公共标识符和系统标识符:
SVG命名空间:SVG Namespace: http://www.w3.org/2000/svg ;
SVG 1.1公共标识符:Public Identifier for SVG 1.1:
PUBLIC "-//W3C//DTD SVG 1.1//EN"
SVG 1.1系统标识符:System Identifier for the SVG 1.1 Recommendation: http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd ;
下面是一个SVG文档的实例文档类型声明:
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
" http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
注意系统标识符列出的DTD是一个模块化的DTD(比如它的内容被分散到多个文件)。这意味着校验器要进行验证就必须获取多个模块。因此有一个单一的变平的DTD与SVG 1.1模块化的 DTD一致。这个文件可以在http://www.w3.org/ ;Graphics/SVG/1.1/DTD/svg11-flat.dtd. 找到。
1.4 与其他规范标准的兼容性
SVG与W3C其他标准规范集成并具有杠杆作用,SVG 也由此而强大,用户可以轻松地了解如何将SVG结合到他们的网站上。
下面给出一些保持SVG同其他W3C规范兼容、继承和杠杆作用的方法。
• SVG是XML的一个应用,与XML1.0 [XML10]推荐标准兼容。
• SVG与XML命名空间[XML-NS]兼容。
• SVG利用"XML Linking Language (XLink)" [XLINK]位URL引用,并需要"XML Base" [XML-BASE]中定义的URI规范支持。
• SVG引用元素ID的语法是"XML Pointer Language (XPointer)" [XPTR]中元素ID引用的一个兼容子集。
• SVG的内容既可以用CSS(参见 "Cascading Style Sheets (CSS) level 2" 规范 [CSS2]) 定制样式,也可以用XSL (参见 "XSL Transformations (XSLT) Version 1.0" [XSLT])定制样式。(参见 Styling with CSS 和Styling with XSL) 。
• SVG支持普通CSS和XSL相关属性和方法,以及CSS选择的语法和特性(参见 SVG''s styling properties 和 SVG''s Use of Cascading Style Sheets)。
• 外部风格页(External style sheets)被"Associating Style Sheets with XML documents Version 1.0" [XML-SS]描述的机制引用。
• SVG包含完整的文档对象模型(DOM)并遵从"Document Object Model (DOM) level 1" [DOM1]推荐规范。SVG的DOM较DOM Level 1定义的HTML DOM 规范具有较高级别的兼容性并与其保持一致。另外,还与"Document Object Model (DOM) level 2" [DOM2]中描述的许多共聚一致,包括CSS对象模型和事件。
• SVG还结合了SMIL1.0(Synchronized Multimedia Integration Language)规范的特性和方法,包括switch元素(''switch'' element)和系统语言(systemLanguage)。
• SVG的动画特性(参见Animation)是与W3C的SYMM(Synchronized Multimedia)工作组协同开发出来的,他们是SMIL1.0 [SMIL1]规范的开发者。SVG的动画结合并扩展了SMIL动画规范("SMIL Animation" specification [ SMILANIM])中描述的XML动画能力的总体意图。 织梦内容管理系统
• SVG设计成允许SMIL的将来版本向媒体对象一样使用动态的或静态的SVG内容。
• SVG试图最大限度地与HTML 4 [HTML4] 和XHTML(tm) 1.0 [XHTML]兼容。许多SVG工具直接根据HTML建模,包括使用CSS [CSS2]、处理事件和文档对象模型[DOM2]。
• SVG与W3C国际化兼容,参考(来自W3C和其他):[UNICODE] 、 [CHARMOD]和Internationalization Support。
• SVG与W3C的Web访问性(Web Accessibility [WAI])兼容。参见Accessibility Support。
在支持XML语法(如XHTML [XHTML])的DOM2[DOM2]并支持SVG和SVG DOM的环境中,一个脚本方法可以同时被XML文档和SVG图形使用,那样,用同一段脚本就可是实现多个XML名字空间的交互和动态效果。 织梦内容管理系统
1.5 术语
在本规范中,关键词"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"将在RFC 2119中解释(参见 [RFC2119])。不过为了阅读方便,本规范中这些关键字不全部大写。
本规范有时会向作者和用户推荐一些好的实例,这些推荐是非标准化的,同规范不也一致,这并不依赖于它们的实现。这样的推荐通常包含“我们推荐…”或“本规范推荐”或类似这样的表述。
1.6 定义
basic shape 基本形状
SVG中定义的标准形状是为了普通图形操作的方便。特别是矩形、圆形、椭圆形、直线、多义线和多边形(''rect'', ''circle'', ''ellipse'', ''line'', ''polyline'', ''polygon'')。
canvas 画布
用来画图形元素的面,可以是纸、显示器或虚拟分配的计算机内存等。参见坐标系统、变换和单位一章关于SVG canvas的讨论。
clipping path 剪裁路径
是路径、文本和基本(''path'', ''text'' 和 basic shapes)图形的组合作为轮廓的1位掩码,所有里面的显示出来,外面的都被屏蔽。参见Clipping paths。
container element 容器元素
一种包含图形和其他容器元素作为子元素的元素,特别是:''svg'', ''g'', ''defs'' ''symbol'', ''clipPath'', ''mask'', ''pattern'', ''marker'', ''a'' and ''switch''。 dedecms.com
current innermost SVG document fragment 当前最里层的SVG文档片断
XML文档都是以给定的SVG元素''svg'' 作为根节点的树型结构。
current SVG document fragment 当前SVG文档片断
XML文档都是以给定的SVG元素''svg'' 作为根节点的树型结构,要求所有在该元素和最外层的''svg''元素之间的元素必须是SVG语言中的元素。
current transformation matrix (CTM) 当前变换矩阵(CTM)
变换矩阵是将一个坐标系转换成另一个坐标系的数学表达是,通常用3x3的矩阵,采用方程式[x'' y'' 1] = [x y 1]。当前变换矩阵(CTM)定义用户坐标系统到显示窗口坐标系统的变换。参见坐标系统变换(Coordinate system transformations)。
fill 填充
填充是对图形或字符串中字符内部着色的操作。
font 字体
字体是组织化的字形(glyphs)的集合。一种字体的字形、风格一致,当一串字符一起变换样式时表现非常明显。字体还能传达艺术风格,包含字体内部的对齐方式和间距。 内容来自dedecms
glyph 字形
字形代表字体中变换内容的单元。A glyph represents a unit of rendered content within a font. 通常,画出的字符和相应的字形是一对一的关系(如 通常字符 "A"只有一个变换字形),但有时多个字形用来变换一个字符,(比如用重音)。比较典型的是一个字形由一个或多个形状shapes(比如路径path)定义,可能还包含变换信息以利于字体引擎在处理清晰地处理小字。
graphics element 图形元素
图形元素是可以用来在目标画布上画出图形的元素。特别是:''path'', ''text'', ''rect'', ''circle'', ''ellipse'', ''line'', ''polyline'', ''polygon'', ''image'' and ''use''等。
graphics referencing element 图形参考元素
用对不同文档或元素的引用作为其图形内容的图形元素。特别是:''use'' and ''image''。 dedecms.com
local URI reference 本地RUI引用
是指不包含绝对URI(<absoluteURI>)和相对定位符(<relativeURI>)的统一资源定位符(Uniform Resource Identifier [URI]),它描绘一个引用指向当前文档的一个元素。参见References and the ''defs'' element。
mask 蒙版
一个可以包含图形元素或其他定义了一组图形的容器元素,被用来作为被透明的蒙版将前景对象合成到当前的背景之上。参见Masks。
non-local URI reference 非本地URI引用
是指包含绝对URI(<absoluteURI>)或相对定位符(<relativeURI>)的统一资源定位符(Uniform Resource Identifier [URI]),它描绘一个引用指向不同文档的或不同文档中的某个元素。参见References and the ''defs'' element。
paint 着色
着色是指将颜色值呈现在画布上的方法,包含有颜色值和合成alhpa值。色值控制着画布上的颜色与现有颜色的混合效果。SVG支持三种内置着色:实心色(color)、梯度(gradients)和模式(patterns)。
presentation attribute 展示特性 dedecms.com
是SVG元素的XML特性,为该元素的属性定义值。参见Styling。
property 属性
是用来说明文档如何处理的变量。完整的SVG属性列表可在属性索引(Property Index)中找到。可以通过SVG语言中的呈现特性(presentation attributes)或风格定义语言(如CSS [CSS2])来给SVG语言元素分配属性。
shape 形状
是由直线和曲线组合定义的图形元素。主要有:''path'', ''rect'', ''circle'', ''ellipse'', ''line'', ''polyline'', ''polygon''。
stroke 画边界
是对图形或字符串中的字形轮廓进行着色的操作。
SVG canvas SVG画布
是勾画SVG内容的画布。参见坐标系统、转换和单位(Coordinate Systems, Transformations and Units)一章关于SVG画布(SVG canvas)的讨论。
SVG document fragment SVG文档片断
是以''svg''元素开头的XML文档子树。SVG文档片断可以包含独立的SVG文档,或是被''svg'' 元素包围的父XML文档的片断。当一个''svg'' 元素是另一个''svg'' 元素的子元素,就会有两个SVG文档片断,每个''svg'' 元素拥有一个片断(一个SVG文档片断被包含在另一个SVG文档片断中)。 本文来自织梦
SVG viewport SVG视口
视口(viewport)是SVG画布(SVG canvas)中定义的矩形区域,在区域中展现SVG内容。参见坐标系统、转换和单位(Coordinate Systems, Transformations and Units)一章关于SVG视口(SVG viewport)的讨论。
text content element 文本内容元素
一个可以定义文本串的画在画布上的SVG元素,SVG文本内容元素有:''text'', ''tspan'', ''tref'', ''textPath'' 和 ''altGlyph''等。
transformation 变换
是指当前变换矩阵(CTM)的改变,由追加的变换以一组简单变换定义(如缩放、旋转和平移)提供,也可由一组或多组变换矩阵(transformation matrices)提供。参见坐标系统转换(Coordinate system transformations)。
transformation matrix 变换矩阵
变换矩阵是将一个坐标系转换成另一个坐标系的数学表达是,通常用3x3的矩阵,采用方程式[x'' y'' 1] = [x y 1]。
URI Reference URI引用
是一个统一资源定位符([URI])作为一个引用指向文件或文件中的一个元素。参见引用和''defs''元素(References and the ''defs'' element)。
user agent 用户代理
用户代理的通常定义是指一个返回并重现Web内容的应用。这些内容包括文本、图形、声音、影像、图像和其他类型。用户代理可能需要其他用户代理来处理某些类型的内容。例如:一个浏览器可能运行一个独立的程序或插件来重现声音或影像。用户代理包括桌面图形浏览器,以及屏幕阅读器,屏幕放大器、语音同步器、触摸屏和声音输入软件等辅助技术。
一个用户代理可能或不能返回并重现SVG内容,但SVG用户代理可以返回并重现SVG内容。
user coordinate system 用户坐标系统
一般说来,坐标系定义当前画布的位置和距离。但前用户坐标系是当前活动的,用来定义当前画布上的坐标和长度如何分别定位和计算的坐标系统。参见初始化用户坐标系统(initial user coordinate system)和坐标系统变换(Coordinate system transformations)。
user space 用户空间
是用户坐标系统(user coordinate system)的同义词。
user units 用户单位
一个以用户单位表达的坐标值和长度代表着当前用户坐标系中的一个坐标值和长度。所以,10个用户单位代表当前用户坐标系中10个单位长度。
viewport 视口
视口(viewport)是SVG画布(SVG canvas)中定义的矩形区域,在区域中展现SVG内容。参见坐标系统、转换和单位(Coordinate Systems, Transformations and Units)一章关于SVG视口(SVG viewport)的讨论。
viewport coordinate system 视口坐标系统
一般说来,坐标系定义当前画布的位置和距离。视口坐标系统是从开始处理''svg''元素到处理viewBox特性之前处于活动的坐标系。在这种情况下,一个包含在父文档中并带有CSS样式定义的SVG文档片断,视口坐标系统就与其原有的CSS具有相同的方位和长度,原来的左上坐标位视口的左上坐标。参见视口初始化(The initial viewport )和建立新视口(Establishing a new viewport)。 copyright dedecms
viewport space 视口空间
同视口坐标系(viewport coordinate system)。
viewport units 视口单位
一个以视口单位表达的坐标值和长度代表视口坐标系中的一个坐标值和长度。所以,10个视口单位代表视口坐标系中10个单位长度。
[/CENTER]