JAVADREAM

          hackiller
          數(shù)據(jù)加載中……
          J2EE復(fù)習(xí)(二)XML(上)

          XML(eXtensible Markup Language)簡(jiǎn)介
          XML 可擴(kuò)展標(biāo)記語(yǔ)言
          XML是一種您可以用來(lái)創(chuàng)建自己的標(biāo)記的標(biāo)記語(yǔ)言。
          XML由萬(wàn)維網(wǎng)協(xié)會(huì)(W3C)創(chuàng)建

          XML和Html比較
           比較內(nèi)容    HTML  XML
           可擴(kuò)展性  不具有擴(kuò)展性  是元標(biāo)記言,可用于定義新的標(biāo)記語(yǔ)言
           側(cè)重點(diǎn)  側(cè)重于如何表現(xiàn)信息  側(cè)重于如何結(jié)構(gòu)化地描述信息
           語(yǔ)法要求 不要求標(biāo)記的嵌套、配對(duì)等,不要求標(biāo)記之間具有一定的順序  嚴(yán)格要求嵌套、配對(duì),并遵循DTD的樹形結(jié)構(gòu)
           可讀性及可維護(hù)性  難于閱讀、維護(hù)

           結(jié)構(gòu)清晰,便于閱讀、維

          護(hù)

           數(shù)據(jù)和顯示的關(guān)系  內(nèi)容描述與顯示方式整合為一體 內(nèi)容描述與顯示方式相分離
           編輯及瀏覽工  已有大量的編輯、瀏覽工具  編輯、瀏覽工具

           

           

           

           

           

           

           

           

           

           

           


          XML優(yōu)勢(shì)
          數(shù)據(jù)重用
          數(shù)據(jù)和表示分離
          可擴(kuò)展性
          語(yǔ)意信息

          XML 聲明

          <?xml version="1.0" encoding="UTF-8"?>

          XML聲明一般是XML文檔的第一行
          XML聲明由以下幾個(gè)部分組成:
          version - -文檔符合XML1.0規(guī)范
          encoding - -文檔字符編碼,默認(rèn)為"UTF-8"

          遵循如下規(guī)則的XML文檔稱為結(jié)構(gòu)完整:
          語(yǔ)法規(guī)范
          1.必須有XML聲明語(yǔ)句
          2.<?xml version="1.0" encoding=“GBK"?>
          3.必須有且僅有一個(gè)根元素
          4.標(biāo)記大小寫敏感
          5.屬性值用引號(hào)
          6.標(biāo)記成對(duì)
          7.空標(biāo)記關(guān)閉
          8.元素正確嵌套
          元素語(yǔ)法
          1.名稱中可以包含字母、數(shù)字或者其它字符
          2.名稱不能以數(shù)字和"_"(下劃線)開頭
          3.不能以XML/xml/Xml/…開頭
          4.名稱中不能含空格
          5.名稱中不能含冒號(hào)(注:冒號(hào)留給命名空間使用)

          文本內(nèi)容PCDATA
          XML支持Unicde字符集,因此可以在文本中包含字母/數(shù)字/標(biāo)點(diǎn)/符號(hào)等。
          注意:因?yàn)閄ML使用<,>,和&界定標(biāo)記,如果在文本中包含有這些字符,必須使用實(shí)體替代。

          CDATA
          1.在特殊的標(biāo)記CDATA下,所有的標(biāo)記、實(shí)體引用都被忽略,而被XML處理程序一視同仁地當(dāng)作字符數(shù)據(jù)看
          待。CDATA的形式:〈![CDATA[文本內(nèi)容]]〉
          2.用于把整段文本解釋為純字符數(shù)據(jù)而不是標(biāo)記的情況。包含大量<、>、&或者"字符。CDATA節(jié)中的所有
          字符都會(huì)被當(dāng)作元素字符數(shù)據(jù)的常量部分,而不是XML標(biāo)記。
          3.可以輸入任意字符(除]]>外)
          4.不能嵌套使用CDATA

          CDATA與PCDATA
          PCDATA是被解析器解析的文本。文本內(nèi)的標(biāo)簽會(huì)被當(dāng)作標(biāo)記,實(shí)體會(huì)被展開。
          CDATA是不被解析器解析的文本。文本內(nèi)的標(biāo)簽不會(huì)被當(dāng)作標(biāo)記,實(shí)體不會(huì)被展開。

          XML注釋
          注釋內(nèi)容中不要出現(xiàn)--;
          不要把注釋放在標(biāo)記中間;
          <Name <!--the name-->>TOM</Name>
          注釋不能嵌套;
          可以在除標(biāo)記以外的任何地方放注釋。

          XML屬性
          1.屬性值用雙引號(hào)(")或單引號(hào)(')分隔(如果屬性值中有',用"分隔;有",用'分隔)
          2.一個(gè)元素可以有多個(gè)屬性,它的基本格式為:<元素名 屬性名="屬性值">
          3.特定的屬性名稱在同一個(gè)元素標(biāo)記中只能出現(xiàn)一次
          4.屬性值不能包括<, >, &

           XML文檔中的屬性有兩個(gè)規(guī)則
          1.屬性必須有值
          2.那些值必須用引號(hào)括起。您可以使用單引號(hào),也可以使用雙引號(hào),但要始終保持一致。

           命名空間---namespace
          為XML中的元素設(shè)定一個(gè)唯一的標(biāo)識(shí)名稱
          與URI結(jié)合來(lái)定義一個(gè)唯一標(biāo)識(shí)
          去除了XML文件中可能存在的元素名重疊的問(wèn)題

           DOCTYPE
          文檔類型聲明,緊跟XML聲明之后,包含所有實(shí)體聲明
          語(yǔ)法:
          <?xml version="1.0"?>
          <!DOCTYPE  根元素標(biāo)記名 [
              <!--實(shí)體聲明-->
          ]>

           實(shí)體引用
          為了避免把字符數(shù)據(jù)和標(biāo)記中需要用到的一些特殊符號(hào)相混淆,XML還提供了一些有用的實(shí)體引用。
          作用:避免重復(fù)輸入
          自定義實(shí)體語(yǔ)法:
          <!DOCTYPE Book(根元素)[    
          <!ENTITY chapter1(實(shí)體名) "玄幻小說(shuō)"(實(shí)體內(nèi)容)>
          <!ENTITY chapter2 "電影記錄">
          ]>
          引用已定義的實(shí)體:&實(shí)體名;

          DTD
          內(nèi)部的 DOCTYPE 聲明:
          假如 DTD 被包含在您的 XML 源文件中,它應(yīng)當(dāng)通過(guò)下面的語(yǔ)法包裝在一個(gè) DOCTYPE 聲明中:
          <!DOCTYPE 根元素 [元素聲明]>帶有 DTD 的 XML 文檔實(shí)例(請(qǐng)?jiān)?IE5 以及更高的版本打開,并選擇查看源代碼):

           1<?xml version="1.0"?>
           2<!DOCTYPE note [
           3  <!ELEMENT note (to,from,heading,body)>

           4  <!ELEMENT to      (#PCDATA)>
           5  <!ELEMENT from    (#PCDATA)>
           6  <!ELEMENT heading (#PCDATA)>
           7  <!ELEMENT body    (#PCDATA)>
           8]>
           9<note>

          10  <to>George</to>
          11  <from>John</from>
          12  <heading>Reminder</heading>
          13  <body>Don't forget the meeting!</body>
          14</note>

          以上 DTD 解釋如下:
          !DOCTYPE note (第二行)定義此文檔是 note 類型的文檔。
          !ELEMENT note (第三行)定義 note 元素有四個(gè)元素:"to、from、heading,、body"
          !ELEMENT to (第四行)定義 to 元素為 "#PCDATA" 類型
          !ELEMENT from (第五行)定義 frome 元素為 "#PCDATA" 類型
          !ELEMENT heading (第六行)定義 heading 元素為 "#PCDATA" 類型
          !ELEMENT body (第七行)定義 body 元素為 "#PCDATA" 類型

          外部文檔聲明:
          假如 DTD 位于 XML 源文件的外部,那么它應(yīng)通過(guò)下面的語(yǔ)法被封裝在一個(gè) DOCTYPE 定義中:
          <!DOCTYPE 根元素 SYSTEM "文件名">這個(gè) XML 文檔和上面的 XML 文檔相同,但是擁有一個(gè)外部的 DTD: (在 IE5 中打開,并選擇“查看源代碼”命令。)

          1<?xml version="1.0"?>
          2<!DOCTYPE note SYSTEM "note.dtd">
          3<note>
          4<to>George</to>
          5<from>John</from>
          6<heading>Reminder</heading>
          7<body>Don't forget the meeting!</body>
          8</note> 

          聲明一個(gè)元素:
          在 DTD 中,XML 元素通過(guò)元素聲明來(lái)進(jìn)行聲明。元素聲明使用下面的語(yǔ)法:

          <!ELEMENT 元素名稱 類別>

           或者

          <!ELEMENT 元素名稱 (元素內(nèi)容)>空元素

           空元素通過(guò)類別關(guān)鍵詞EMPTY進(jìn)行聲明:

          <!ELEMENT 元素名稱 EMPTY>

          只有 PCDATA 的元素:
          只有 PCDATA 的元素通過(guò)圓括號(hào)中的 #PCDATA 進(jìn)行聲明:

          <!ELEMENT 元素名稱 (#PCDATA)>

          帶有任何內(nèi)容的元素:
          通過(guò)類別關(guān)鍵詞 ANY 聲明的元素,可包含任何可解析數(shù)據(jù)的組合:

          <!ELEMENT 元素名稱 ANY>

          帶有子元素(序列)的元素:
          帶有一個(gè)或多個(gè)子元素的元素通過(guò)圓括號(hào)中的子元素名進(jìn)行聲明:

          <!ELEMENT 元素名稱 (子元素名稱 1)>

                或者

           <!ELEMENT 元素名稱 (子元素名稱 1,子元素名稱 2,..)>

          當(dāng)子元素按照由逗號(hào)分隔開的序列進(jìn)行聲明時(shí),這些子元素必須按照相同的順序出現(xiàn)在文檔中。在一個(gè)完整的聲明中,子元素也必須被聲明,同時(shí)子元素也可擁有子元素。
          聲明只出現(xiàn)一次的元素:

          <!ELEMENT 元素名稱 (子元素名稱)>

          聲明最少出現(xiàn)一次的元素:

          <!ELEMENT 元素名稱 (子元素名稱+)>

          聲明出現(xiàn)零次或多次的元素:

          <!ELEMENT 元素名稱 (子元素名稱*)>

          聲明出現(xiàn)零次或一次的元素:

          <!ELEMENT 元素名稱 (子元素名稱?)>

           聲明“非.../既...”類型的內(nèi)容:

          <!ELEMENT note (to,from,header,(message|body))>

          上面的例子聲明了:"note" 元素必須包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素。
          聲明混合型的內(nèi)容:

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

          上面的例子聲明了:"note" 元素可包含出現(xiàn)零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。

           XML Schema 簡(jiǎn)介
          XML Schema 是基于 XML 的 DTD 替代者。
          XML Schema 可描述 XML 文檔的結(jié)構(gòu)。
          XML Schema 語(yǔ)言也可作為 XSD(XML Schema Definition)來(lái)引用。
          XML Schema 是 DTD 的繼任者

          XML Schema 相對(duì)于 DTD 的優(yōu)點(diǎn)如下:
          XML Schema 可針對(duì)未來(lái)的需求進(jìn)行擴(kuò)展
          XML Schema 更完善,功能更強(qiáng)大
          XML Schema 基于 XML 編寫
          XML Schema 支持?jǐn)?shù)據(jù)類型
          XML Schema 支持命名空間

           下面這個(gè)例子是一個(gè)名為 "note.xsd" 的 XML Schema 文件,它定義了下面那個(gè) XML 文檔的元素:

           1<?xml version="1.0"?>
           2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           3targetNamespace="http://www.w3school.com.cn"
           4xmlns="http://www.w3school.com.cn"
           5elementFormDefault="qualified">
           6<xs:element name="note">
           7    <xs:complexType>
           8      <xs:sequence>
           9 <xs:element name="to" type="xs:string"/>
          10 <xs:element name="from" type="xs:string"/>
          11 <xs:element name="heading" type="xs:string"/>
          12 <xs:element name="body" type="xs:string"/>
          13      </xs:sequence>
          14    </xs:complexType>
          15</xs:element>
          16
          17</xs:schema>

          對(duì) XML Schema 的引用
          此文件包含對(duì) XML Schema 的引用:

           1<?xml version="1.0"?>
           2<note
           3xmlns="http://www.w3school.com.cn"

           4xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           5xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
           6
           7<to>George</to>

           8<from>John</from>
           9<heading>Reminder</heading>
          10<body>Don't forget the meeting!</body>
          11</note> 

          相關(guān)資料鏈接
          J2EE復(fù)習(xí)(一)HTML
          J2EE復(fù)習(xí)(二)XML(上)
          J2EE復(fù)習(xí)(二)XML(下)--XML解析
          J2EE復(fù)習(xí)(三)JavaScript

          posted on 2009-04-09 09:33 hackiller 閱讀(1319) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE第一次復(fù)習(xí)

          主站蜘蛛池模板: 平昌县| 剑川县| 新疆| 吕梁市| 奎屯市| 句容市| 兴仁县| 红原县| 宜黄县| 轮台县| 庆城县| 万山特区| 拉孜县| 遂川县| 北安市| 宾川县| 辽源市| 盐津县| 同江市| 会同县| 石景山区| 紫金县| 体育| 牙克石市| 营山县| 岑巩县| 手游| 仙游县| 云梦县| 南华县| 山丹县| 景洪市| 略阳县| 泸西县| 贵阳市| 泌阳县| 随州市| 瑞金市| 吉木乃县| 宜君县| 荣成市|