您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關XM有什么格式要求,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Xml的語法
? 一個XML文件分為如下幾部分內容:
– 文檔聲明
– 元素
– 屬性
– 注釋
– CDATA區、特殊字符
– 處理指令(processing instruction)
Xml的聲明
最簡單聲明
<?xml version=”1.0”?>
Encoding屬性:字符編碼如果沒有指定默認的是UTF-8編碼
常見的字符集
簡體中文:GBK 或GB2312
繁體中文: BIG5
西歐字符:ISO8859-1
通用的國際編碼:Unicode UTF-8
演示案例:
<?xml version="1.0" encoding="UTF-8"?>
<中國></中國>
引起錯誤的原因是:編碼的錯誤
解碼成字符 |
字符集錯誤時的xml文檔
新建是一個.txt文檔 保存的是.xml UTF-8 默認的編碼ANSI 中國 |
寫入到硬盤 編碼成二進制碼 00 11 |
磁盤文件 |
Standalone:指定該文檔是否需要引用其它資源,屬性值只有:yes或no
Yes:獨立 No:不獨立
XML文件和HTML文件一樣,實際上是一個文本文件。
顯然大家立刻就會明白,創建XML文件最普通的工具和HTML一樣,就是"記事本"了。
除了"記事本"之外,當然還有一些更加方便的工具,如XML Notepad、XML Pro、CLIP!XML Editor等,
這些工具的一大特點是:能夠檢查你所建立的XML文件是否符合XML規范。不過,現在這些工具都只有英文版的,并且需要付費使用。
當然,你仍然能夠使用FrontPage、DreamWeaver等工具,不過使用起來不是很方便。
隨著XML的逐漸普及,相信在不久后,也會出現非常好用的創建XML文件的工具。
現在我們暫且使用"記事本"來創建我們的XML文件吧。先看一個XML文件:
例1
〈?xml version="1.0" encoding="gb2312" ?〉
〈參考資料〉
〈書籍〉
〈名稱〉XML入門精解〈/名稱〉
〈作者〉張三〈/作者〉
〈價格 貨幣單位="人民幣"〉20.00〈/價格〉
〈/書籍〉
〈書籍〉
〈名稱〉XML語法〈/名稱〉
〈!--此書即將出版--〉
〈作者〉李四〈/作者〉
〈價格 貨幣單位="人民幣"〉18.00〈/價格〉
〈/書籍〉
〈/參考資料〉
這是一個典型的XML文件,編輯好后保存為一個以.xml為后綴的文件。我們可以將此文件分為文件序言(Prolog)和文件主體兩個大的部分。
在此文件中的第一行即是文件序言。該行是一個XML文件必須要聲明的東西,而且也必須位于XML文件的第一行,它主要是告訴XML解析器如何工作。
其中,version是標明此XML文件所用的標準的版本號,必須要有;encoding指明了此XML文件中所使用的字符類型,可以省略,在你省略此聲明的時候,后面的字符碼必須是Unicode字符碼(建議不要省略)
。因為我們在這個例子中使用的是GB2312字符碼,所以encoding這個聲明也不能省略。在文件序言部分還有一些聲明語句,我們在后面給予介紹。
文件的其余部分都是屬于文件主體,XML文件的內容信息存放在此。
我們可以看到,文件主體是由開始的〈參考資料〉和結束的〈/參考資料〉控制標記組成,這個稱為XML文件的"根元素";〈書籍〉是作為直屬于根元素下的"子元素";在〈書籍〉下又有〈名稱〉、〈作者〉、〈價格〉這些子元素。貨幣單位是〈價格〉元素中的一個"屬性","人民幣"則是"屬性值"。
首先,XML文件的第一行必須是聲明該文件是XML文件以及它所使用的XML規范版本。在文件的前面不能夠有其它元素或者注釋。
第二,在XML文件中有且只能夠有一個根元素。我們的第一個例子中,〈參考資料〉... 〈/參考資料〉就是此XML文件的根元素。
第三,在XML文件中的標記必須正確地關閉,也就是說,在XML文件中,控制標記必 須有與之對應的結束標記。如:〈名稱〉標記必須有對應的〈/名稱〉結束標記,不像HTML,某些標記的結束標記可有可無。如果在XML文件中遇到自成一個單元的標記,就是類似于HTML 中的〈img src=http://www.php.cn/〉的這些沒有結束標記的時候,XML把它稱為"空元素",必須用這樣的寫法:〈空元素名/〉,如果元素中含有屬性時寫法則為:〈空元素名 屬性名="屬性值"/〉。
第四,標記之間不得交叉。在以前的HTML文件中,可以這樣寫:
〈B〉〈H〉XXXXXXX〈/B〉〈/H〉,〈B〉和〈H〉
標記之間有相互重疊的區域,而在XML中,是嚴格禁止這樣標記交錯的寫法,標記必須以規則性的次序來出現。
第五,屬性值必須要用" "號括起來。如第一個例子中的"1.0"、"gb2312"、"人民幣"。都是用" "號括起來了的,不能漏掉。
第六,控制標記、指令和屬性名稱等英文要區分大小寫。與HTML不同的是,在HTML中, 類似〈B〉和〈b〉的標記含義是一樣的,而在XML中,類似〈name〉、〈NAME〉或〈Name〉這樣的標記是不同的
第七,我們知道,在HTML文件中,如果我們要瀏覽器原封不動地將我們所輸入的東西顯示出來,可以將這些東西放到〈pre〉〈/pre〉或者〈xmp〉〈/xmp〉標記中間。這對于我們創建HTML教學的網頁是必不可少的,因為網頁中要顯示HTML的源代碼。而在XML中,要實現這樣的功能,就必須使用CDATA標記。在CDATA標記中的信息被解析器原封不動地傳給應用程序,并且不解析該段信息中的任何控制標記。CDATA區域是由:"〈![CDATA["為開始標記,以">〉"為結束標記。例如:例2中的源碼,除了"〈![CDATA["和">〉"符號,其余的內容解析器將原封不動地交給下游的應用程序,即使CDATA區域中的開始和結尾的空白以及換行字符等,都同樣會被轉交(注意CDATA是大寫的字符)。
Xml元素的基本規則
元素是xml文檔的基本單元,xml文檔就是一個一個層層嵌套的元素組成的。整個的xml文檔從根元素開始,根元素包含若干個子元素,而每個子元素又可以包含若干個子元素,從而可以組成一個xml文檔。
Xml標簽語法:
1、Xml的標簽分為兩類:
單標記:<中國/>
雙標記:<中國></中國>
2、xml標簽的要求:
1、標簽名可以有字母(包括非西歐字符)、數字、下劃線(_)、中劃線(-)、冒號(:)和點號(.)組成,但不能以數字、中劃線和點號開頭。
2、標簽名不能包含<、>、,、$等符號
3、標簽名種盡量不要出現英文的冒號(:),除非在使用命名空間。
4、標簽名不能以字符xml、XML等任意大小寫組合開始。
5、標簽名不能包含空格。
6、標簽名區分大小寫
3、xml標簽嵌套子元素:xml允許深度嵌套子元素,只要保證元素之間合理的嵌套即可.而且xml元素可以嵌套多個重名的子元素,這多個子元素之間是有序的。
第一個:xml
<中國>
<北京>
<海淀/>
<朝陽></朝陽>
<朝陽></朝陽>
</北京>
</中國>
第二個xml:
<中國>
<北京>
<朝陽></朝陽>
<朝陽></朝陽>
<海淀/>
</北京>
</中國>
4、空元素:空元素不可以接受子元素,也不可以接受字符串內容。
第三個xml:
<book>
<name>redarmy</name>
<content/> :備注:空元素但可以接受屬性,而且可以接受多個屬性
</book>
<book>
<name>redarmy</name>
<content></content> :備注它包好的是一個空格空格也是字符
</book>
例如空元素接受屬性:
<book name=”Java建議” price=”30”/>
5、字符數據
<book>
<computer>Struts2開發詳解</computer>
<computer>
Struts2開發詳解
</computer>
</book>
對于XML標簽中出現的所有空格和換行,XML解析程序都會當作標簽內容進行處理
如果文本字符中包含了一些特殊的字符,例如<和&由于這些字符都有特殊的含義,因此直接在xml文檔中使用該字符串將引起文檔的混亂。
<表達式>
<比較符>1+3<6</比較符>
</表達式>
代表的是文本字符串中包含了特殊的字符
有以下兩種方法解決:
1、 使用實體引用:用另一個特殊符號代替這些特殊符號
2、使用CDATA標記:將整個文檔定義成字符串。
1、 使用實體引用
<?xml version="1.0" encoding="UTF-8"?>
<表達式>
<比較符>1+3&<6</比較符>
</表達式>
上面的紅色的<產生了干擾
解決如下:
<?xml version="1.0" encoding="UTF-8"?>
<表達式>
<比較符>1+3<6</比較符>
</表達式>
2、 使用CDATA標記
在特殊標記CDATA下,所有的特殊字符,甚至是有效的元素都將被當成簡單的字符串處理。實體引用也會失去作用,變成直接的文本。
CDATA的語法格式如下:
<![CDATA[文本內容]]>
<?xml version="1.0" encoding="UTF-8"?>
<表達式>
<比較符>
<![CDATA[
1+3<6
]]>
</比較符>
</表達式>
備注:由于xml文檔根本不會對CDATA標記內容進行任何解析,因此在CDATA內可以放置任何內容,其中的內容永遠不會出錯。
1、 注釋
Xml文檔還可以加入解釋用的字符數據,這些解釋用的字符串不會被xml解析器處理。這些解釋用的文本稱為注釋。Xml的文檔注釋與html完全一致。
Xml注釋的語法格式如下:
<!--注釋字符串 -->
Xml的注釋允許包含元素和標簽。
注意:
1、 Xml的注釋不能夠放在標簽體內。
2、 不要把xml文檔放在xml文檔聲明之前 xml文檔的聲明永遠在第一行
3、 不在注釋中使用雙中劃線(--)
…..
2、 處理指令
處理指令,簡稱PI (processing instruction)。處理指令用來指揮解析引擎如何解析XML文檔內容。
處理指令用于給處理xml文檔的應用程序提供信息,告訴處理程序應該如何處理該文檔。一個完備的xml文檔的處理程序,可以讀取xml文檔的處理指令,并根據處理指令進行相應處理,或將它傳給下一個程序。
Xml處理指令的格式如下:
<?處理指令名處理指令信息?>
3、 屬性
xml屬性的特征:
1、 xml元素的屬性必須有屬性值,屬性值必須用引號引起來。
2、 同一個xml元素里不能有多個同名的屬性
3、 Xml元素里的多個屬性之間沒有先后順序。
<book> <isbn>123456780</isbn> <book_name>Java講義</book_name> <price>99</price> </book>
比如說這個book本身就有 isbn book_name price的屬性
那么
<book isbn=”” book_name=”” price=””/>
Xml必須有一個根元素。
Xml文檔的整體結構
1、 必須有一個根元素(有且只有一個)
2、 元素必須合理結束
3、 元素之間必須合理嵌套
4、 元素的屬性必須有屬性值
只要不滿足上面的條件就是一個格式不良好的xml文檔
只要滿足上面的條件就是一個格式良好的xml文檔
并且遵守了dtd或者schema就是一個有效的xml文檔。
Xml文檔是一種標準的結構化文檔,可以轉換成DOM(Document Object Model)樹,其根節點對應DOM樹的根節點。
<book> <computer> <name>網上介紹</name> <author>redarmy</author> </computer> <computer> <name>網上介紹</name> <author>redarmy</author> </computer> </book>
book |
computer |
computer |
……… |
computer |
name |
author |
注意:
必須具有根標記且根標記必須唯一
開始標記和結束標記需配對使用
標記不能交錯使用
空標記可寫成“<標記名/>”的形式
標記對大小寫敏感
看完上述內容,你們對XM有什么格式要求有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。