XML Schema中的幾個命名空間

2021-04-01 07:50:26 字數 2314 閱讀 2304

對xml schema中命名空間的兩個錯誤理解(**:http://magicwd.***/march/zblog/catalog.asp?cate=1)

最近開始進入xml實踐階段,主要是因為神奇一刻

準備推出乙個電影方面的欄目,我們準備使用xml來做一些工作,所以,這兩天在這兩天在試著寫寫xml和xsdl。昨天,兩個問題困擾了我一晚上!都是關於命名空間(namespace)的問題。

原來在一篇關於xml schema的文章

中寫到定義了目標命名空間(targetnamespace)的xml schema在實力化後,其xml文件中的xsi:schemalocation的值應為.xsd文件的位置。現在才知道錯了,應該是

也就是說,xsi:schemalocation的值應該是乙個列表,即乙個表示在.xsd文件中定義的目標命名空間,乙個是.xsd的路徑。

另乙個問題,如果在.xsd文件中是如下定義的:

...

那麼,其中的elementformdefault一定要設成"qualified",因為這種情況下,預設的命名空間的字首(prefix)是空的,所以,在實力化後的xml文件中,元素就沒有字首了。但是這個問題我還是沒有完全弄明白,等弄明白了在寫篇文章吧。

這兩天發現,還是altova xml suite enterprises

好用,放棄了stylus studio 6

。在學習xml schema

的時候,文件中元素的三個命名空間

(namespace)以及在xml中應用xml schema時所需要的命名空間,總是讓像我這樣的初學者摸不找頭腦,不知道有什麼用途,有什麼區別。所以對這些命名空間做了個總結,希望能夠理清一些思路。

以下是乙個xml schema文件範例(**1):

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

...

即上面文件中的xmlns:xsd="http://.w3./2001/xmlschema"是定義所有xml schema元素的命名空間(帶有xsd字首的元素),比如,xml schema文件的根元素,元素宣告等等。

targetnamespace實際上就是需要用該schema的xml文件要遵守的命名空間。比如

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

...

其對應的xml文件就應該是:

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

...

xmlns="http://.marchbox.***/ns"部分,其定義的是xml schema文件中的預設命名空間,比如在下面這個元素宣告中,任何乙個得到使用或引用(ref="root")的元素或屬性都將應該遵守這個預設的命名空間http://.marchbox.***/ns

如果要把乙個xml schema文件(*.xsd)應用到乙個xml文件中時,我們可以分為兩種情況:

最後來看看中的這兩個可選的(不必要的)屬性。elementformdefault用來定義例項化後的xml文件中,屬性名稱的前面是否需要加命名空間字首,如果elementformdefault="qualified",那麼xml的屬性名稱前面就需要加字首,比如xml schema文件如**1,xml文件如下:

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

可以看見,每個元素都要求帶有字首」mcb:「如果值為」unqualified「,那麼就不需要「mcb:」了。attributeformdefault的意思一樣,只是需要加字首的不是元素而是屬性,如果值為」qualified「,那麼,上面的xml文件**中的type="straight"就應該寫為mcb:type="straight"了。

以上就是對xml schema中一些命名空間方面知識作得總結。

XML Schema命名空間

xml schema有兩種,分別是微軟和w3c的版本。可以從其命名空間直接區分 這裡我們主要討論的是w3c版本,實際上兩者差別並不是很大。xmlns xsd xmlns targetnamespace elementformdefault qualified 這段 是w3c版本下的schema命名空...

命名空間和XML Schema

namespace 命名空間是一組保持唯一的名稱。例如,可以將乙個公司所有人的姓名視為乙個命名空間。命名空間就是在邏輯上相關的任何一組名稱,而且每個名稱都必須唯一。lvqi pingdu reminder dont forget eat grass 預設命名空間 lvqi pingdu remind...

XML Schema和名域 命名空間

xml schema和名域 命名空間 xml schema和名域 schema 是一些規則的集合 也稱為語法或者語彙 其中包括了型別定義 簡單和複雜型別 以及元素和屬性宣告。由於xml中可能存在不同的語彙來描述不同的元素和屬性,因此需要使用名域 namespace 和字首來避免元素和屬性宣告之間的模...