xml(二)

來源:互聯網
上載者:User

 

Xml文檔結構

<?xml version=”1.0” [遵循的規範為1.0] encoding=”utf-8”[編碼集] standalone=”yes”[是否為獨立的xml文檔]  ?>

<!DOCTYPE 根標記的名稱 SYSTEM “dtd1.dtd”>dtd的引用

<根標記>

       <子標記></子標記>

       。。。。。。。

</根標記>

 

dtd1.dtd為了定義能在xml文檔中出現的元素有哪些、元素的屬性、元素的順序

<!xml version=”1.0” encoding=”utf-8”?>

<!ELEMENT元素的名稱 元素的類型>-------定義元素

<!ATTLIST 元素名 屬性名稱 類型 keyword[是必須選的還是可以不選] “預設值”>--------定義元素的屬性

<!ELEMENT br EMPTY>---br不能有內容,可以為<br/>單標記或者<br></br>中間不能有內容

<!ELEMENT 元素名 (#PCDATA)>-------PCDATA定義的元素的裡面是文本,不能包含子標籤

<!ELEMENT  學生 (學號,姓名)>--------學生裡面只能出現學號和姓名這兩個子標記

<!ELEMENT  學生 (#PCDATA|學號|姓名)*>--------姓名和學號可以無序的出現多次,要是沒有*那麼就是互斥

 

定義混合內容元素

<!ELEMENT 父元素名 (#PCDATA|子項目1|子項目2|子項目3…..)*>

<?xml version="1.0" encoding="GB2312"?>

<!ELEMENT 喜歡的遊戲 (#PCDATA | 遊戲)*>

<!ELEMENT 遊戲 (#PCDATA | 遊戲名稱 | 遊戲類型)*>

<!ELEMENT 遊戲名稱 (#PCDATA)>

<!ELEMENT 遊戲類型 (#PCDATA)>

<!xml version=”1.0” encoding=”utf-8”?>

<喜歡的遊戲>

       這是我喜歡的遊戲

       <遊戲>

       <遊戲名稱>

              這是遊戲名稱,名稱和類型可以互換位置,可以出現多次

       </遊戲名稱>

       <遊戲類型>

              這是遊戲類型

       </遊戲類型>

 

</遊戲>

</喜歡的遊戲>

 

<書籍列表>

       <電腦書籍>

              <書名>完全</書名>

</電腦書籍>

<電腦書籍>

              <價格></價格>

</電腦書籍>

 

</書籍列表>

 

ATTLIST 元素名 屬性名稱 類型 keyword “預設值“屬性名稱 類型 keyword “預設值“…>

 

#REQUIRED 該屬性是必須的

#IMPLIED 該屬性可以沒有

#FIXED  該屬性有固定值,不論設定或不設定,都為固定值

Eg:

<!ELEMENT 作者 地址 CDATA  #FIXED  “保定市”>

<!ATTLIST  作者 性別 (男|女)  “男”>---------枚舉類型,預設為男,只能在男女之間選

<!ELEMENT 讀者 EMPTY >

<!ATTLIST  讀者  書號  IDREF  #IMPLIED>--------讀者所讀書的書號

<!ATTLIST  讀者  書號  IDREFS  #IMPLIED>-------------在xml中可以寫出多本書的書號

<讀者 書號=”it0001  it0002 ”>

子項目之間存在的邏輯關係:

1、  有序的子項目

用英文逗號(,)作為子項目之間的分隔字元,則子

元素之間必須遵守所定義的順序。

2、  互斥的子項目

互斥的子項目表明一系列子項目之間只能出現

其中一次。互斥子項目使用豎線(|)分隔,以豎

線(|)分隔的多個元素只能出現其中之一。

 

3、  無序的子項目

<!ELEMENT  學生 (#PCDATA|學號|姓名)*>--------姓名和學號可以無序的出現多次,要是沒有*那麼就是互斥

 

子項目出現的頻率:

+: 表明子項目可以出現1次或多次

*:  表明子項目可以出現0次或多次

?:  表明子項目可以出現0次或1次

 

定義任意類型的元素

<!ELEMENT   元素名   ANY>

定義字串內容的元素

<!ELEMENT   元素名   #PCDATA>

 

定義屬性類型

屬性類型

含義

CDATA

值為字串資料

(en1|en2|..)

此值是枚舉列表中的一個值

ID

該屬性值必須是有效地標識符,在XML文檔時唯一的

IDREF

值為另外一個元素的 id屬性值

IDREFS

值必須引用自多個已經有的ID屬性值,多個ID屬性值用空格隔開

NMTOKEN

值為合法的 XML 名稱

NMTOKENS

值為多個合法的 XML 名稱的列表

ENTITY

值是一個外部實體,片支援

ENTITIES

值是一個實體列表,多個實體之間以空格隔開

NOTATION

該屬性值是在DTD中聲明過的符號,這個是到期的,不要使用

 

 

定義實體作用

1、提高代碼的敷用,方便修改,維護XML文檔

2、使用某些特殊的符號,這些特殊的符號可能會使XML解析器混淆

3、減少字元輸入量,如果某個字串特別長,而且需要經常使用,則可以定義為實體

 

content  “詳細的內容介紹”

&content;------實體引用,相當於字串“詳細的內容介紹”

 

實體的分類

1、按照實體的具體內容來分類,實體可分為可解析與不可解析兩類

2、按照邏輯儲存來分類,實體可分為內部實體與外部實體兩類

3、按照使用的範圍來分類,實體可分為一般實體與參數實體兩類。

 

定義普通實體

<!ENTITY  實體名  “實體值”>------內部實體,一般的普通實體

<!ENTITY  title   “所有電腦書籍的列表”>

使用實體的文法:

       &實體名;

       &title;

定義參數實體

<!ENTITY  % 實體名  “實體值”>

使用實體的文法:

       %實體名

外部普通實體

<! ENTITY    實體名  SYSTEM  “實體值所在檔案的URI”>

<! ENTITY   實體名  PUBLIC “公用實體標識名”  “實體值所在檔案的URI”>

外部參數實體

<!ENTITY %實體名 SYSTEM|PUBLIC[“公用實體標識名”]  “實體值所在檔案的URI”>

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.