
什么是格式良好的XML
- 有且只有一个根元素
- XML标签大小写正确区分
- 正确使用结束标签
- 正确嵌套标签
- 使用合法的标签名
- 定义有效的属性
什么是XML
简单来说用来传输和存储数据
为什么要学习XML
不是java开发要学习XML。是学习编程就必须懂得XML.,Xml是现今编程里面很常用的一个东西,操作简单,实现非常容易,存储体积也小,很易于调用。
xml可以作为一个小型的数据存储,也可以作为一个存储信息的东西,像是一个项目里面的错误日志什么的,都是用这个做的
XML的作用
元素分类
声明一个XML DTD的声明 简单来说就是 给它一个属性的定义
这些就是它们的具体属性
<!DOCTYPE persons[
<!ELEMENT persons(person+)>
<!ELEMENT person(name,age,contact)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT age(#PCDATA)>
<!ELEMENT phone(#PCDATA)>
<!ELEMENT email(#PCDATA)>
<!ELEMENT contact(#phone)>
]>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons[ ]>
//我这边根节点 为(persons[])
<persons>
<person>
<name>张三</name>
<age>18</age>
<contact>
<phone>1234567</phone>
</contact>
<br/>
</person>
空元素 也就是如 br 标签 他只有尾 没有体 就叫空标签🙀
<!ELEMENT br EMPTY>
文本元素 (就是 在我们文本里的标签 里面 有指定 文本标签的就是文本元素 如张三 )
<!DOCTYPE persons[
<!ELEMENT name(#PCDATA)>//文本元素
<!ELEMENT age(#PCDATA)>
]>
混合元素 简单来说就是 一个person节点里带有很多不一样的元素
<!ELEMENT person(name,age,contact)>//混合元素
0或1:? 如现在我们的文本当中 就一个 name
<!ELEMENT persons(name?)
0或N: *
<!ELEMENT persons(age*)
1或N:+:
<!ELEMENT persons(person+) //这里指定的就是一个混合元素 (简单说里面的+号就是 指定了 这个元素 他不止一个)
完整定义
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons[
<!ELEMENT persons(person+)>
<!ELEMENT person(name,age,contact)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT age(#PCDATA)>
<!ELEMENT phone(#PCDATA)>
<!ELEMENT email(#PCDATA)>
<!ELEMENT contact(#phone)>
]>
<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>
语法:如
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persons[
<!ATTLIST person
pid ID #REQUIRED //ID 是必填 且不可重复的
sex (男|女) '男' // 性别 为男或女 如果不填 就默认 为(男)
qq CDATA #IMPLIED //QQ 可填可不
parent IDREF #IMPLIED
>
]
属性类型type:
ID
(男|女)
CDATA
IDREF
属性描述:
默认值
主意:👻只有在定义type为男|女 类型时,desc才可以用默认值的方式
完整代码:
<?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 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>