什么是XML
XML,Extensible Markup Language,扩展性标识语言。文件的后缀名为:.xml。就像 HTML的作用是显示数据,XML的作用是传输和存储数据。
XML的作用
为了便于不同应用、不同平台之间的数据共享和通信。
具体点的作用为:
(1)可作为一种简单的数据库,存储并检索数据;
(2)传输约定格式的文件;
(3)做软件的配置文件。【配置文件:保存软件设置的文件】
三、标准的XML格式
有且只有一个根元素
XML标签大小写正确区分
正确使用结束标签
正确嵌套标签
使用了合法的标签名
定义有效的属性
四、元素定义
在XML加入DTD声明
<!DOCTYPE root[]>
元素的分类
<!ELEMENT element-name EMPTY>//空元素
<!ELEMENT element-name (#PCDATA)>//文本元素
<!ELEMENT element-name (e1,e2)>//混合元素
元素的限制
🔶元素限制的符号
与:(,)
非:(|)
🔶元素出现的次数
0或1次: ?
0~N次: *
1~N次: +
示例:
建立xml约束,首先得分析xml结构。
1、根标签persons有子标签
2、persons有子标签 混合标签(有子标签)
3、person有子标签:name、age、contact、br、混合标签(有子标签)
4、name,age没有子标签 混合标签(有子标签)
5、contact有子标签 混合标签(有子标签)
6、phone没有子标签,有内容,文本标签
7、email没有子标签,有内容,文本标签
8、br既没有子标签也没有文本内容 空标签
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons[
<!ELEMENT persons (person+)>
<!ELEMENT person (name,age,contact,br?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT contact (phone|email)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT br EMPTY>
]>
<persons>
<person>
<name>张小明</name>
<age>10</age>
<contact>
<phone>1234567</phone>
</contact>
<br/>
</person>
<person>
<name>张大明</name>
<age>35</age>
<contact>
<email>123@qq.com</email>
</contact>
</person>
</persons>
五、属性定义
语法
<!ATTLIST element-name att_name type desc>
属性类型type
ID
(男|女)
CDATA(文本)
IDREF(引用)
reference
属性描述
#REQUIRED:必填
#IMPLIED:非必填
‘默认值’
注意:只有type为 (男|女)类型时,desc才可以用默认的方式
示例
属性约束
pid 属性类型为ID 必填
sex 属性类型为男女的选择 可设置默认值
qq 属性类型为文本 非必填
parent (引用某个id)属性类型为文本 非必填
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons[
<!ELEMENT persons (person+)>
<!ELEMENT person (name,age,contact,br*)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT contact (phone|email)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT br EMPTY>
<!ATTLIST person
pid ID #REQUIRED
sex (男|女) '男'
qq CDATA #IMPLIED
parent IDREF #IMPLIED
>
]>
<persons>
<person pid="p1" sex="男" qq="aaa" parent="p2">
<name>张小明</name>
<age>10</age>
<contact>
<phone>1234567</phone>
</contact>
<br/>
</person>
<person pid="p2">
<name>张大明</name>
<age>35</age>
<contact>
<email>123@qq.com</email>
</contact>
</person>
</persons>
当我们不按约束填写时 就会造成报错 如下图
注:元素名称与属性名称之间要有空格!!!
如果xml文件报错怎么办?
Window ==> Preferences ==>Validation 然后根据如下图所示勾选(默认是全选),最后应用关闭。注意:设置完成后后重启一下eclipse