XML指南 XML 命名空間

2021-03-31 20:08:58 字數 2034 閱讀 3089

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

因為xml文件中使用的元素不是固定的,那麼兩個不同的xml文件使用同乙個名字來描述不同型別的元素的情況就可能發生。而這種情況又往往會導致命名衝突。請看下面兩個例子

這個 xml 文件在table元素中攜帶了水果的資訊:

bananas

這個 xml 文件在table元素中攜帶了桌子的資訊(家具,不能吃的哦):

african coffee table

80120

如果上面兩個xml文件片斷碰巧在一起使用的話,那麼將會出現命名衝突的情況。因為這兩個片斷都包含了元素,而這兩個table元素的定義與所包含的內容又各不相同。

下面的xml文件在table元素中攜帶了資訊:

bananas

下面的xml文件攜帶了家具table的資訊:

african coffee table

80120

現在已經沒有元素命名衝突的問題了,因為這兩個文件對各自的table元素使用了不同的字首,table元素在兩個文件中分別是(和)。

通過使用字首,我們建立了兩個不同的table元素。

下面的xml文件在table元素中攜帶了資訊:

bananas

下面的xml文件攜帶了家具table的資訊:

african coffee table

80120

在上面兩個例子中除了使用字首外,兩個table元素都使用了xmlns屬性,使元素和不同的命名空間關聯到一起。

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

w3c 命名規範宣告命名空間本身就是乙個統一資源標示符,uniform resource identifier (uri)

當我們在元素的開始標記處使用命名空間時,該元素所有的子元素都將通過乙個字首與同乙個命名空間相互關聯。

注意:用來標識命名空間的網路位址並不被xml解析器呼叫,xml解析器不需要從這個網路位址中查詢資訊,該網路位址的作用僅僅是給命名空間乙個唯一的名字,因此這個網路位址也可以是虛擬的,然而又很多公司經常把這個網路位址值象乙個真實的web頁面,這個位址包含了關於當前命名空間更詳細的資訊。

可以訪問http://.w3./tr/html4/

. 通用資源識別符號(auniform resource identifier(uri))是乙個標識網路資源的字串。最普通的uri應該是統一資源定位符uniform resource locator(url)。url用於標識網路主機的位址。另一方面,另乙個不常用的uri是通用資源名字universal resource name(urn)。在我們的例子中,一般使用的是urls。

既然前面的例子使用的url位址來標識命名空間,我們可以確信這個命名空間是唯一的。

定義乙個預設的xml命名空間使得我們在子元素的開始標記中不需要使用字首。他的語法如下所示:

下面的xml文件在table元素中包含了水果的資訊:

bananas

下面的xml文件包含了家具table的資訊:

african coffee table

80120

檔開始使用xsl的時候,就會發現命名空間使用的是如此頻繁。xsl樣式單主要用於將xml文件轉換成類似於html檔案的格式。

如果看一下下面的xsl文件,就會發現有很多標記都是html標記。那些標記並不是html標記,是加了字首的xsl,這個xsl字首由命名空間"http://.w3./tr/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...