【XML总结】—DTD、Schema
DTD与Schema |
DTD |
- 定义XML文件的结构
- 为XML文件提供语法与规则
- 内容既可以定义在XML文件中,也可以定义在XML文件外
- 使用XML进行数据交换的行业或组织可定义自己的DTD
- DTD对于XML是可选的内容
DTD元素 |
- 在DTD中,元素声明语法:
<!ELEMENT 元素名称 类别>或者<!ELEMENT 元素名称(元素内容)>
例子:
<!ELEMENT书名 (#PCDATA)>
<!ELEMENT计算机书记 (书名,价格,简要介绍>
- 空元素通过关键字EMPTY进行声明:
<!ELEMENT 元素名称 EMPTY >、
例子:
DTD中:<!ELEMENT br EMPTY>
- 声明之出现一次的元素
<!ELEMENT 元素名称 (子元素名称)>
例子:<!ELEMENT 书籍列表(计算机书籍)>
- 声明最少出现一次的元素
<!ELEMENT 元素名称 (子元素名称+)>
例子:<!ELEMENT 书籍列表(计算机书籍+)>
- 声明出现零次或多次的元素
<!ELEMENT 元素名称 (子元素名称*)>
例子:<!ELEMENT 书籍列表(计算机书籍*)>
- 声明出现零次或一次的元素
<!ELEMENT 元素名称 (子元素名称?)>
例子:<!ELEMENT 书籍列表(计算机书籍?)>
- 声明混合型内容
<!ELEMENT 子元素名称 (#PCDATA|子元素名称 )*>
例子:<!ELEMENT 书籍列表(#PCDATA|计算机书籍*>
DTD属性 |
- 在DTD中,属性通过ATTLIST进行声明
- 语法
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
例子:
DTD文件中:
<!ATTLIST payment tyoe CDATA "cash">
XML文件中:
<payment type="cash"/>
<payment/>
Schema |
- Schema也称:XML Schema Dedinition(XSD)
- Schema描述XML文档的结构
- Schema是基于XML的DTD替代者
- 比DTD更强大
Schema与DTD的异同 |
-
Schema会在将来取代DTD
-
更完善,功能更多
-
Schema基于XML编写,不必学习新的语言,可使用XML编辑,解析Schema文件
-
Schema支持数据类型
DTD只能把内容类型定义为一个字符串,而XML Schema允许把内容类型定义为整形、浮点型、布尔型等等,而无须重定义。
-
Schema可针对需求进行扩展
-
能捕获错误信息