XML與DTD(夠用了)

 

1: 概述數據庫

1.1 什麼是XML瀏覽器

1.2 三個重點網絡

1.3規則佈局

1.4 經常使用轉義this

2: Xml聲明編碼

XML 中,空格會被保留spa

XML LF 存儲換行xml

3:Xml標籤對象

4:Xml元素utf-8

5:XML 屬性

6:驗證XML

7:最佳命名習慣

8:XML進階

 

 

1: 概述

1.1 什麼是XML

   XML指可擴展標記語言。它是從標準通用標記語言派生的基於文本的標記語言(SGML).

1.2 三個重點

 XML是可擴展的XML容許你建立本身的自描述性的標籤,或語言,適合您的應用程序.

 XML進行數據 : 不存在它:XML容許你不管存儲將如何呈現這些數據.

 XML是一個公共標準 : XML是由一個組織開發的名爲萬維網聯盟(W3C),並能夠做爲一個開放的標準.

 1.3規則

基本語法:

  1. xml文檔的後綴名 .xml

  2. xml第一行必須定義爲文檔聲明

  3. xml文檔中有且僅有一個根標籤

  4. 屬性值必須使用引號(單雙均可)引發來

  5. 標籤必須正確關閉

  6. xml標籤名稱區分大小寫 (標籤 屬性)

          7. xml只容許只有一個根(Root)標籤

          8. xml標籤的屬性也是區分大小寫的

      1.4 經常使用轉義

 

     

2: Xml聲明

  xml分爲兩個部分, xml聲明 xml標籤

 版本:

 編碼

 是否依賴於信息從外部源,諸如外部的文檔類型定義(DTD)的語法分析程序,其內容。默認值被設置爲無。將其設置爲yes告訴處理器有須要解析的文件沒有外部聲明

 yes no

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>

xml註釋:

<!-- -->

XML 中,空格會被保留

Hello           Tove   ====>轉換爲 Hello Tove

XML 以 LF 存儲換行

  Windows 應用程序中,換行一般以一對字符來存儲:回車符(CR)和換行符(LF)。

  Unix Mac OSX 中,使用 LF 來存儲新行。

3:Xml標籤

完整閉合標籤

<address>這是正確的句法</address>

空標籤

<hr></hr> #或者 <hr/>

4:Xml元素

    能夠包含一個或者多個元素,這些元素容許兩種不一樣的賦值方法

<?xml version="1.0" encoding="UTF-8"?> <note>  <to>Tove</to>  <from>Jani</from>  <heading>Reminder</heading>  <body>Don't forget me this weekend!</body> </note>

5:XML 屬性

 屬性必須加引號

<person sex="female"> 或者這樣也能夠: <person sex='female'>

 多個屬性

<person name="tom" sex="female">

 儘可能使用元素代替屬性

 屬性不能包含多個值(元素能夠)

 屬性不能包含樹結構(元素能夠)

 屬性不容易擴展(爲將來的變化)

 數據庫中用於標識某個元組

 使用id表示某一組數據

<?xml version="1.0" encoding="utf-8"?> <messages>  <note id="501">    <to>Tove</to>      <from>Jani</from>      <heading>Reminder</heading>      <body>Don't forget me this weekend!</body>  </note>   </messages>

 

6:驗證XML

DTD驗證

 本地驗證: <!DOCTYPE note SYSTEM "Note.dtd">

 網絡驗證:<!DOCTYPE note PUBLIC "URL">

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE note SYSTEM "Note.dtd"> // 指定驗證的文件 <note>  <to>Tove</to>    <from>Jani</from>    <heading>Reminder</heading>    <body>Don't forget me this weekend!</body> </note>

schema驗證

XSD:描述

7:最佳命名習慣

 使名稱具備描述性。使用下劃線的名稱也很不錯:<first_name><last_name>

 名稱應簡短和簡單,好比:<book_title>,而不是:<the_title_of_the_book>

 避免 "-" 字符。若是您按照這樣的方式進行命名:"first-name",一些軟件會認爲您想要從 first 裏邊減去 name

 避免 "." 字符。若是您按照這樣的方式進行命名:"first.name",一些軟件會認爲 "name" 是對象 "first" 的屬性。

 避免 ":" 字符。冒號會被轉換爲命名空間來使用(稍後介紹)。

 顯示XML

 使用CSS

 使用XLAT

 8:XML進階

XML命名空間

 xmlns:f="http://www.w3cschool.cc/furniture"   f就是指定的命名空間

 Android中 佈局標籤就是使用的這種命名空間

CDATA數據

   對於某些數據須要直接按照文本形式處理的 @lt @gt 就不會處理

<![CDATA[ if (a < b && a < 0) then 具體數據  ]]>

XML 數據島

  XML 數據島是嵌入到 HTML 頁面中的 XML 數據。

 XML 數據島只在 Internet Explorer 瀏覽器中有效。

 

 

1: 基本使用

2:聲明元素

3 xml屬性

4:xml實體

 

    定義:  文檔類型定義(DTD)可定義合法的XML文檔構建模塊。它使用一系列合法的元素來定義文檔的結構。

 

 PCDATA:

PCDATA 的意思是被解析的字符數據(parsed character data)。

可把字符數據想象爲 XML 元素的開始標籤與結束標籤之間的文本。

PCDATA 是會被解析器解析的文本。這些文本將被解析器檢查實體以及標記。

 CDATA:

CDATA 是不會被解析器解析的文本。在這些文本中的標籤不會被看成標記來對待,其中的實體也不會被展開。

 XML外部 內部:

<!DOCTYPE tglib SYSTEM "URL|本地路徑">

<!DOCTYOE tglib PUBLICK "URL"> // 聲明爲公共的DTD文件

1: 基本使用

聲明DTD開始部分

<!DOCTYPE DTDNAME [    <!-- 具體的元素 屬性 實體--> ]>

 

2:聲明元素

 空元素

<! ELEMENT name EMPTY> # 實例 <!ELEMENT br EMPTY> <by/>

     多個元素

含有多個元素的元素,子元素必須連續聲明

<!ELEMENT name (att1,att2) # 實例 <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>

    PCDATA元素(能夠被解析爲元素的)

<!ELEMENT name (#PCDATA)> # 實例 <!ELEMENT body (#PCDATA)>

    帶有任何內容的元素

<!ELEMENT name ANY> # 實例 <!ELEMENT body ANY>

 聲明只出現一次的元素

<!ELEMENT element-name (child-name)> # 實例: <!ELEMENT note (message)>

聲明最少出現一次的元素 +

<!ELEMENT element-name (child-name+)> # 實例: <!ELEMENT note (message+)>

聲明出現零次或屢次的元素 *

<!ELEMENT element-name (child-name*)> # 實例: <!ELEMENT note (message*)>

聲明出現零次或一次的元素 ?

<!ELEMENT element-name (child-name?)> # 實例: <!ELEMENT note (message?)>

聲明 |可選內容

實例: <!ELEMENT note (message|body)>

聲明混合型的內容

實例: <!ELEMENT note (#PCDATA|to|from|header|message)*>

3 xml屬性

    格式

<!ATTLIST elename attname type value> #          元素名  屬性名   類型  屬性值 # 實例 <!ATTLIST User name CDATA  " "> # 這個" " 能夠不給 能夠給限定值 #REQUIRED #FIXED #IMPLIED

    提供的類型

類型

描述

CDATA

值爲字符數據 (character data)

(en1|en2|..)

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

ID

值爲惟一的 id

IDREF

值爲另一個元素的 id

IDREFS

值爲其餘 id 的列表

NMTOKEN

值爲合法的 XML 名稱

NMTOKENS

值爲合法的 XML 名稱的列表

ENTITY

值是一個實體

ENTITIES

值是一個實體列表

NOTATION

此值是符號的名稱

xml:

值是一個預約義的 XML

提供的屬性

解釋

屬性的默認值

#REQUIRED

屬性值是必需的

#IMPLIED

屬性不是必需的

#FIXED value

屬性值是固定的

   

    完整例子

<!ELEMENT Address EMPTY> <!ATTLIST Address street CDATA "" > # 應用 <Address street="幸福大街" />

     強制要求值 可選 固定值

<!ELEMENT Address EMPTY> <!ATTLIST Address street CDATA #REQUIRED > //street 這個屬性必須給出 # 實例 <Address street='xxx'/> <!ATTLIST Address street CDATA #FIXED "必須給出固定的值"> // <!ATTLIST Address street CDATA #IMPLIED > //可選

     列舉屬性值

DTD: <!ATTLIST payment type (check|cash) "cash"> # XML 例子: <payment type="check" /> <payment type="cash" />

    指定ID IDREF

<!ATTLIST User id ID #REQUIRED > // # <User id="101"/> <!ATTLIST User2 id IDREF #REQUIRED> <User2 id="101"> // 引用別人的ID <User2 id="101 102 103"> // 表示引用多個ID

4:xml實體

  定義

<!ENTITY entity-name value> # 實例 <!ENTITY name1  "tom"> <!ENTITY name2  "gory"> # 應用 <author>@name1;@name2</author>

相關文章
相關標籤/搜索