XML文檔使用的是自描述的和簡單的文法,一個XML文檔最基本的構成包括:聲明,處理指示(可選)和元素。以下是一個簡單的XML文檔:
1<?xml version ="1.0" encoding ="GB2312" standalone="yes" ?>
2<?xml-stylesheet type="text/xsl" href="yxfqust.xsl" ?>
3<!--以下是一個學生名單-->
4<學生名單>
5 <學生>
6 <學號>2003081205</學號>
7 <姓名>田淋</姓名>
8 <班級>計03.2班</班級>
9 </學生>
10 <學生>
11 <學號>2003081232</學號>
12 <姓名>楊雪鋒</姓名>
13 <班級>計03.2班</班級>
14 </學生>
15</學生名單>
第1行是XML聲明,第2行是處理指示,第3行是注釋,4到15就是文檔的各個元素。(註:XML標記都是大小寫敏感的).
一。文檔的聲明:<?xml version="1.0" encoding="GB2312" standalone="yes"?>
xml標記說明它是一個xml文檔,後面兩個屬性值表明了它的版本號碼和編碼通訊協定,standalone取yes表明該檔案未引明其他外部XML檔案。
二。處理指示
格式:<?處理指示名 處理指示資訊 ?>
<?xml-stylesheet type="text/xsl" href="yxfqust.xsl" ?>
三。注釋:
格式:<!--注釋內容--><!--以下是一個學生名單-->
注釋應注意的問題:
1.注釋不能出現在xml聲明之前;
2.注釋不能出現在標記中;
3.注釋中不能出現連續兩個連字號,即"--" 如:<!--this is a bad document.--do you know!-->;
4.注釋中可包含元素,但元素中不能包含"--"包含的元素解析時被忽略;
5.注釋不能嵌套;
四。元素與標記:
所有的XML元素必須合理包含,且所有的XML文檔必須有一個根項目。如同HTML一樣,XML元素同樣也可以擁有屬性。XML元素的屬性以名字/值成對的出現。XML文法規範要求XML元素屬性值必須用引號引著。請看下面的兩個例子,第一個是錯誤的,第二個是正確的。<?xml version="1.0" encoding="ISO-8859-1"?>
<note date=12/11/2002>
<to>Tove</to>
<from>Jani</from>
</note>
---------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
</note>
格式:<標記 屬性名稱1="值1".......>資料內容</標記>
XML元素是可以擴充的,它們之間有關聯,XML元素有簡單的命名規則:
Names can contain letters, numbers, and other characters (元素的名字可以包含子母,數字和其他字元。)
Names must not start with a number or punctuation character (元素的名字不能以數字或者標點符號開頭。)
Names must not start with the letters xml (or XML or Xml ..) (元素的名字不能以XML(或者xml,Xml,xMl...)開頭。)
Names cannot contain spaces(元素的名字不能包含空格。)元素是XML文檔的靈魂,它構成了文檔的主要內容。XML元素則是由標記來定義的,同時標記分為非空標記和空標記。
1.非空標記格式:
<標記>元素內容</標記> 如:
<學號>2003081205</學號>
<姓名>田淋</姓名>
<班級>計03.2班</班級> 2.空標記格式:
<標記名 屬性名稱="屬性值", 屬性名稱="屬性值"......> 如:<田淋 學號="2003081205">
同時元素也支援合理的嵌套,如上面的文檔例子,學生名單與學生就是一層嵌套。嵌套需滿足以下規則:
1.所有xml文檔都從一個根節點開始,根節點包含了一個根項目;
2.文檔內所有其他元素必須包含在根項目中;
3.嵌套在內的為子項目,同一層的互為兄弟元素;
4.子項目還可以包含子項目;
5.包含子項目的元素稱為分支,沒有子項目的元素稱為樹葉;
資料既可以儲存在子項目中也可以儲存在屬性中,應盡量使用子項目而避免使用屬性。原因如下:
attributes cannot contain multiple values (child elements can) (屬性不能包含多個值(子項目可以))
attributes are not easily expandable (for future changes) (屬性不容易擴充)
attributes cannot describe structures (child elements can) (屬性不能夠描述結構(子項目可以))
attributes are more difficult to manipulate by program code (屬性很難被程式碼處理)
attribute values are not easy to test against a Document Type Definition (DTD) - which is used to define the legal elements of an XML document(屬性值很難通過DTD進行測試)上一篇:XML介紹