溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

XM有什么格式要求

發(fā)布時(shí)間:2020-07-20 11:57:44 來源:億速云 閱讀:375 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)XM有什么格式要求,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

                                                           XM有什么格式要求

Xml的語法

?         一個(gè)XML文件分為如下幾部分內(nèi)容:

    文檔聲明

    元素

    屬性

    注釋

    CDATA區(qū)、特殊字符

    處理指令(processing instruction

Xml的聲明

最簡單聲明

<?xml version=”1.0”?>

Encoding屬性:字符編碼如果沒有指定默認(rèn)的是UTF-8編碼

常見的字符集

簡體中文:GBK GB2312

繁體中文: BIG5

西歐字符:ISO8859-1

通用的國際編碼:Unicode  UTF-8

演示案例:

 <?xml version="1.0" encoding="UTF-8"?>

<中國></中國>

引起錯(cuò)誤的原因是:編碼的錯(cuò)誤


解碼成字符

字符集錯(cuò)誤時(shí)的xml文檔


新建是一個(gè).txt文檔

保存的是.xml UTF-8

默認(rèn)的編碼ANSI

中國


寫入到硬盤

編碼成二進(jìn)制碼

00 11


磁盤文件

Standalone:指定該文檔是否需要引用其它資源,屬性值只有:yesno

Yes:獨(dú)立      No:不獨(dú)立

XML文件和HTML文件一樣,實(shí)際上是一個(gè)文本文件。

顯然大家立刻就會明白,創(chuàng)建XML文件最普通的工具和HTML一樣,就是"記事本"了。

除了"記事本"之外,當(dāng)然還有一些更加方便的工具,如XML Notepad、XML Pro、CLIP!XML Editor等,

這些工具的一大特點(diǎn)是:能夠檢查你所建立的XML文件是否符合XML規(guī)范。不過,現(xiàn)在這些工具都只有英文版的,并且需要付費(fèi)使用。

當(dāng)然,你仍然能夠使用FrontPage、DreamWeaver等工具,不過使用起來不是很方便。

隨著XML的逐漸普及,相信在不久后,也會出現(xiàn)非常好用的創(chuàng)建XML文件的工具。
現(xiàn)在我們暫且使用"記事本"來創(chuàng)建我們的XML文件吧。先看一個(gè)XML文件:


例1


〈?xml version="1.0" encoding="gb2312" ?〉
〈參考資料〉
〈書籍〉
〈名稱〉XML入門精解〈/名稱〉
〈作者〉張三〈/作者〉
〈價(jià)格 貨幣單位="人民幣"〉20.00〈/價(jià)格〉
〈/書籍〉
〈書籍〉
〈名稱〉XML語法〈/名稱〉
〈!--此書即將出版--〉
〈作者〉李四〈/作者〉
〈價(jià)格 貨幣單位="人民幣"〉18.00〈/價(jià)格〉
〈/書籍〉
〈/參考資料〉


這是一個(gè)典型的XML文件,編輯好后保存為一個(gè)以.xml為后綴的文件。我們可以將此文件分為文件序言(Prolog)和文件主體兩個(gè)大的部分。

在此文件中的第一行即是文件序言。該行是一個(gè)XML文件必須要聲明的東西,而且也必須位于XML文件的第一行,它主要是告訴XML解析器如何工作。

其中,version是標(biāo)明此XML文件所用的標(biāo)準(zhǔn)的版本號,必須要有;encoding指明了此XML文件中所使用的字符類型,可以省略,在你省略此聲明的時(shí)候,后面的字符碼必須是Unicode字符碼(建議不要省略)

。因?yàn)槲覀冊谶@個(gè)例子中使用的是GB2312字符碼,所以encoding這個(gè)聲明也不能省略。在文件序言部分還有一些聲明語句,我們在后面給予介紹。


文件的其余部分都是屬于文件主體,XML文件的內(nèi)容信息存放在此。

我們可以看到,文件主體是由開始的〈參考資料〉和結(jié)束的〈/參考資料〉控制標(biāo)記組成,這個(gè)稱為XML文件的"根元素";〈書籍〉是作為直屬于根元素下的"子元素";在〈書籍〉下又有〈名稱〉、〈作者〉、〈價(jià)格〉這些子元素。貨幣單位是〈價(jià)格〉元素中的一個(gè)"屬性","人民幣"則是"屬性值"。


首先,XML文件的第一行必須是聲明該文件是XML文件以及它所使用的XML規(guī)范版本。在文件的前面不能夠有其它元素或者注釋。


第二,在XML文件中有且只能夠有一個(gè)根元素。我們的第一個(gè)例子中,〈參考資料〉... 〈/參考資料〉就是此XML文件的根元素。


第三,在XML文件中的標(biāo)記必須正確地關(guān)閉,也就是說,在XML文件中,控制標(biāo)記必 須有與之對應(yīng)的結(jié)束標(biāo)記。如:〈名稱〉標(biāo)記必須有對應(yīng)的〈/名稱〉結(jié)束標(biāo)記,不像HTML,某些標(biāo)記的結(jié)束標(biāo)記可有可無。如果在XML文件中遇到自成一個(gè)單元的標(biāo)記,就是類似于HTML 中的〈img src=http://www.php.cn/〉的這些沒有結(jié)束標(biāo)記的時(shí)候,XML把它稱為"空元素",必須用這樣的寫法:〈空元素名/〉,如果元素中含有屬性時(shí)寫法則為:〈空元素名 屬性名="屬性值"/〉。


第四,標(biāo)記之間不得交叉。在以前的HTML文件中,可以這樣寫:
〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,〈B〉和〈H〉
標(biāo)記之間有相互重疊的區(qū)域,而在XML中,是嚴(yán)格禁止這樣標(biāo)記交錯(cuò)的寫法,標(biāo)記必須以規(guī)則性的次序來出現(xiàn)。


第五,屬性值必須要用" "號括起來。如第一個(gè)例子中的"1.0"、"gb2312"、"人民幣"。都是用" "號括起來了的,不能漏掉。


第六,控制標(biāo)記、指令和屬性名稱等英文要區(qū)分大小寫。與HTML不同的是,在HTML中, 類似〈B〉和〈b〉的標(biāo)記含義是一樣的,而在XML中,類似〈name〉、〈NAME〉或〈Name〉這樣的標(biāo)記是不同的


第七,我們知道,在HTML文件中,如果我們要瀏覽器原封不動地將我們所輸入的東西顯示出來,可以將這些東西放到〈pre〉〈/pre〉或者〈xmp〉〈/xmp〉標(biāo)記中間。這對于我們創(chuàng)建HTML教學(xué)的網(wǎng)頁是必不可少的,因?yàn)榫W(wǎng)頁中要顯示HTML的源代碼。而在XML中,要實(shí)現(xiàn)這樣的功能,就必須使用CDATA標(biāo)記。在CDATA標(biāo)記中的信息被解析器原封不動地傳給應(yīng)用程序,并且不解析該段信息中的任何控制標(biāo)記。CDATA區(qū)域是由:"〈![CDATA["為開始標(biāo)記,以">〉"為結(jié)束標(biāo)記。例如:例2中的源碼,除了"〈![CDATA["和">〉"符號,其余的內(nèi)容解析器將原封不動地交給下游的應(yīng)用程序,即使CDATA區(qū)域中的開始和結(jié)尾的空白以及換行字符等,都同樣會被轉(zhuǎn)交(注意CDATA是大寫的字符)。

Xml元素的基本規(guī)則

  元素是xml文檔的基本單元,xml文檔就是一個(gè)一個(gè)層層嵌套的元素組成的。整個(gè)的xml文檔從根元素開始,根元素包含若干個(gè)子元素,而每個(gè)子元素又可以包含若干個(gè)子元素,從而可以組成一個(gè)xml文檔。

Xml標(biāo)簽語法:

 1、Xml的標(biāo)簽分為兩類:

    單標(biāo)記:<中國/>

    雙標(biāo)記:<中國></中國>

 2xml標(biāo)簽的要求:

     1、標(biāo)簽名可以有字母(包括非西歐字符)、數(shù)字、下劃線(_)、中劃線(-)、冒號(:)和點(diǎn)號(.)組成,但不能以數(shù)字、中劃線和點(diǎn)號開頭。

2、標(biāo)簽名不能包含<、>、,、$等符號

3、標(biāo)簽名種盡量不要出現(xiàn)英文的冒號(:),除非在使用命名空間。

4、標(biāo)簽名不能以字符xml、XML等任意大小寫組合開始。

5、標(biāo)簽名不能包含空格。

6、標(biāo)簽名區(qū)分大小寫

3、xml標(biāo)簽嵌套子元素:xml允許深度嵌套子元素,只要保證元素之間合理的嵌套即可.而且xml元素可以嵌套多個(gè)重名的子元素,這多個(gè)子元素之間是有序的。

   第一個(gè):xml

<中國>

<北京>

    <海淀/>

    <朝陽></朝陽>

    <朝陽></朝陽>

</北京>

</中國>

 第二個(gè)xml

<中國>

<北京>

    <朝陽></朝陽>

    <朝陽></朝陽>

   <海淀/>

</北京>

</中國>

4、空元素:空元素不可以接受子元素,也不可以接受字符串內(nèi)容。

    第三個(gè)xml

     <book>

        <name>redarmy</name>

        <content/> :備注:空元素但可以接受屬性,而且可以接受多個(gè)屬性

     </book>

   <book>

        <name>redarmy</name>

        <content></content> :備注它包好的是一個(gè)空格空格也是字符

     </book>

例如空元素接受屬性:

 <book name=”Java建議” price=”30”/>

5、字符數(shù)據(jù)

  <book>

     <computer>Struts2開發(fā)詳解</computer>

     <computer>

        Struts2開發(fā)詳解

     </computer>

  </book>

 對于XML標(biāo)簽中出現(xiàn)的所有空格和換行,XML解析程序都會當(dāng)作標(biāo)簽內(nèi)容進(jìn)行處理

如果文本字符中包含了一些特殊的字符,例如<&由于這些字符都有特殊的含義,因此直接在xml文檔中使用該字符串將引起文檔的混亂。

  <表達(dá)式>

       <比較符>1+3<6</比較符>

  </表達(dá)式>

代表的是文本字符串中包含了特殊的字符

有以下兩種方法解決:

1、 使用實(shí)體引用:用另一個(gè)特殊符號代替這些特殊符號

2、使用CDATA標(biāo)記:將整個(gè)文檔定義成字符串。

1、  使用實(shí)體引用

       <?xml version="1.0" encoding="UTF-8"?>

 <表達(dá)式>

       <比較符>1+3&<6</比較符>

 </表達(dá)式>

上面的紅色的<產(chǎn)生了干擾

解決如下:

<?xml version="1.0" encoding="UTF-8"?>

 <表達(dá)式>

       <比較符>1+3&lt;6</比較符>

     </表達(dá)式>

2、  使用CDATA標(biāo)記

在特殊標(biāo)記CDATA,所有的特殊字符,甚至是有效的元素都將被當(dāng)成簡單的字符串處理。實(shí)體引用也會失去作用,變成直接的文本。

CDATA的語法格式如下:

<![CDATA[文本內(nèi)容]]>

<?xml version="1.0" encoding="UTF-8"?>

 <表達(dá)式>

       <比較符>

            <![CDATA[

              1+3<6

             ]]>

          </比較符>

 </表達(dá)式>

   備注:由于xml文檔根本不會對CDATA標(biāo)記內(nèi)容進(jìn)行任何解析,因此在CDATA內(nèi)可以放置任何內(nèi)容,其中的內(nèi)容永遠(yuǎn)不會出錯(cuò)。

1、  注釋

Xml文檔還可以加入解釋用的字符數(shù)據(jù),這些解釋用的字符串不會被xml解析器處理。這些解釋用的文本稱為注釋。Xml的文檔注釋與html完全一致。

Xml注釋的語法格式如下:

<!--注釋字符串 -->

Xml的注釋允許包含元素和標(biāo)簽。

注意:

1、  Xml的注釋不能夠放在標(biāo)簽體內(nèi)。

2、  不要把xml文檔放在xml文檔聲明之前  xml文檔的聲明永遠(yuǎn)在第一行

3、  不在注釋中使用雙中劃線(--)

…..

2、  處理指令

處理指令,簡稱PI processing instruction)。處理指令用來指揮解析引擎如何解析XML文檔內(nèi)容。

處理指令用于給處理xml文檔的應(yīng)用程序提供信息,告訴處理程序應(yīng)該如何處理該文檔。一個(gè)完備的xml文檔的處理程序,可以讀取xml文檔的處理指令,并根據(jù)處理指令進(jìn)行相應(yīng)處理,或?qū)⑺鼈鹘o下一個(gè)程序。

Xml處理指令的格式如下:

<?處理指令名處理指令信息?>

3、  屬性

xml屬性的特征:

1、  xml元素的屬性必須有屬性值,屬性值必須用引號引起來。

2、  同一個(gè)xml元素里不能有多個(gè)同名的屬性

3、  Xml元素里的多個(gè)屬性之間沒有先后順序。

<book>
     <isbn>123456780</isbn>
     <book_name>Java講義</book_name>
      <price>99</price>
</book>

比如說這個(gè)book本身就有 isbn  book_name price的屬性

那么

<book isbn=”” book_name=”” price=””/>

Xml必須有一個(gè)根元素。

Xml文檔的整體結(jié)構(gòu)

1、  必須有一個(gè)根元素(有且只有一個(gè))

2、  元素必須合理結(jié)束

3、  元素之間必須合理嵌套

4、  元素的屬性必須有屬性值

只要不滿足上面的條件就是一個(gè)格式不良好的xml文檔

只要滿足上面的條件就是一個(gè)格式良好的xml文檔

并且遵守了dtd或者schema就是一個(gè)有效的xml文檔。

Xml文檔是一種標(biāo)準(zhǔn)的結(jié)構(gòu)化文檔,可以轉(zhuǎn)換成DOM(Document Object Model),其根節(jié)點(diǎn)對應(yīng)DOM樹的根節(jié)點(diǎn)。

<book>
    <computer>
       <name>網(wǎng)上介紹</name>
       <author>redarmy</author>
    </computer>
    <computer>
        <name>網(wǎng)上介紹</name>
       <author>redarmy</author>
    </computer>
</book>


book


computer


computer


………


computer


name


author

注意:

必須具有根標(biāo)記且根標(biāo)記必須唯一

開始標(biāo)記和結(jié)束標(biāo)記需配對使用

標(biāo)記不能交錯(cuò)使用

空標(biāo)記可寫成“<標(biāo)記名/>”的形式

標(biāo)記對大小寫敏感

看完上述內(nèi)容,你們對XM有什么格式要求有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI