• <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>

            笑看風云淡

            寵辱不驚,看庭前花開花落;去留無意,望天空云卷云舒
            posts - 96, comments - 48, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理
            很多朋友和我一樣初學XML,我也是一個初學XML的新手,讓我們在討論中學習XML.

             

            看過很多教程,大家還會問同樣一個問題,XML是什么?XML是有什么用?這類問題.
            我以自己的話來說明這些問題.

            一個正確的概念很重要,其碼不會失去方向.下面引用一位朋友的貼子來作回答:

            XML初學者普遍存在的問題

            1。XML是什么?(不要說是可擴展的標記語言之類的話)
            2。XML可以做什么?怎么做?(不需要回答,只需要列舉出一個簡單的例子即可)


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

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

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

            開始學習XML:
            1.工具:XMLSPY2005,個人喜歡英文版.(當前下的2006英文版,注冊有問題)
            2.學習XML從那里開始?
               即我要說明的是:先寫XML還是先寫DTD或是XML Schemas.
               大多的教程從XML說起,再說DTD...再說XML Schemas...
               不過我個人覺的,先了解一下XML的基本語法,而后跳過DTD,從Schemas開始.
               這樣不會讓DTD搞的沒興趣..而后再對DTD作一定了解.這里要說明,我覺的先寫
              好一個Schemas再寫XML比較好.即,先建立模型.再去填數(shù)據(jù).
            (這只是我自己的愛好,朋友們別扔板磚)

            下面的先從一個很簡單的例子開始,讓大家有點興趣...
            1.打開XMLSPY2005.點新建

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

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

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

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

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

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

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

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


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

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

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

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

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

            你一定聽說過"好的格式"與"有效格式"的概念.
            到這里,你建立了一個Schemas文件,一個XML文件.
            按F5,你可以檢查這個XML文件是不是一個"好的格式",再按F8你可以查看他
            是不是一個"有效的格式".

            先看一下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>

             

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

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

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

            再看那個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的表達形式定義和約束XML文件的.所以在語法上是相似的.

            <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>
            這個是注釋.

            <xs:complexType>..</xs:complex>復雜類型申明.[有的朋友會問,還沒學簡單類型就學復雜類型,這不是...,不過說真的,先說復雜類型還是好理解.]

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

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

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


            這是對兩段代碼的簡單分析...

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

             

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


            想在XML里表達出前面的符號,就用后面的代替.
            差不多這就些吧..
              

            XML Schema

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

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

            新狼窝色AV性久久久久久| 国内精品久久久久久久亚洲| 97精品伊人久久久大香线蕉| 久久亚洲精品中文字幕| 精品国产VA久久久久久久冰| 国内精品久久久久久久涩爱| 亚洲国产成人久久综合区| 久久婷婷五月综合97色| 久久精品成人影院| www.久久热| 国内精品久久久久影院老司| 国产一级做a爰片久久毛片| 久久综合五月丁香久久激情| 精品永久久福利一区二区| 久久久这里有精品中文字幕| 国内精品久久久久影院优 | 久久久久久久久久久久中文字幕| 国产人久久人人人人爽| 久久精品免费网站网| 国产99久久精品一区二区| 一本久道久久综合狠狠躁AV| 国产国产成人久久精品| 久久人人爽人人爽人人片AV不 | 久久久青草青青国产亚洲免观| 久久精品国产免费观看| 久久人人爽人人爽人人片AV麻豆 | 国产精品毛片久久久久久久| 久久久久青草线蕉综合超碰| 久久久久一级精品亚洲国产成人综合AV区| 亚洲精品白浆高清久久久久久 | 久久亚洲精品视频| 无码国内精品久久人妻蜜桃 | 国内精品久久久久久99蜜桃| 久久中文字幕人妻熟av女| 久久久午夜精品| 一级做a爰片久久毛片免费陪| 久久一本综合| 少妇无套内谢久久久久| 伊人久久综合成人网| 久久夜色精品国产噜噜亚洲AV| 麻豆亚洲AV永久无码精品久久|