0
我目前正在構建一個XML模式,頭部,身體和可能的錯誤。我將那三個部分成不同的命名空間,所以我不知道何時何地,我應該把URI命名空間聲明中我應該在XML文檔中爲名稱空間放置URI聲明?
例如,它應該是:
<head:schema xmlns:head="http://mywebsite.com/ns/head/" xmnls:body="http://mywebsite.com/ns/body/" xmlns:error="http://mywebsite.com/ns/error/">
<head:Response>
<head:MyFunctionResponse>
<body:DataObject>
<body:Parameter>Foo</body:Parameter>
<body:Parameter>Bar</body:Parameter>
</body:DataObject>
</head:MyFunctionResponse>
</head:Response>
</head:schema>
因此,儘管那裏是沒有這個特定文檔中的「錯誤」命名空間仍然被定義,所以當「主體」命名空間被替換爲「錯誤」命名空間時,<schema>
保持不變。
還是應該更像這樣?
<head:schema>
<head:Response xmlns:head="http://mywebsite.com/ns/head/">
<head:MyFunctionResponse>
<body:DataObject xmnls:body="http://mywebsite.com/ns/body/">
<body:Parameter>Foo</body:Parameter>
<body:Parameter>Bar</body:Parameter>
</body:DataObject>
</head:MyFunctionResponse>
</head:Response>
</head:schema>
OR
<head:schema>
<head:Response xmlns:head="http://mywebsite.com/ns/head/">
<head:MyFunctionResponse>
<error:ThrownException xmnls:body="http://mywebsite.com/ns/error/">
<error:Id>21</error:Id>
<error:Message>Something went wrong.</error:Message>
</error:ThrownException>
</head:MyFunctionResponse>
</head:Response>
</head:schema>
在命名空間只聲明只是因爲它是必要的。
或者這是一個風格,意見或偏好的問題。像「靠窗座位,還是過道座位?」。
如果不是風格,意見或偏好,命名空間位置的指導思想是什麼?
所以,當你設置一個名稱空間時,除非另有定義,否則所有子項都設置了名稱空間,還是它對所有未來的兄弟姐妹都適用?這是爲了演示的目的而組合起來的,所以我將把根改爲名稱空間。 :-) – Drew 2010-10-06 22:36:41
命名空間適用於它們在其上定義的元素以及該元素的所有子元素。事實上,現在你的第二個樣本是不正確的,因爲它們有一個head:schema根元素,但是直到Response元素纔會定義頭名稱空間。 – 2010-10-07 10:57:36