• <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,是用來描迷數據的.
            2:舉一個例子說明:有A數據庫 B數據庫,他們之間的標準不同,不能互傳.那么你可以把數據放在XML中,而后就可以讓A,B之間可以共同傳輸數據了.

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

            你一定聽說過"好的格式"與"有效格式"的概念.
            到這里,你建立了一個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>

             

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

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

            這里有幾點注意:
            1.一定要結束標記.如:<Book>...</Book>
            2.XML元素大小寫是不一樣的:<Book>...</book>必定出錯
            3.要合理嵌套.<Book><name>...</Book></name>是錯的
            細節很多,不詳細說明.
            其實我們現在就可以很容易的寫一個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是順序出現,all是亂序出現,choice選擇性出現.如果你要在復雜類型里加入別的元素或是屬性的話,那么必定有一個
            容器!

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

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


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

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

             

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


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

            XML Schema

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

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

            丰满少妇人妻久久久久久4| 亚洲午夜久久久| 免费观看久久精彩视频 | 国内精品久久久久久久97牛牛| 日日噜噜夜夜狠狠久久丁香五月| www.久久热| 久久国产亚洲精品| 久久国产高清字幕中文| 青草久久久国产线免观| 国产精品久久毛片完整版| 亚洲国产成人久久一区久久| 国产成人久久精品激情| 久久久久亚洲AV无码专区首JN | 一级做a爰片久久毛片看看| 久久精品九九亚洲精品| 久久亚洲精品成人无码网站| 久久这里只有精品久久| 国产午夜福利精品久久2021| 伊人热热久久原色播放www | 久久国产色AV免费观看| 一本综合久久国产二区| 国产精品日韩欧美久久综合| 精品久久久久久国产潘金莲| 亚洲精品无码久久千人斩| 久久97久久97精品免视看秋霞| 久久99精品国产麻豆| 天堂久久天堂AV色综合| 久久久久久国产精品无码下载| 久久中文精品无码中文字幕| 51久久夜色精品国产| 国产精品久久久久久搜索| 无码精品久久久天天影视 | 国产69精品久久久久APP下载| 久久美女网站免费| 色综合久久中文综合网| 精品久久久久久久久久久久久久久| 久久综合久久综合九色| 久久亚洲精品中文字幕三区| 久久精品国内一区二区三区| 精品久久香蕉国产线看观看亚洲| AV无码久久久久不卡网站下载|