XML:DTD约束
1、 DTD的介绍和用处
1、因为XML中的标记有非常高的自由性,可以随意定义标记。但是很多时候我们需要对标记进行规定,比如,某个标记只能出现一次,某个标记只能叫什么。对于此类的定义就由DTD语言来定义。
2、文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
3、为什么使用 DTD?
通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述。通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。您还可以使用 DTD 来验证您自身的数据。
2、XML的用途?
1、做配置,做数据传输。
2、html与xml区别?
约束的差异性。
html是超文本,
xml是可拓展标记语言,
xml能够通过字符串表示对象的结构。
3、DTD的语法
- 什么是格式良好XML
1.1 有且只有一个根元素
1.2 XML标签大小写正确区分
1.3 正确使用结束标签
1.4 正确嵌套标签
1.5 使用了合法的标签名
1.6 定义有效的属性
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<dzys>
<dzy >
<name>李伟</name>
<age>25</age>
<contact>
<phone>13333333</phone>
</contact>
<br/>
</dzy>
<dzy >
<name>张星</name>
<age>50</age>
<contact>
<email>123@qq.com</email>
</contact>
</dzy>
</dzys>
- 在XML加入DTD声明
<!DOCTYPE root[]>
- 元素定义的语法
<!ELEMENT element-name (type)>
注:根标签也要定义!!
- 元素的分类
<!ELEMENT element-name EMPTY>//空元素
<!ELEMENT element-name (#PCDATA)>//文本元素
<!ELEMENT element-name (e1,e2)>//混合元素
代码演示如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dzys[
<!ELEMENT dzys (dzy*)>
<!ELEMENT dzy (name,age,contact,br?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT contact (phone|email)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT br EMPTY>
<!ELEMENT email (#PCDATA)>
] >
<dzys>
<dzy>
<name>李伟</name>
<age>25</age>
<contact>
<phone>13333333</phone>
</contact>
<br />
</dzy>
<dzy>
<name>张星</name>
<age>50</age>
<contact>
<email>123@qq.com</email>
</contact>
</dzy>
</dzys>
代码解释:
1、 EMPTY>//空元素 :br 是转向标签。定义为空值。
2、(#PCDATA)>//文本元素 :一些文字和数字,以及邮箱
3、(e1,e2)>//混合元素:标签里面包含标签,
4、第四列中br加了问号(?)是什么意思?
在18列contact后面有一个br。
但是在26列contac后面没有br。
如果两个对象标签必须有一样的标签,要不然就加问号(?)。
-
元素的限制
,代表并且
|代表或者
次数: +, 1~n
*, 0~n
?, 0或1
没有 -
属性定义的语法
<!ATTLIST element-name att_name type >
attributeList-->属性列表(attlist简写)
ID
(男|女)
CDATA(文本类型)
IDREF(的缩写reference 关联)
#REQUIRED/#IMPLIED(必须/非必须)
- XML中的特殊符号
&(逻辑与) &
<(小于) <
>(大于) >
"(双引号) "
'(单引号) '
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dzys[
<!ELEMENT dzys (dzy*)>
<!ELEMENT dzy (name,age,contact,br?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT contact (phone|email)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT br EMPTY>
<!ELEMENT email (#PCDATA)>
<!ATTLIST dzy
pid ID #REQUIRED
sex (男|女) '男'
qq CDATA #IMPLIED
parent IDREF #IMPLIED
>
] >
<dzys>
<dzy pid="p1" sex="男" qq="aaa" parent="p2">
<name>李伟</name>
<age>25</age>
<contact>
<phone>13333333</phone>
</contact>
<br />
</dzy >
<dzy pid="p2">
<name>张星</name>
<age>50</age>
<contact>
<email>123@qq.com</email>
</contact>
</dzy>
</dzys>
4、 元素内容的类型
5、元素ELEMENT定义
XML更加详细了解,博客专家链接:
https://blog.csdn.net/u013087513/article/details/52745509