XML是一种用作网络数据传输的语言,它不同于HTML,HTML主要用来表现数据,而XML主要用来传输数据。
XML的知识点很多,它是一门比较复杂的语言。在这里要谈的只是冰山一角——XML的两种文档定义类型DTD和Schema。
1、为什么要用DTD(Document Type Definition)和Schema?
用过XML的都知道,常见XML里无非是一些节点标签。而这些标签的定义是用户自己定义的。这样在传输数据的时候,就会出现甲方读和乙方的XML表达格式不一样的情况,虽然要表达的内容是一样的,但是可能两个节点的顺序不一样。由此,定义了DTD和Schema规范,通过这种规范来验证XML书写是否规范化,这样达到统一编写和规范化的目的。这两种都被W3C作为标准规范。
2、什么叫有效的XML?
4、DTD举例
<!-- 这是一个DTD文件-->
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT Students (Student+)>
<!ELEMENT Student (name,age,email*)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ATTLIST Student
sid ID #REQUIRED
>
<!--这是一个根据上面的DTD文件编写的XML文件-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Students SYSTEM "student.dtd">
<Students>
<Student sid="123">
<name>Ziccy</name>
<age>20</age>
<email>ZICCY@hotmail.com</email>
</Student>
<Student sid="111">
<name>Lisa</name>
<age>19</age>
<email>Lay@hotmail.com</email>
</Student>
</Students>
5、Schema举例
<!--这是一个Schema规范文件-->
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/student"
xmlns:tns="http://www.example.org/student"
elementFormDefault="qualified">
<element name="Students">
<complexType>
<sequence>
<element name="Student" minOccurs="1" maxOccurs="2">
<complexType>
<sequence>
<element name="name" type="string"></element>
<element name="age" type="int"></element>
<element name="gender" type="string"></element>
</sequence>
<attribute name="sid" type="ID" use="required"></attribute>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
<!--这是一个根据Schema文件编写XML-->
<?xml version="1.0" encoding="UTF-8"?>
<Students xmlns="http://www.example.org/student"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/student student.xsd">
<Student sid="n1">
<name>Jasper</name>
<age>22</age>
<gender>M</gender>
</Student>
<Student sid="n2">
<name>Ziccy</name>
<age>22</age>
<gender>F</gender>
</Student>
</Students>
以上总结都是很基础的DTD和Schema举例