JavaWeb学习笔记 (一)xml的两种约束

1.xml约束

通过编写一个文档来约束xml文档的内容,以保证xml中内容的规范性。

2.DTD约束
前期采用的一种约束,没有使用xml规则,相比与schema,语法更为简练。分为外部导入和内部嵌入。
(1)外部导入
创建dtd文件,一般文件名与要约束的xml文件名相同。(如:用stu.dtd来约束stu.xml文件)
dtd文件语法如下:

<!ELEMENT 元素名称 元素类型>

对于简单标签:

<!ELEMENT name (#PCDATA)> PCDATA为parse charecter data简写。

对于复杂标签:

<!ELEMENT name (嵌套的标签1,嵌套的标签2...)>

写好dtd文件后,需要和xml文件绑定。
语法如下:
对于网络上的DTD文件:

<!DOCMENT 根标签名字 PUBLIC DTD名称 DTD路径 >

对于本地上的DTD文件:

<!DOCMENT 根标签名字 SYSTEM DTD名称>

(2)内部嵌入
直接在xml文件中写入以下代码:

<!DOCMENT 根标签名称[ 里面内容和dtd文件中内容相同]>

3.SCHEMA约束
是为了替代dtd的约束,是一种xml语法,但语法过于复杂,没有达到最终效果。
对于简单元素:
(1)xsd文件中的写法
< element name = “简单元素的名称” type = “简单元素的类型”> < /element>
对于复杂元素:
< element name = “复杂元素的名称”>
< complexType> 这用来表示复杂元素
< sequence>
这里用来放简单元素
< /sequence>
< /complexType>
< /element>

(2)与xml文件绑定

在这里插入图片描述

4.两者的比较
XML Schema符合XML语法结构。
DOM、SAX等XML API很容易解析出XML Schema文档中的内容。
XML Schema对名称空间支持得非常好。
XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。
XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。

猜你喜欢

转载自blog.csdn.net/Time__Lc/article/details/84980156