標籤:XML

XML約制規則

DTD

廣告

XML 基本觀念

XML1.0

XML對件內的元素(element)和內容(content)限制很少。XML把重心放在文件的結構(structure)上:元素必須有起始和結束、每個屬性(attribute)只能有一個值…等等。文件的內容以及文件中要使用的元素和屬性完全留給你自行決定。

XML文件可以分為兩個基本部份:標頭(header)和內容(content)。標頭提供資訊給XML分析器和XML應用軟體,只出該如何處理這份文件,而內容就是XML資料本身。

根元素

  • 根元素(root element)是XML文件中最高層次的元素,而且其起始標籤一定是文件內部地一個起始標籤,而其結束標籤一定是文件內部最後一個結束標籤
  • XML規範只出同一份文件中只能有一個根元素
  • 將根元素定義為標準的XML元素,而且無需特殊的屬性或行為,可以確表文件在引入其它文件火被其它文件引入時不會出錯

元素

  • 元素可由任何的名稱表示,而且名稱一定要用角括號(<>)圍起來才行
  • 元素的名稱有分大小寫
  • 元素名稱的開頭字元必須是字母或是底線字元,在來可以是任何數量的自母、數字、底線字元、連字號或點號
  • 元素名稱中不能有空格
  • 每個有起始的元素一定要按次序結束

<!– 標準的元素起始標籤>

<contents>

<!– 元素帶屬性 –>

<chapter title="Nuts and Bolts" number="2″>

<!– 元素中含有文字資料 –>

<title ora:series="Java">Java and XML</title>

<!– 空元素 –>

<sectionBreak/>

<!– 標準的元素結束標籤 –>

</contents>

實體參考

  • &lt; is <
  • &gt; is >
  • &amp; is &
  • &quot; is “
  • &apos; is ‘

不分析的資料

當你有一段不少的資料必須交給應用軟體而不希望XML分析器分析時,就可以用CDATA section,例如:

<unparsed-data>

<![CDATA[Diagram:

<Step 1> …

]]>

</unparsed=data>

名稱空間

XML名稱空間(XML namespace)是一種把XML文件中的元素分配給某個特定URI的方式。這等於元素的全名必需由其名稱及其名稱空間URI(namespace URI)組成。

XML名稱空間解決了名稱空間碰撞(namespace collision)的問題

XML Schema

XML Schema如同DTD一樣是負責定義和描述XML文檔的結構和內容模式。它可以定義XML文檔中存在哪些元素和元素之間的關系,并且可以定義元素和屬性 的數據類型。XML Schema本身是一個XML文件,它符合XML語法結構,可以用一般的XML解析器解析它

為什麼要使用 Schema?

DTD缺陷:

  1. DTD是基於正規表示式,描述能力有限
  2. DTD沒有資料型別的概念,在大多數應用環境下能力不足
  3. DTD的約束定義能力不足,無法對XML實例文件作出更細致的語義限制
  4. DTD的結構不夠結構化,重用的代價相對較高
  5. DTD並非使用XML作為描述手段,而DTD的構建和訪問並沒有標準的編程接口,無法使用標准的編程方式進行DTD維護

XML Schema正是針對這些DTD的缺點而設計的,XML Schema的優點:

  1. XML Schema基於XML,沒有專門的語法
  2. XML可以像其他XML文件一樣解析和處理
  3. XML Schema支持一系列的資料型別(int、float、Boolean、date等)
  4. XML Schema提供可擴充的資料型別
  5. XML Schema支持綜合命名空間
  6. XML Schema支持屬性組