为了使XML文档规范化,对XML文档的书写进行约束
XML DTD
XML文档(test.xml)
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE books SYSTEM "books.dtd">
<books>
<book>
<name>java</name>
<price>$16</price>
</book>
</books>
DTD约束文档(books.dtd)
<!ELEMENT books (book)> <!ELEMENT book (name,price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)>
也可以写在一起:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE users [ <!ELEMENT users (user*)> <!ELEMENT user (id,username,password,email,birthday)> <!ELEMENT id (#PCDATA)> <!ELEMENT username (#PCDATA)> <!ELEMENT password (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT birthday (#PCDATA)> ]> <users>
<user> <id>1</id> <username>1</username> <password>1</password> <email>1</email> </user> </users>
引入外部DTD
本地DTD<!DOCTYPE root-element SYSTEM "filename">
公共DTD<!DOCTYPE root-element PUBLIC "DTD-NAME" "URL">
元素声明
<!ELEMENT element-name category> 或 <!ELEMENT element-name (element-content)>
符号使用
category
属性定义
DTD属性
实体定义
实体定义有点像C中的宏定义
例:
定义实体:<!ENTITY string “Hello World!”>
使用实体:&string;
XML Schema
xml Schema使用预先定义好的元素和属性开发的,其本身就是XML文档(这与DTD不同),通过Schema再来规定XML实例文档。
由于一个XML实例文档可以引入多个Schema,为了避免元素重名问题,每个Schema都应有一个名称空间(这里使用URI来区分)。
在定义Schema文档时要用到预先定义的属性和元素,需要引入W3C组织规定的scheme,即xmlns="http://www.w3.org/2001/XMLSchema"
XML文档(test.xml)
<?xml version="1.0" encoding="utf-8"
?>
<books
xmlns="http://www.dy-pc.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.dy-pc.com test.xsd"
>
<book>
<name>java</name>
<price>$16</price>
</book>
</books>
约束文档(test.xsd)
<?xml version="1.0" encoding="utf-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNameSpace="http://www.dy-pc.com"
elementFormDefault = "qualified"
>
<element name="books">
<complexType>
<sequence>
<element name="book">
<squence>
<element name="name" type="string" />
<element name="price" type="double" />
</squence>
</element>
</sequence>
</complexType>
</element>
</schema>
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|