XML - DTD约束
DTD( Document Type Defination )是常见的xml的约束方式!
DTD的一般结构
示例
- <!DOCTYPE menus [ <!ELEMENT menus (menu+)> <!ELEMENT menu (name,address,introduce)> <!ELEMENT name (#PCDATA)> <!ATTLIST name englishName ID #required> <!ELEMENT address (#PCDATA)> <!ELEMENT introduce (#PCDATA)> ] >
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE menus SYSTEM "TestDTD.dtd">
- <menus>
- <menu>
- <name englishName="HP">惠普</name>
- <address>USA </address>
- <introduce>惠普是世界上最大科技企业之一
- </introduce>
- </menu>
- </menus>
DTD的元素声明
- EMPTY类型 (既不包含数据内容也不包含子元素)
<!ELEMENT 元素名称 EMPTY>
- #PCDATA类型 (不包含子元素,只包含字符数据)
<!ELEMENT 元素名称 (#PCDATA)>
子元素类型
<!ELEMENT 元素名 (子元素名称)>
在子元素类型中,可以使用正则表达式来规定子元素出现的次序和次数。
- ANY类型 (内容可以是元素 PCDATA 或者元素与PCDATA的混合内容)
<!ELEMENT 元素名称 ANY>
- 混合类型
<!ELEMENT 元素名称 (#PCDATA|子元素)*>
DTD属性声明
在DTD中,属性的主要作用是描述元素的额外信息,是对于元素的补充和修饰。属性在DTD中,通过ATTLIST关键字进行声明
DTD中实体
- 通用实体
- 内部通用实体
- 外部通用实体
- 参数实体
- 内部参数实体
- 外部参数实体
DTD的引用
- 内部DTD引用
- 外部DTD引用