由于 *+" 可自定义标签,所以每个人定义的标签集都会不同,如果没有一套标准来规定标
签的定义原则,则应用程序就不能对 *+" 文档进行处理。解决该问题的方案采用
- , - !- :,文档类型定义#,用于定义 *+" 文档的编写
规则。如哪些元素可出现在文档中,及元素的内容和属性的要求等。应用程序会利用这个
- 对文档进行检验,符合 - 约束规则的 *+" 文档称之为有效文档,可以进行下一步
处理,否则会报错,应用程序可捕获该错误进行相应的异常处理。检验过程是可选,这要
视具体应用而定。
3.1.文档类型声明
要使用 - 进行有效性检验,就要使用文档类型定义声明指定 - 。如:
A;BCD%D2CDDA
M >-L07)L)-7+D$EE8888&E22E22D
OE
O%'&E
O%E
E
文档类型声明位于 *+" 声明之后,根元素之前。如果 22 文档位于本机,可用路径名直
接指出 22 文档的位置。22 的内容如下:
M7"7+7-NR#
M7"7+7-S0 3-3#
M7"7+7-S0 3-3#
上面的内容也可直接写到 *+" 文档内,这种 22 声明方式叫内部 22 子集,如:
A;BCD%D2CDDA
M >-L07P
M7"7+7-NR#
M7"7+7-S0 3-3#
M7"7+7-S0 3-3#
Q
OE
O%'&E
O%E
E
如果 22 位于 *+" 文档外,则叫外部 22 子集。我们可以结合内外 22,共同组成一个
22 来为 *+" 文档作验证。如:
M >-L07)L)-7+D;22DP
M7"7+7-NR#
M7"7+7-S0 3-3#
M7"7+7-S0 3-3#
Q
注意,使用内外 22 时,这两个 22 要互相兼容,不能有冲突。
3.2.元素声明
上节文档类型声明中的每一项都是元素声明,定义了每个元素的约束。元素声明的格式为:
M7"7+7-TT2#