[原創]XML命名空間

來源:互聯網
上載者:User

XML 命名空間提供了一種避免元素命名衝突的方法。

先給出一個XML文檔樣本:

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

<purchaseOrder orderDate="2006-01-09"

                               xmlns=http://www.Monson-Haefel.com/jwsbook/PO"

                               xmlns:addr=http://www.Monson-haefel.com/jwsbook/ADDR">

<accountName>Amazon.com</accountName>

<accountNumber>888</accountNumber>

<addr:address>

            <addr:name>amazon.com</addr:name>

            <addr:street>185 Mercer Drive</addr:street>

</addr:address>

<address>

             <city>XI'AN</city>

             <zip>710127</zip>

<address>

<book>

           <title>J2EE</title>

           <quantity>888</quantity>

</book>

</purchaseOrder >

命名衝突

  因為XML文檔中使用的元素不是固定的,那麼兩個不同的XML文檔使用同一個名字來描述不同類型的元素的情況就可能發生。而這種情況又往往會導致命名衝突。如上述例子中的<address>結點攜帶了不同的資訊,但結點名稱卻相同,造成命名衝突。因此需要加首碼"addr"以示區分。

命名空間屬性

命名空間屬性一般放置在元素的開始標記處,其使用文法如下所示:

       xmlns:namespace-prefix="namespace"
上例中purchaseOrder 元素屬性中聲明了兩個命名空間,黑體所示。
    W3C 命名規範聲明命名空間本身就是一個統一資源標示符(URI),當我們在元素的開始標記處使用命名空
間時,該元素所有的子項目都將通過一個首碼與同一個命名空間相互關聯。
注意:用來標識命名空間的網路地址並不被XML解析器調用,XML解析器不需要從這個網路地址中尋找資訊,該網路地
址的作用僅僅是給命名空間一個唯一的名字,因此這個網路地址也可以是虛擬,然而又很多公司經常把這個網路地址
值象一個真實的Web頁面,這個地址包含了關於當前命名空間更詳細的資訊。
預設命名空間
  定義一個預設的XML命名空間使得我們在子項目的開始標記中不需要使用首碼。他的文法如下所示:
    
      <element xmlns="namespace">
如前面例子中xmlns=http://www.Monson-Haefel.com/jwsbook/PO"就聲明了一個預設的命名空間。xmlns屬性使
元素和不同的命名空間關聯在一起。
限定名稱
  對於XML而言,與元素名組合在一起的首碼稱為限定名稱(QName)。因此像addr:address這樣的限定名稱可以不引用
http://www.MonsonHaefel.com/jwsbook/ADDR。
  QName包括兩個部分,即XML命名空間和位置名稱。如上例中的street元素的限定名稱由命名空間http://www.Monson-haefel.com/jwsbook/ADDRww.Monson-haefel.com/jwsbook/ADDR
和位置名稱street組成。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.