XML元素限定的意义:XML 用于数据交换,而标签又是可以任意定义的,为了让 XML 的编写者和使用者之间能正确交流----->需要对标签等约定.在 XML 中有两种约定方法 dtd 格式和 xsd 格式
DTD格式
- 介绍:DTD 是 Document Type Definition 的简写,规定好文档内容如何书写:那个元素是根,有那些子元素,元素有那些属性等。如果编写者和阅读者实现约定好,那么他们就能沟通
- 定义
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT person (name,pwd,age,birthday) >
<!ELEMENT name (#PCDATA)>
<!ELEMENT pwd ANY>
<!ELEMENT age ANY>
<!ELEMENT birthday ANY>
<!ATTLIST person id CDATA #REQUIRED>
- 使用
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person PUBLIC "http://www.xcu.edu.cn/person.dtd" "person.dtd" >
<person id="22">
<name>2>3</name>
<pwd/>
<age/>
<birthday/>
</person>
XSD格式
- 介绍:XSD 是 XML 格式对文档结构进行说明,对 DTD 进行了增强,例如添加数据类型支持。
XSD 的语法可以参考 https://www.w3school.com.cn/schema/schema_intro.asp。
我们学习的目标是能读懂它即可。 - 定义
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/person"
xmlns:tns="http://www.example.org/person" elementFormDefault="qualified">
<element name="person">
<complexType>
<sequence>
<element name="name" type="string"></element>
<element name="pwd" type="string"></element>
<element name="age" type="integer"></element>
<element name="birthday" type="date"></element>
</sequence>
<attribute name="id" type="integer" use="required"></attribute>
</complexType>
</element>
</schema>
- 使用
<?xml version="1.0" encoding="UTF-8"?>
<person id="100" xmlns="http://www.example.org/person"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/person person.xsd ">
<name>name</name>
<pwd>pwd</pwd>
<age>0</age>
<birthday>2001-01-01</birthday>
</person>