JAVADREAM

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

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

          XML和Html比較
           比較內(nèi)容    HTML  XML
           可擴(kuò)展性  不具有擴(kuò)展性  是元標(biāo)記言,可用于定義新的標(biāo)記語言
           側(cè)重點(diǎn)  側(cè)重于如何表現(xiàn)信息  側(cè)重于如何結(jié)構(gòu)化地描述信息
           語法要求 不要求標(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ò)展性
          語意信息

          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)完整:
          語法規(guī)范
          1.必須有XML聲明語句
          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.元素正確嵌套
          元素語法
          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é)合來定義一個(gè)唯一標(biāo)識(shí)
          去除了XML文件中可能存在的元素名重疊的問題

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

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

          DTD
          內(nèi)部的 DOCTYPE 聲明:
          假如 DTD 被包含在您的 XML 源文件中,它應(yīng)當(dāng)通過下面的語法包裝在一個(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)通過下面的語法被封裝在一個(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 元素通過元素聲明來進(jìn)行聲明。元素聲明使用下面的語法:

          <!ELEMENT 元素名稱 類別>

           或者

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

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

          <!ELEMENT 元素名稱 EMPTY>

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

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

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

          <!ELEMENT 元素名稱 ANY>

          帶有子元素(序列)的元素:
          帶有一個(gè)或多個(gè)子元素的元素通過圓括號(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 語言也可作為 XSD(XML Schema Definition)來引用。
          XML Schema 是 DTD 的繼任者

          XML Schema 相對(duì)于 DTD 的優(yōu)點(diǎn)如下:
          XML Schema 可針對(duì)未來的需求進(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 閱讀(1321) 評(píng)論(0)  編輯  收藏 所屬分類: J2EE第一次復(fù)習(xí)

          主站蜘蛛池模板: 蒲城县| 津南区| 宜黄县| 泽普县| 年辖:市辖区| 集贤县| 常德市| 凌源市| 隆子县| 改则县| 灵台县| 和静县| 扎赉特旗| 丹棱县| 澄迈县| 双峰县| 江陵县| 青浦区| 乌苏市| 绥江县| 禹城市| 任丘市| 清水县| 钟山县| 满洲里市| 蓬溪县| 武邑县| 嘉善县| 理塘县| 怀安县| 通许县| 汉中市| 法库县| 翁源县| 乌兰县| 高雄市| 东城区| 奇台县| 同仁县| 班戈县| 林芝县|