Schema和xml命名空間理解筆記

2021-07-17 05:24:19 字數 2124 閱讀 7758

schema:

<?

xmlversion

="1.0"

?>

<

xsd:schema

xmlns:xsd

=""targetnamespace

=""xmlns

=""elementformdefault

="qualified"

>

<

xsd:element

name

="note"

>

<

xsd:complextype

>

<

xsd:sequence

>

<

xsd:element

name

="to"

type

="xs:string"

/>

<

xsd:element

name

="from"

type

="xs:string"

/>

<

xsd:element

name

="heading"

type

="xs:string"

/>

<

xsd:element

name

="body"

type

="xs:string"

/>

xsd:sequence

>

xsd:complextype

>

xsd:element

>

xsd:schema

>

1.此片段:xmlns:xsd="

",表明此schema中使用的元素和資料型別來自於"

"命名空間(namespace)。它同樣指出來自於"

"命名空間的元素和資料型別必須使用帶"xsd: "字首。作為命名空間的識別符號(在宣告中作為元素或屬性的字首),你也可以不使用xsd或xsi。這個 xmlns屬性包含了基本的xml schema元素,比如element, attribute, complextype, group, ******type等。

也可以不使用xsd或xsi。這個 xmlns屬性包含了基本的xml schema元素,比如element, attribute, complextype, group, ******type等。對於任何乙個xml schema定義文件(xsd)都有乙個最頂層的schema (xsd)元素。而且該schema (xsd)元素定義必須包含這個命名空間:

。即此命名空間是由xml模式規範定義的標準命名空間-所有xml模式元素必須屬於該命名空間。

2.此片段:targetnamespace="

",表明此schema (note, to, from, heading, body)定義的元素來自於"

"命名空間。這個targetnamespace屬性表示了該schema所對應的命名空間的uri。也就是說在引用該schema的其它文件(包括自身文件)中要宣告命名空間,其uri應該是targetnamespace的屬性值。例如在這裡因為要用到note.xsd自己定義的擴充套件資料型別(note, to, from, heading, body),所以也宣告了命名空間xmlns="

"。而且該命名空間是預設命名空間(沒有字首)。targetnamespace屬性為在模式中顯式建立的所有新型別均宣告了xml命名空間。

xml:

<

note

xmlns

=""xmlns:xsi

="-instance"

xsi:schemalocation

=" note.xsd"

>

1.其中預設命名空間宣告xmlns="

"就是和上面宣告的xml schema的命名空間相結合來規定該xml文件。(即該文件用到了此命名空間中定義的資料)

2.xmlns:xsi="

-instance

" 是任何xml例項文件固有的xml模式例項命名空間,它由xml模式規範定義。

3.xsi:schemalocation="

note.xsd"則規定了該命名空間所對應的schema的位置,即在相同路徑的note.xsd檔案。

schema命名空間介紹

schema是用於描述和規範xml文件的 邏輯結構 的一種語言,它最大的作用就是驗證xml 檔案邏輯結構 的正確性。可以理解成與 dtd 文件型別定義 功能差不多 但是schema在當前的web開發環境下優越很多。因為它本身就是乙個有效的xml文件,因而可以更直觀地了解xml的結構。除此之外,sch...

schema的命名空間

其實就是像物件引用它內部值的方式,這需要我們在xsl檔案的開頭自己進行定義,來確定命名空間的規則 規則有 定義我們自己的名稱和url位址 這個url是隨便寫的,但要遵守http規則,只是用於區分名稱的 使用外部的規則,是否要求在本檔案中使用命名空間 正常的這個寫法應該是 先引入預設命名空間,自定義自...

XML 命名空間

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