computer 版 (精华区)
发信人: lyl (一条四处游荡的鱼), 信区: network
标 题: [范文][XML]W3C建议XML 1.0中文版说明(三) (转载)
发信站: 听涛站 (Fri Apr 28 21:11:13 2000), 转信
发信人: DDG (导弹驱逐舰~雾的季节), 信区: XML
标 题: [范文][XML]W3C建议XML 1.0中文版说明(三) (转载)
发信站: BBS 水木清华站 (Thu Apr 6 13:29:17 2000)
【 以下文字转载自 New_board 讨论区 】
【 原文由 starw 所发表 】
2. 文档
如果一个数据对象满足本规范中格式良好的要求时,它是一个XML文档。一个规范的
XML文档如果满足某些进一步的约束,它将更为有效。
每一个XML文档都有逻辑和物理结构。物理上而言,文档由称为实体的单元组成。一
个实体可以引用(refer)其他实体,将它们包含在文档中。文档开始于"根(root)"或
文档实体中。逻辑上而言,文档由声明、元素、注释、字符引用和处理指令组成,
所有这些都在文档中用显式标记指明。逻辑和物理结构必须如"4.3.2 格式良好的解
析实体"中所描述那样严格地嵌套。
2.1 格式良好的(Well-Formed)XML文档
一个文本对象如果满足以下条件,它将是一个格式良好的XML文档:
1.作为一个整体,它匹配文档(document)产生式。
2.它满足本规范中定义的所有格式约束。
3.此文档中直接或间接引用的每一个解析实体都是格式良好的。
文档
[1] document ::= prolog element Misc*
匹配document产生式意味着:
1.它包含一个或多个元素.
2.有且仅有一个称为根(root)或文档元素的元素,它不出现在其他任何元素的内容
(content)中。对于其他所有元素,如果起始标签在另一个元素的内容中,则其结束
标签也在同一元素的内容中。换一个更简单的说法,以起始标签和结束标签为界的
各个元素,必须严格地嵌套。
这样做的结果是,对于每一个非根的元素C,文档中另有一个元素P,C在P的内容中,
而不在其他任何被P所包含的元素的内容中。P被称为C的父元素(parent),而C被称
为P的子元素(child)。
2.2 字符
一个解析实体包含文本(text),文本是一个字符(character)序列,可以表示标记或
字符数据。一个字符是ISO/IEC 10646[ISO/IEC 10646]中定义的文本最小单元。合
法的字符包括制表符,回车,换行以及Unicode和ISO/IEC 10646中定义的合法的图
形字符。不提倡使用[Unicode]6.8节中定义的"兼容字符(compatibility characte
rs)"。
字符范围
[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x100
00-#x10FFFF]
/* 除了替代块(surrogate block),FFFE和FFFF以外的任意Unicode字符。*
/
将字符代码编码成位模型的机制各个实体间可能会有所不同。所有的XML处理器必须
接受10646中的UTF-8和UTF-16编码;用于指出所用编码或指定使用其他编码的机制
在后
面的"4.3.3 实体中的字符编码"中讨论。
2.3 通用句法成分
本节中定义了一些在句法中广泛使用的符号。
S(空白域)包括一个或多个空格字符(#x20),回车,换行或制表符。
空白
[3] S ::= (#x20 | #x9 | #xD | #xA)+
为方便起见,字符被分为字母,数字和其他字符三类。字母可以是字母表中的字母,
或是一个音节基字符(syllabic base character)后跟一个或多个组合字符,也可以
是一个表意字符。在"B. 字符的分类"中给出了每一类字符的特定定义。
名字(name)是以一个字母或某一标点符号开头的记号,后跟字母,数字,连字符,
下划线,冒号或句号,这些符号统称为命名字符(name character)。以"xml"或其他
任何以 (('X'|'x') ('M'|'m') ('L'|'l')) 的字符串开头的名字,被保留用于本规
范的此版本或后续版本的标准化。
注意:XML名字中的冒号被保留用于名域(name space)实验。它的含义有待于日后标
准化,那时那些将冒号用于实验目的的文档有可能需要更新。(不保证XML采用的任
何名字空间机制实际会采用冒号作为定界符。)实际上,这意味着除非用于名字空间
实验,XML文档编者不应该在XML名字中使用冒号,但XML处理器应该接受冒号作为一
个命名字符。
Nmtoken(名字记号,name token)是任何命名字符的混合体。
名字和记号
[4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningCha
r | Extender
[5] Name ::= (Letter | '_' | ':') (NameChar)*
[6] Names ::= Name (S Name)*
[7] Nmtoken ::= (NameChar)+
[8] Nmtokens ::= Nmtoken (S Nmtoken)*
字面数据是任何用引号括起的字符串,不包括用作定界符的引号。字面数据用于指
明内部实体的内容(EntityValue),属性值(AttValue),以及外部标识符(SystemLi
teral)。注意,对SystemLiteral的解析可以不扫描标记。
字面数据
[9] EntityValue ::= '"' ([^%&"] | PEReference | Reference)* '"'
| "'" ([^%&'] | PEReference | Reference)* "'"
[10] AttValue ::= '"' ([^<&"] | Reference)* '"'
| "'" ([^<&'] | Reference)* "'"
[11] SystemLiteral ::= ('"' [^"]* '"') | "'" [^']* "'")
[12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"
[13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$
_%]
2.4 字符数据和标记
文本由字符数据和标记混合构成。标记包括起始标记、结束标记、空元素标记、实
体引用、 字符引用、注释、CDATA段定界符、文档类型声明和处理指令。
其他所有非标记的文本组成文档的字符数据。
"and"号(&)和左尖括号(<)只有作为标记定界符,或在注释,处理指令,或CDATA段
中时才能以字面形式出现。它们在一个内部实体声明的字面实体数值中也是合法的,
参见"4.3.2 格式良好的解析实体"。如果在其他地方需要用到这两个字符,它们必
须用数值式字符引用来转义或分别用字符串"&"和"<"表示。右尖括号(>)可
以用">"表示,而当它在内容中的字符串"]]>"中出现,但此字符串不表示一个C
DATA段的结束时,出于兼容性考虑,必须用">"或一个字符引用转义得到。
在一个元素的内容中,字符数据可以是不包括任何标记的起始定界符的任意字符串。
在一个CDATA段中,字符数据可以是不包括CDATA段结束定界符"]]>"的任意字符串。
为了允许在属性值中包含单引号和双引号,省略符或称单引号(')可以被表示为"&a
pos;",而双引号(")可以被表示为"""。
字符数据
[14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
2.5 注释
注释可以在其他标记之外的文档中的任何位置出现。另外,它们可以在文档类型声
明中语法允许的地方出现。它们不是文档字符数据的一部分,XML处理器可以,但不
必须,允许一个应用检索注释文本。出于兼容性考虑,字符串"--"(双连字符)不能
在注释中出现。
注释
[15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
注释的一个例子:
<!-- declarations for <head> & <body> -->
2.6 处理指令
处理指令(PI)允许文档中包含由应用来处理的指令。
处理指令
[16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
[17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))
PI不是文档字符数据的一部分,但必须传递给应用。PI以用于指示传递给哪个应用
的目标(PITarget)开头,目标名字"XML","xml",等等,保留用于本规范的此版本
或后续版本的标准化。XML符号机制可以用于PI目标的形式化声明。
--
山居且喜远纷华,俯仰乾坤野性赊。
千载勋名身外影,百岁荣辱镜中花。
金 琢 倒秋将暮,蕙径萧瑟日且斜。
闻道五湖烟境好,何 蝮业鐾∩场?
--
与其相濡以沫,不若相望于江湖。
http://10.23.31.91/
http://10.23.31.91:9999
※ 来源:.听涛站 cces.net.[FROM: 匿名天使的家]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:1.951毫秒