您需要 登录 才可以下载或查看,没有账号?注册
本规范中 XML 的形式化文法用一种简单的扩展巴科斯范式(Extended Backus-Naur Form,EBNF)给出。文法中的每一条规则定义了一个符号,形式如下: symbol ::= expression 如果符号是正则语言的起始符号,则它以大写字母开头, 否则以小写字母开头。字符串常量(literal strings)用引号括起。 在规则右边的表达式中,以下表达式用于匹配一个或多个字符的字符串: #xN N 是一个十六进制的整数,当 ISO/IEC 10646 中某个字符的规范(UCS-4)代码值作为无符号二进制数与 N 相等时,此表达式匹配这个字符。#xN 中的前导 0 没有意义,在相应的代码值中的前导 0 的个数则由所用字符编码方案决定,对 XML 没有意义。 [a-zA-Z], [#xN-#xN] 与其值在指定范围内的任何 Char 相匹配(含界,inclusive)。 [abc], [#xN#xN#xN] 与其值为所枚举的值之一的 Char 相匹配。在一对方括号内枚举和范围可以混用。 [^a-z], [^#xN-#xN] 与其值在指定范围之外的任何 Char 相匹配。 [^abc], [^#xN#xN#xN] 与任何不在给定字符集内的 Char 相匹配。在一对方括号内被禁值的枚举和范围可以混用。 "string" 与匹配双引号中所给字符串的常量字符串相匹配。 'string' 与匹配单引号中所给字符串的常量字符串相匹配。 这些符号可以按下列方式组合,以匹配更复杂的模式,其中A和B表示简单表达式: (expression) expression 被当成一个单元,可以向本表描述的那样进行组合。 A? 与零个或一个 A 相匹配,即 A 可选。 A B 与 A 后跟 B 的模式相匹配。这个操作符的优先级高于 |,因此 A B | C D 相当于 (A B) | (C D)。 A | B 与 A 或 B 之一相匹配,但不同时匹配。 A - B 与任何匹配 A 但不匹配 B 的字符串相匹配。 A+ 与一个或多个 A 相匹配。连接操作的优先级高于 |,因此 A+ | B+ 相当于 (A+) | (B+)。 A* 与零个或多个 A 相匹配。连接操作的优先级高于 |,因此 A* | B* 相当于 (A*) | (B*)。 其他在产生式中使用的记法有: /* ... */ 注释 [ wfc: ... ] 格式正确性约束;用名字标识一个对与某个产生式相关联的格式正确的文件的约束。 [ vc: ... ] 有效性约束;用名字标识一个对与某个产生式相关联的有效的文件的约束。
使用道具 举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
Archiver|手机版|小黑屋|金光论坛
GMT+8, 2025 年 2 月 4 日 08:56 , Processed in 0.017887 second(s), 22 queries .
Powered by Discuz! X3.5
© 2001-2024 Discuz! Team.