<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BloveSaga

    在希臘帕爾納斯山南坡上,有一個(gè)馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個(gè)大字: 認(rèn)識(shí)你自己!

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      34 隨筆 :: 12 文章 :: 122 評(píng)論 :: 0 Trackbacks
    XML文檔結(jié)構(gòu)包含下面三個(gè)部分:
    * 聲明部分,聲明該文檔是一個(gè)XML文檔.
    * 定義部分,定義XML數(shù)據(jù)的類型以及所使用的DTD(可選).
    * 內(nèi)容部分,用XML標(biāo)簽和注釋標(biāo)注過(guò)的文檔類容.

    聲明

    XML文檔以XML聲明開頭,聲明本文檔是一個(gè)XML文檔.一般這樣書寫:
    <? xml version encoding standalone?>
    定義符<?和?>表示這是一條給XML解析器的處理指令.雖然聲明這條語(yǔ)句是可有可無(wú)的,但考慮到以后的兼容,建議讀者還是寫上為好.隨著語(yǔ)言的進(jìn)一步發(fā)展,以后的瀏覽器如果知道文檔所用的XML版本的話,將是有好處的.這天語(yǔ)句必須全部用小寫.
    在上面的聲明中version表示的XML的標(biāo)準(zhǔn)版本號(hào).encoding表示的是文檔所用的編碼.standalone用來(lái)指定在XML文檔被解析之前,是否使用外部或內(nèi)部DTD,它的值只能是yes或no.如果為no,表示使用外部DTD;如果為yes表示使用內(nèi)部DTD;如果不使用DTD,則不使用這個(gè)屬性.
    看下面的實(shí)際例子:
    <?xml version="1.0" encoding="UTF-8" standalone="yes">
    在XML聲明之后,緊接著是類型定義部分,定義XML文檔中數(shù)據(jù)的類型.

    文檔定義類型(DTD)

    DTD是用來(lái)定義XML文檔內(nèi)容的結(jié)構(gòu)的,以便按統(tǒng)一的格式存儲(chǔ)信息.DTD規(guī)定了XML文檔中可以出現(xiàn)哪些元素;這些元素是必須的還是可選的;這些元素有什么屬性;以及它們之間的相互位置關(guān)系,等等.XML允許用戶為自己的應(yīng)用程序定義專用的DTD,這樣用戶就可以完全檢查文檔結(jié)構(gòu)和內(nèi)容的過(guò)程了.這一檢驗(yàn)過(guò)程稱為有效化,嚴(yán)格依從一個(gè)DTD的XML文檔被稱作有效文檔.
    創(chuàng)建DTD的過(guò)程與在數(shù)據(jù)庫(kù)里創(chuàng)建數(shù)據(jù)表是類似的.在DTD中,用戶定義用來(lái)表示數(shù)據(jù)的元素,然后規(guī)定數(shù)據(jù)的結(jié)構(gòu),并規(guī)定這個(gè)元素是可選的還是必須的,這就好比創(chuàng)建數(shù)據(jù)表的列;然后你把數(shù)據(jù)存入XML文檔,就好比添加數(shù)據(jù)表的記錄.
    XML文檔使用的元素可以在內(nèi)部DTD中定義,也可以在外部DTD中定義.

    內(nèi)部DTD
    DTD可以作為文檔的一部分直接放到文檔里面,這樣的DTD只能用于包含它的這個(gè)文檔,別的文檔就不能使用了.創(chuàng)建內(nèi)部DTD的語(yǔ)法如下:
    <!DOCTYPE rootelement
    [element and attribute declarations]
    >
    <!DOCTYPE標(biāo)識(shí)文檔類型定義的開始,屬性rootelement指明跟元素名字.

    為部DTD
    外部DTD是一個(gè)單獨(dú)的文件,存放XML文檔中可以使用的全部元素及屬性的定義.你可以在多個(gè)文檔中同時(shí)使用同一個(gè)DTD,以便保持多個(gè)文檔之間數(shù)據(jù)結(jié)構(gòu)的一致性。
    在XML文檔中引用外部DTD的語(yǔ)法如下:
    <!DOCTYPE rootelement [PUBLIC|SYSTEM] "name-of-file">
    其中,DOCTYPE標(biāo)識(shí)這是文檔類型定義部分;rootelement代表根元素;PUBLIC表示這個(gè)DTD是存放在公用服務(wù)器上的;SYSTEM表示這個(gè)DTD是存放在本地計(jì)算機(jī)系統(tǒng)上的;Name-of-file是被引用的DTD文件的名稱.

    DTD字符
    下表是DTD中使用的部分專用字符及其含義.
    DTD字符含義舉例描述
    ,指定順序中的"與"Firstname ,LastnameFirstname與Lastname,以此順序
    |"或"Firstname | LastnameFirstname或Lastname
    ?"可選項(xiàng)',只能出現(xiàn)一次Lastname?可以不出現(xiàn)Lastname,但如果使用,則只能出現(xiàn)一次
    ()用于組成元素(Firstname | Lastname),Address一個(gè)Firstname或Lastname元素必須出現(xiàn)在Address元素之前
    *該元素可以不出現(xiàn)也可以出現(xiàn)多次(Firstname | Lastname)*可以以任何順序出現(xiàn)任意個(gè)數(shù)Firstname或Lastname元素
    ? 該元素至少出現(xiàn)一次也可以出現(xiàn)多次(Firstname +)可以出現(xiàn)多個(gè)Firstname元素

    在DTD中定義元素

    元素是XML文件的基本組成部分.每個(gè)元素都是用標(biāo)簽標(biāo)識(shí)的一小段數(shù)據(jù).標(biāo)簽包括了元素的名字和屬性.
    XML允許用于創(chuàng)建自己的元素集.因此,元素名應(yīng)該取得容易記憶,并且最好有一定的含義,讓人一看到它,便對(duì)里面的數(shù)據(jù)有個(gè)大概的了解.XML是大小寫敏感的,所以要么你全用大寫,要么就一律用小寫.
    定義元素的語(yǔ)法如下:
    <!ELEMENT elementname content>
    在DTD中,你通過(guò)創(chuàng)建一個(gè)元素內(nèi)容模型(element content model)來(lái)精確的規(guī)定一個(gè)元素中是否喊有其它元素,可以出現(xiàn)多少次以及按什么順序出現(xiàn).如果元素中只包含別的元素,而不包含字符數(shù)據(jù),我們就說(shuō)它只含有元素內(nèi)容.

    XML中命名元素的規(guī)則
    * 元素名至少要含有一個(gè)字母(a-z或A-Z中的一個(gè))
    * 元素名可以用下劃線(_)或冒號(hào)( : )開頭.
    * 第一個(gè)字符后面可以是一個(gè)或多個(gè)字母,數(shù)字,連字符,下劃線或句號(hào),但不能是空格和定位符(tab),至于標(biāo)點(diǎn)符號(hào)只能使用連字符(-)和句號(hào)(.).

    對(duì)于完整的命名規(guī)則,請(qǐng)參看http://www.w3.org/XML/上的在線XML介紹

    元素類型
    元素有空元素,自由元素和容器元素三種(如下表:)
    元素類型語(yǔ)法 
    空元素(Empty)<!ELEMENT empty.element EMPTY><!ELEMENT empty.element EMPTY>
    自由元素(Unrestricted)<!ELEMENT any.element ANY><!ELEMENT any.element ANY>
    容器元素(Container)<!ELEMENT TITLE(#PCDATA)><!ELEMENT TITLE(#PCDATA)>
    PCDATA 表示 parsable character data,既可解析的字符數(shù)據(jù).為了避免將這一關(guān)鍵字與普通的元素名混淆起來(lái),在此關(guān)鍵字前加前綴字符#.

    分析下面的標(biāo)簽結(jié)構(gòu):
    <student>
    <firstname> Blove </firstname>
    <lastname> Saga </lastname>
    <rollno> 49 </rollno>
    <score> 70 </score>
    </student>
    要使上面的文檔生效,必須創(chuàng)建一個(gè)DTD,里面包含student,firstname,lastname,rollno,score等五個(gè)元素的定義.另外,還要規(guī)定這五個(gè)元素是必須的或可選的;以規(guī)定順序或任意排序;以及它們出現(xiàn)的次數(shù).用戶為這些規(guī)定編寫元素定義,每個(gè)元素的定義可能不同.
    譬如,如果firstname和lastname都是必需的元素,并且firstname要在lastname后面,那么DTD可以這樣編寫:
    <!ELEMENT student ?(firstname,lastname)><!--元素內(nèi)容-->
    <!ELEMENT firstname (#PCDATA)><!--元素內(nèi)容-->
    <!ELEMENT?lastname? (#CDATA)><!--元素內(nèi)容-->
    注意:
    數(shù)據(jù)類型#CDATA表示元素包含字符型數(shù)據(jù),解析器不解析這些數(shù)據(jù),其中的標(biāo)簽是不作為標(biāo)記的.
    數(shù)據(jù)類型#PCDATA表示元素包含字的數(shù)據(jù)將由解析器解析,其中的標(biāo)簽是被作為標(biāo)記處理.
    posted on 2006-06-13 16:42 藍(lán)色Saga 閱讀(504) 評(píng)論(0)  編輯  收藏 所屬分類: Basic XML

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久久久免费看成人影片| 无码人妻久久一区二区三区免费丨| 亚洲成色在线综合网站| 999国内精品永久免费视频| 亚洲免费网站观看视频| 国产自偷亚洲精品页65页| 亚洲啪啪免费视频| 国产亚洲精品精品精品| 亚洲卡一卡2卡三卡4卡无卡三| 啦啦啦在线免费视频| 免费一级不卡毛片| 亚洲国产成人精品无码区花野真一| 亚洲中文字幕不卡无码| 成年女人视频网站免费m| a毛片久久免费观看| 亚洲欧美成人综合久久久| 亚洲国产精品无码久久久不卡| 四虎成人免费网址在线| 日本在线看片免费| 一级黄色免费毛片| 最新亚洲卡一卡二卡三新区| 久久99国产亚洲高清观看首页| 情侣视频精品免费的国产| 国产精品入口麻豆免费观看| 国产99久久久久久免费看| 亚洲伊人久久大香线蕉AV| 久久亚洲免费视频| 亚洲国产精品综合久久一线| 日韩欧美一区二区三区免费观看| 99视频在线观看免费| 爱爱帝国亚洲一区二区三区| 亚洲专区一路线二| 亚洲邪恶天堂影院在线观看| 久久国产成人亚洲精品影院 | 猫咪免费人成在线网站| 日本亚洲免费无线码 | 亚洲精品99久久久久中文字幕| 欧美三级在线电影免费| 久久99国产综合精品免费| 99久久99这里只有免费的精品 | 在线观看免费人成视频色|