1.XML約束
概念:我們編寫文檔來約束一個XML文檔的書寫規範,這稱之爲XML約束。
約束技術分類:
- XML DTD (documnet type Definition)
- XML Schema
一、DTD的基本概念:
document type definition 文檔類型定義
DTD文件一般和XML文件配合使用,主要是爲了約束XML文件。
XML文件引入DTD文件,這樣XML可以自定義標籤,但又受到DTD文件的約束。
如下bookstore.xml
<?xml version="1.0" encoding="gb2312" standalone="no" ?>
<bookstore>
<book>
<name>thinking in c++</name>
<author>Bruce Eckel</author>
<price>20</price>
</book>
</bookstore>
1.1 DTD約束語法
基本語法:
<!ELEMENT 元素名 類型>
- 1
我們以上面的bookstore爲例,編寫如下DTD文件,bookstore.dtd:
<!ELEMENT bookstore (book+)>
<!ELEMENT book (name,author,price)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT price (#PCDATA)>
PCDATA 全稱爲Parsed CDATA
解析字符數據
第一行表示根元素爲bookstore,子元素爲book,後面的”+”表示子元素爲1或者多個。
- 第二行表示學生的子元素爲書名,作者,價格
- 書名,作者,價格下面沒有子元素了,那麼#PCDATA表示名字裏面可以放任意文本。
在bookstore.xml
文件l裏面引入bookstore.dtd
文件,代碼如下:
<?xml version="1.0" encoding="gb2312" standalone="no" ?>
<!--引入dtd文件,約束這個xml-->
<!DOCTYPE bookstore SYSTEM "bookstore.dtd">
<bookstore>
<book>
<name>thinking in c++</name>
<author>Bruce Eckel</author>
<price>20</price>
</book>
</bookstore>
引入中寫的:SYSTEM,表示當前的DTD文件是本地的
如果寫的是PUBLIC,則表示引入的DTD文件是來自於網絡的.
對XML進行校驗,現在可以直接使用IDE進行智能校驗 下面是eclipse
正確形式: