• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            笑看風(fēng)云淡

            寵辱不驚,看庭前花開(kāi)花落;去留無(wú)意,望天空云卷云舒
            posts - 96, comments - 48, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理
            很多朋友和我一樣初學(xué)XML,我也是一個(gè)初學(xué)XML的新手,讓我們?cè)谟懻撝袑W(xué)習(xí)XML.

             

            看過(guò)很多教程,大家還會(huì)問(wèn)同樣一個(gè)問(wèn)題,XML是什么?XML是有什么用?這類問(wèn)題.
            我以自己的話來(lái)說(shuō)明這些問(wèn)題.

            一個(gè)正確的概念很重要,其碼不會(huì)失去方向.下面引用一位朋友的貼子來(lái)作回答:

            XML初學(xué)者普遍存在的問(wèn)題

            1。XML是什么?(不要說(shuō)是可擴(kuò)展的標(biāo)記語(yǔ)言之類的話)
            2。XML可以做什么?怎么做?(不需要回答,只需要列舉出一個(gè)簡(jiǎn)單的例子即可)


            1: XML,是用來(lái)描迷數(shù)據(jù)的.
            2:舉一個(gè)例子說(shuō)明:有A數(shù)據(jù)庫(kù) B數(shù)據(jù)庫(kù),他們之間的標(biāo)準(zhǔn)不同,不能互傳.那么你可以把數(shù)據(jù)放在XML中,而后就可以讓A,B之間可以共同傳輸數(shù)據(jù)了.

            補(bǔ)充:
            首先要有一個(gè)概念,你最好不要去用XML設(shè)計(jì)網(wǎng)頁(yè),不是說(shuō)不可以, 只是要說(shuō)明,XML不是HTML的替代.

            有了這個(gè)概念,就不會(huì)有很多的看完一個(gè)一個(gè)的教程,還不知道XML做什么,很明了
            XML就是為了描述數(shù)據(jù)

            開(kāi)始學(xué)習(xí)XML:
            1.工具:XMLSPY2005,個(gè)人喜歡英文版.(當(dāng)前下的2006英文版,注冊(cè)有問(wèn)題)
            2.學(xué)習(xí)XML從那里開(kāi)始?
               即我要說(shuō)明的是:先寫(xiě)XML還是先寫(xiě)DTD或是XML Schemas.
               大多的教程從XML說(shuō)起,再說(shuō)DTD...再說(shuō)XML Schemas...
               不過(guò)我個(gè)人覺(jué)的,先了解一下XML的基本語(yǔ)法,而后跳過(guò)DTD,從Schemas開(kāi)始.
               這樣不會(huì)讓DTD搞的沒(méi)興趣..而后再對(duì)DTD作一定了解.這里要說(shuō)明,我覺(jué)的先寫(xiě)
              好一個(gè)Schemas再寫(xiě)XML比較好.即,先建立模型.再去填數(shù)據(jù).
            (這只是我自己的愛(ài)好,朋友們別扔板磚)

            下面的先從一個(gè)很簡(jiǎn)單的例子開(kāi)始,讓大家有點(diǎn)興趣...
            1.打開(kāi)XMLSPY2005.點(diǎn)新建

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            選XSD W3C XML Schemas.
            2.

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            作如圖修改,而后點(diǎn)左側(cè)的圖標(biāo),進(jìn)入下圖
            3.

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            在Book上點(diǎn)右鍵選擇Add child-->sequence.插入一個(gè)容器

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            4.在剛剛的容器上再點(diǎn)右鍵.作Add child-->ELEMENT

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            5.做如下填加,如Setup 4.

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            6.點(diǎn)選最下面的TEXT.如圖

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            這里是源碼.

            到這里實(shí)際上我們做了一個(gè)XML Schemas.很簡(jiǎn)單,以后在說(shuō)明
            具體的意思.
            我們現(xiàn)在可以點(diǎn)另存為,存為First.xsd.


            下面建立關(guān)于這個(gè)這個(gè)Schemas的XML文件.
            再次選新建(不用關(guān)閉剛剛的XSD文件),這次選XML DOCUMNET文件.
            出現(xiàn)下圖:

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            選Schema.指定剛剛的XSD的保存路徑.
            這時(shí)打開(kāi)是以TEXT方式,我還是選最下面的Gird,出現(xiàn)下圖:

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            作如下圖的改動(dòng):

            此主題相關(guān)圖片如下:
            按此在新窗口瀏覽圖片
            點(diǎn)保存為:First.xml

            那么你此時(shí)可以點(diǎn)下邊的TEXT.回到代碼方式.就可以看到XML文件的內(nèi)容.

            你一定聽(tīng)說(shuō)過(guò)"好的格式"與"有效格式"的概念.
            到這里,你建立了一個(gè)Schemas文件,一個(gè)XML文件.
            按F5,你可以檢查這個(gè)XML文件是不是一個(gè)"好的格式",再按F8你可以查看他
            是不是一個(gè)"有效的格式".

            先看一下First.xml的代碼:
            <?xml version="1.0" encoding="UTF-8"?>
            <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by  () -->
            <Book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="First.xsd">
             <name>XSLT</name>
             <author>Michael Kay</author>
             <price>$34.99USA</price>
            </Book>

             

            是不是很容易理解.可能不能理解就是那一長(zhǎng)串的"網(wǎng)址",那是一個(gè)很重的概念.
            NAMESPACE.這個(gè)先不說(shuō),我們看代碼:
            <Book>
                <name>XSLT</name>
                <author>Michael Kay</author>
                <price>$34.99USA</price>
            </Book>

            <Book>...</Book>是根元素.
            <name>.<author>.<price>可以說(shuō)是根元素下的子元素.

            這里有幾點(diǎn)注意:
            1.一定要結(jié)束標(biāo)記.如:<Book>...</Book>
            2.XML元素大小寫(xiě)是不一樣的:<Book>...</book>必定出錯(cuò)
            3.要合理嵌套.<Book><name>...</Book></name>是錯(cuò)的
            細(xì)節(jié)很多,不詳細(xì)說(shuō)明.
            其實(shí)我們現(xiàn)在就可以很容易的寫(xiě)一個(gè)XML文檔,基于這個(gè)方式.
            但還是不提倡先寫(xiě)XML再寫(xiě)DTD或是Schemas.
            打個(gè)比方: XML是一個(gè)人,DTD AND SCHEMAS是馬甲.首先要理解的就是我們用DTD和Schema是為了定義和約束XML的.好,我們先把這個(gè)約束和定義做好,即先做馬甲.而后再給那個(gè)人穿上..我想這樣是容易的,如果你先寫(xiě)XML再寫(xiě)馬甲的的話...呵呵

            再看那個(gè)First.xsd:
            <?xml version="1.0" encoding="UTF-8"?>
            <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
             <xs:element name="Book">
              <xs:annotation>
               <xs:documentation>Comment describing your root element</xs:documentation>
              </xs:annotation>
              <xs:complexType>
               <xs:sequence>
                <xs:element name="name"/>
                <xs:element name="author"/>
                <xs:element name="price"/>
               </xs:sequence>
              </xs:complexType>
             </xs:element>
            </xs:schema>

            Schemas是以XML的表達(dá)形式定義和約束XML文件的.所以在語(yǔ)法上是相似的.

            <xs:schema>...</xs:schema>是Schemas申明.后面的接著是命名空間.
            <xs:element name="Book">..</xs:element>是定義了元素Book.

            <xs:annotation>
                <xs:documentation>Comment describing your root element</xs:documentation>
            </xs:annotation>
            這個(gè)是注釋.

            <xs:complexType>..</xs:complex>復(fù)雜類型申明.[有的朋友會(huì)問(wèn),還沒(méi)學(xué)簡(jiǎn)單類型就學(xué)復(fù)雜類型,這不是...,不過(guò)說(shuō)真的,先說(shuō)復(fù)雜類型還是好理解.]

            <xs:sequence>...</xs:sequence>這其實(shí)就是在最初的時(shí)候所說(shuō)的容器.相同的還有另外兩個(gè)<all>...</all> and <choice>..</choice> sequence是順序出現(xiàn),all是亂序出現(xiàn),choice選擇性出現(xiàn).如果你要在復(fù)雜類型里加入別的元素或是屬性的話,那么必定有一個(gè)
            容器!

            <xs:element name="name"/>
            <xs:element name="author"/>
            <xs:element name="price"/>
            這三個(gè)是在Sequence包圍中,現(xiàn)在可以理解容器的概念了吧..
            上面還有一個(gè)要說(shuō)的.

            <xs:element name="name"/>這其實(shí)是個(gè)空元素.在XML中空元素的申明就是這樣子的.
            這東西就不需要額外的結(jié)束標(biāo)記了.


            這是對(duì)兩段代碼的簡(jiǎn)單分析...

            寫(xiě)一XML文檔作一小結(jié):
            1.元素,屬性和值
               <name language="english">Tiger</name>
            2.書(shū)寫(xiě)XML的規(guī)則
               1).根元素是必須的
               2).結(jié)束標(biāo)記是必須的
               3).元素的嵌套要適當(dāng)
               4).大小寫(xiě)敏感
               5).值必放在引號(hào)內(nèi)
            3.申明XML版本.
               <?xml version="1.0" encoding="UTF-8"?>
            也就這形式,注意后的UTF.如果你有中文內(nèi)容,改成gb2312吧
            這個(gè)encoding是可選的
            只有這一個(gè)例外.沒(méi)有結(jié)束標(biāo)記
            <?  ..... ?>
            4.增加屬性,屬性是給元素增加一個(gè)額外的信息
            <name language="English">
            5.空元素
            兩種表式法:
               <name></name>
            OR</name>
            兩者是相同
            6.注解:<!--      -->
            7.五個(gè)特殊的符號(hào)

             

               &        & amp;
               <        & lt;
               >        & gt;
               "         & quot;
               '          & apos;


            想在XML里表達(dá)出前面的符號(hào),就用后面的代替.
            差不多這就些吧..
              

            XML Schema

            XML Schema提供一個(gè)更豐富的XML文檔結(jié)構(gòu)定義,Schema是XML所寫(xiě),用XML規(guī)范改寫(xiě)的
            DTD,同時(shí)增加擴(kuò)充功能.
            特點(diǎn):1.一致性,與XML一致.可被XML編輯器編輯,可被XML分析器解析.
            2.擴(kuò)展性.對(duì)DTD進(jìn)行擴(kuò)充,引入數(shù)據(jù)類型
            3.易用性.XML API(DOM AND SAX)只對(duì)XML實(shí)例有效.對(duì)DTD無(wú)效.
               Schemas可用DOM 和SAX方式
            4.規(guī)范性,Schema用元素內(nèi)容和屬性來(lái)定義文檔的整體結(jié)構(gòu),如那些元素可出現(xiàn),元素間的關(guān)系,元素內(nèi)容和屬性,以及元素出現(xiàn)的順序.
            5.互換性.可交換彼此的Schema

            (轉(zhuǎn)載自“中國(guó)XML論壇”作者“starting”)


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            精品久久久久久久中文字幕| 韩国无遮挡三级久久| 97精品国产97久久久久久免费| 久久99国产精品久久99果冻传媒| 久久99久久99精品免视看动漫| 日韩AV无码久久一区二区 | 久久天天躁夜夜躁狠狠躁2022| 久久青青色综合| 久久av无码专区亚洲av桃花岛| 18岁日韩内射颜射午夜久久成人| 一极黄色视频久久网站| 国产精品99久久精品| 亚洲精品第一综合99久久| 久久精品国产精品国产精品污| 看全色黄大色大片免费久久久 | 99久久久精品免费观看国产| 久久成人精品| 久久精品a亚洲国产v高清不卡| 国内精品久久久久久中文字幕| 77777亚洲午夜久久多喷| 国产精品美女久久久网AV| 久久精品人人做人人爽97| 人人狠狠综合久久亚洲| 久久国产成人精品麻豆| 亚洲精品无码久久久久久| 久久精品亚洲乱码伦伦中文| 亚洲午夜久久久影院| 7777精品伊人久久久大香线蕉| 国产成人精品综合久久久| 久久永久免费人妻精品下载| 一本久久综合亚洲鲁鲁五月天| 国产成人久久精品麻豆一区| 久久99国产精一区二区三区| 国产精品一区二区久久国产| 国产成人精品综合久久久| 2021国产精品久久精品| 久久久这里只有精品加勒比| 免费一级欧美大片久久网| 久久99精品久久久久久野外| 久久高潮一级毛片免费| 久久久久亚洲精品中文字幕|