1.什么是XML
- XML 指可扩展标记语言(EXtensible Markup Language)。
- XML 是一种很像HTML的标记语言。
- XML 的设计宗旨是传输数据,而不是显示数据。
- XML 标签没有被预定义。您需要自行定义标签。
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准
2.为什么要学习XML
XML使得在网络上使用SGML语言更加"简单和直接": 简化了定义文件类型的过程,简化了编程和处理SGML文件的过程,简化了在Web上的传送和共享。
1.XML可以广泛的运用于web的任何地方;
2.XML可以满足网络应用的需求;
3.使用XML将使编程更加简单;
4.XML便于学习和创建;
5.XML代码将清晰和便于阅读理解;
你们觉的为什么要学习XML呢?
3.XML的作用
- 用来保存数据,而且这些数据具有自我描述性
- 它还可以作为项目或者模块的配置文件
- 还可以用来做网络传输数据的格式(现在用不多了,都是JSON为主)
4.标准XML的格式
- 有且只有一个根元素
- XMl标签大小正确区别
- 正确使用结束标签
- 正确使用嵌套标签
- 使用了合法的标签名
- 定义有效的属性
5.dtd元素的约束
5.1元素分类:
- 混合元素:标签里面套标签。(e1,e2)
- 文本元素:标签内部是有内容的。(#PCDATA)
- 空元素:开始标签跟结束标签在一起,并没有内容的。(EMPTY)
5.2元素的限制:
- 逗号(,)必须同时满足
- 或(|)取其中一个
次数:
- 0或者1:(?)零个或者一个
- 0~N: ( *) 零个或者多个
- 1~N: (+) 至少一个
以下代码验证以上内容:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE persons[ <!ELEMENT presons (preson*)> <!ELEMENT preson (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>
6.dtd属性的约束
6.1属性定义:
语法:
<!ELEMENT person (name, age)> <!ATTLIST person name CDATA #REQUIRED age CDATA #IMPLIED >
属性类型:ID CDATA IDREF ENTITY ENTITIES 五种
#REQUIRED(必填),#IMPLIED(非必填) 给它们规定必填或者非必填
<!ATTLIST person pid ID #REQUIRED sex (男|女|牛马) '牛马' qq CDATA #IMPLIED parent IDREF #IMPLIED >
6.2.在XML中加入dtd申明
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE persons[ <!ELEMENT presons (preson*)> <!ELEMENT preson (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>