国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

有效的XML: DTD(文檔類型定義)介紹

原創(chuàng) 2017-01-11 14:15:02 600
摘要:文檔類型定義和命名空間  有效(Valid)的XML文檔:  首先,XML文檔是個(gè)格式正規(guī)的(Well-formed)XML文檔;(見格式正規(guī)的XML:語(yǔ)法 屬性 實(shí)體 處理指令 樣式單 CDATA節(jié))?! ∑浯?,需要滿足DTD的要求,這樣的XML文檔稱為有效的(Valid)XML文檔。  DTD  DTD,即文檔類型定義——Document Type Definition?!?

文檔類型定義和命名空間

  有效(Valid)的XML文檔:

  首先,XML文檔是個(gè)格式正規(guī)的(Well-formed)XML文檔;(見格式正規(guī)的XML:語(yǔ)法 屬性 實(shí)體 處理指令 樣式單 CDATA節(jié))。

  其次,需要滿足DTD的要求,這樣的XML文檔稱為有效的(Valid)XML文檔。

 

 

DTD

  DTD,即文檔類型定義——Document Type Definition。

  DTD用來(lái)描述XML文檔的結(jié)構(gòu),

  一個(gè)DTD文檔包含:

  元素(ELEMENT)的定義規(guī)則;

  元素之間的關(guān)系規(guī)則;

  屬性(ATTLIST)的定義規(guī)則;

  可使用的實(shí)體(ENTITY)或符號(hào)(NOTATION)規(guī)則。

 

 

DTD文檔與XML文檔實(shí)例的關(guān)系

  類與對(duì)象;

  數(shù)據(jù)庫(kù)表結(jié)構(gòu)與數(shù)據(jù)記錄;

 

  有了DTD,每個(gè)XML文件可以攜帶一個(gè)自身格式的描述。

  有了DTD,不同組織的人可以使用一個(gè)通用DTD來(lái)交換數(shù)據(jù)。

  應(yīng)用程序可以使用一個(gè)標(biāo)準(zhǔn)DTD校驗(yàn)從外部世界接收來(lái)的XML數(shù)據(jù)是否有效。

  可以使用DTD校驗(yàn)自己的XML數(shù)據(jù)。

 

 

如何生成DTD文檔

  DTD文檔有三種應(yīng)用形式:

  1.內(nèi)部DTD文檔

<!DOCTYPE 根元素[定義內(nèi)容]>

 

  2.外部DTD文檔

<!DOCTYPE 根元素 SYSTEM "DTD文件路徑">

 

  3.內(nèi)外部DTD文檔結(jié)合

<!DOCTYPE 根元素 SYSTEM "DTD文件路徑" [定義內(nèi)容]>

 

 

 

內(nèi)部DTD 

   一個(gè)內(nèi)部DTD的例子:

  上半部分是DTD,下面是XML文檔,文檔要符合DTD。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE poem [
   <!ELEMENT poem (author, title, content)>
   <!ELEMENT author (#PCDATA)>
   <!ELEMENT title (#PCDATA)>
   <!ELEMENT content (#PCDATA)>]><!--為元素poem定義了三個(gè)子元素author title content,
這三個(gè)元素必須要出現(xiàn)并且必須按照這個(gè)順序
少元素不行,多元素也不行--><!--指明author,title,content里面的內(nèi)容是字符串類型--><poem>
   <author>王維</author>
   <title>鹿柴</title>
   <content>空山不見人,但聞人語(yǔ)聲。返景入深林,復(fù)照青苔上。</content></poem>

   

  上面的文檔就是格式良好,并且有效的。

  詳見其中的注釋。

  #PCDATA(Parsed Character Data) ,可解析的字符數(shù)據(jù),即字符串。

 

  上面部分是DTD,在下面編寫XML文檔時(shí),如果不符合其DTD規(guī)范,用XMLSpy做檢查的時(shí)候,是well-formed的,但是卻不是valid的。

  比如根元素寫:

<Students></Students>

 

  Validate檢查的時(shí)候就會(huì)報(bào)錯(cuò),根元素和DTD中的poem不符。

 

 

外部DTD

  上面是一個(gè)內(nèi)部DTD的例子,下面用一個(gè)外部的DTD:

  首先,新建一個(gè)DTD文檔,文件名叫dtd_1.dtd,內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?><!ELEMENT poem (author, title, content)><!ELEMENT author (#PCDATA)><!ELEMENT title (#PCDATA)><!ELEMENT content (#PCDATA)>

 

  然后,新建一個(gè)XML文檔。

  如果只寫XML元素內(nèi)容,那么它是一個(gè)格式良好的,卻不是有效的文檔,因?yàn)檎也坏紻TD。

  需要加入外部DTD文件的名稱(同一個(gè)路徑下只給出文件名即可)。

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE poem SYSTEM "dtd_1.dtd"><poem>
   <author>王維</author>
   <title>鹿柴</title>
   <content>空山不見人,但聞人語(yǔ)聲。返景入深林,復(fù)照青苔上。</content></poem>


 

 

內(nèi)外部DTD結(jié)合

      DTD的內(nèi)容也可以有些放在外部,有些放在內(nèi)部,如下:

  文件dtd_2.dtd

<?xml version="1.0" encoding="UTF-8"?><!ELEMENT author (#PCDATA)><!ELEMENT title (#PCDATA)>

  XML文檔:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE poem SYSTEM "dtd_2.dtd"[
<!ELEMENT poem (author, title, content)><!ELEMENT content (#PCDATA)>]><poem>
   <author>王維</author>
   <title>鹿柴</title>
   <content>空山不見人,但聞人語(yǔ)聲。返景入深林,復(fù)照青苔上。</content></poem>


發(fā)佈手記

熱門詞條