2009-04-16 104 views
4

假設我有以下XML架構文件,下面的XML文檔文件。我有兩個問題,XML默認命名空間問題

  1. 由於在XML Schema文件中沒有指定目標名稱空間,因此Information元素中的名稱空間是什麼?

  2. 在XML文檔文件,使用信息時,該命名空間它屬於哪一種?請注意在這種情況下,我沒有從XML文檔文件中引用XML Schema文件。

XML架構文件:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
elementFormDefault="qualified"> 
<xs:element name="Information" type="xs:string"/> 
</xs:schema> 

XML文檔文件:

<?xml version="1.0" encoding="utf-8"?> 
<Information>Hello XML</Information> 

由於事先 喬治

回答

9

信息元素將在沒有命名空間。要將其置於默認名稱空間中,您必須在標記中指定該名稱空間。

<Information xmlns="http://www.mydefaultnamespace.com"> 

Oracle article

沒有命名空間

時,有範圍沒有默認命名空間不存在任何命名空間。 {默認名稱空間}是使用xmlns明確聲明的名稱空間。當使用xmlns完全沒有聲明{默認命名空間}時,說元素在{default> namespace}中是不正確的。在這種情況下,我們說這些元素在{no namespace}中。 {no namespace}>也適用於已聲明的{默認命名空間}未聲明的情況。

這裏有一個非常全面的命名空間資源:

XML Namespaces FAQ

+0

@dommer,我想在我的情況下,在XML模式文件中的信息元素沒有命名空間的定義。另一個問題,我們將如何在XML文檔文件中引用這樣的元素(在無名稱空間中)? – George2 2009-04-16 09:39:25

+0

我不確定你可以明確地引用它。你會提到什麼?沒有命名空間。我認爲你必須指定一個默認名稱空間來明確地引用任何東西 - 但我準備證明是錯誤的。 – dommer 2009-04-16 09:47:29

1

你爲什麼要定義沒有目標模式?它沒有任何意義。