XML 命名空間(XML Namespaces)

2021-09-03 10:18:57 字數 1567 閱讀 1584

xml 命名空間提供避免元素命名衝突的方法。

命名衝突

在 xml 中,元素名稱是由開發者定義的,當兩個不同的文件使用相同的元素名時,就會發生命名衝突。

這個 xml 文件攜帶著某個**中的資訊:

bananas

這個 xml 文件攜帶有關桌子的資訊(一件家具):

african coffee table

80120

假如這兩個 xml 文件被一起使用,由於兩個文件都包含帶有不同內容和定義的 元素,就會發生命名衝突。

xml 解析器無法確定如何處理這類衝突。

使用字首來避免命名衝突

此文件帶有某個**中的資訊:

此 xml 文件攜帶著有關一件家具的資訊:

african coffee table 80 120

現在,命名衝突不存在了,這是由於兩個文件都使用了不同的名稱來命名它們的 元素 (和 )。

通過使用字首,我們建立了兩種不同型別的 元素。

使用命名空間(namespaces)

這個 xml 文件攜帶著某個**中的資訊:

此 xml 文件攜帶著有關一件家具的資訊:

african coffee table 80 120

與僅僅使用字首不同,我們為 標籤新增了乙個 xmlns 屬性,這樣就為字首賦予了乙個與某個命名空間相關聯的限定名稱。

xml namespace (xmlns) 屬性

xml 命名空間屬性被放置於元素的開始標籤之中,並使用以下的語法:

xmlns:namespace-prefix="namespaceuri"

當命名空間被定義在元素的開始標籤中時,所有帶有相同字首的子元素都會與同乙個命名空間相關聯。

注釋:用於標示命名空間的位址不會被解析器用於查詢資訊。其惟一的作用是賦予命名空間乙個惟一的名稱。不過,很多公司常常會作為指標來使用命名空間指向實際存在的網頁,這個網頁包含關於命名空間的資訊。

統一資源識別符號是一串可以標識網際網路資源的字元。最常用的 uri 是用來標示網際網路網域名稱位址的統一資源定位器(url)。另乙個不那麼常用的 uri 是統一資源命名(urn)。在我們的例子中,我們僅使用 url。

預設的命名空間(default namespaces)

為元素定義預設的命名空間可以讓我們省去在所有的子元素中使用字首的工作。

請使用下面的語法:

xmlns="namespaceuri"

這個 xml 文件攜帶著某個**中的資訊:

bananas

此 xml 文件攜帶著有關一件家具的資訊:

african coffee table

80120

命名空間的實際應用

當開始使用 xsl 時,您不久就會看到實際使用中的命名空間。xsl 樣式表用於將 xml 文件轉換為其他格式,比如 html。

如果您仔細觀察下面的這個 xsl 文件,就會看到大多數的標籤是html標籤。非 html 的標籤都有字首 xsl,並由此命名空間標示:"":

<?xml version="1.0" encoding="iso-8859-1"?> title

artist

XML 命名空間

xml 命名空間提供了一種避免元素命名衝突的方法。因為xml文件中使用的元素不是固定的,那麼兩個不同的xml文件使用同乙個名字來描述不同型別的元素的情況就可能發生。而這種情況又往往會導致命名衝突。請看下面兩個例子 這個 xml 文件在table元素中攜帶了水果的資訊 bananas 這個 xml 文...

XML 命名空間

xml 命名空間 xml 命名空間提供了一種避免元素命名衝突的方法。命名衝突 因為xml文件中使用的元素不是固定的,那麼兩個不同的xml文件使用同乙個名字來描述不同型別的元素的情況就可能發生。而這種情況又往往會導致命名衝突。請看下面兩個例子 這個 xml 文件在table元素中攜帶了水果的資訊 ba...

xml命名空間

xml命名空間 這個理解起來總感覺有些抽象,不太好懂,自己學的也是一知半解,但是感覺它的存在卻是很不同凡響的,在xml的應用中,給我們帶來了很多方便,也讓xml的功能得到了很大的提公升,自己感覺的,呵呵,有說的不對的地方,不要見笑喲 在進入正題之前,我們先引用乙個例子 bananas 在上面這個xm...