在編程語言,我已經習慣了嵌套xml名稱空間的做法是什麼?
namespace foo
{
namespace bar
{
void DoIt()
{
}
}
}
int main()
{
foo::bar::DoIt()
}
在架構(XSD),我想定義複合類型
<xsd:schema targetNamespace="http://www.stackoverflow.com/foo">
<xsd:complexType name="bar1">
...
</xsd:complexType>
<xsd:complexType name="bar2">
</xsd:complexType>
...
<xsd:complexType name="foo1" type = "bar1">
...
</xsd:complexType>
</xsd:schema>
概念我想BAR1和BAR2時候做類似的事情嵌套在http://www.stackoverflow.com/foo::bar命名空間(::從C++借用)中。我已經看到了什麼似乎完全是爲酒吧定義的第二個命名空間的例子。在這些例子中,bar stuff會在第二個命名空間「http://www.stackoverflow.com/foo/bar」中定義,如下例所示。這是我看到的最接近「嵌套」名稱空間的。
這麼一件事我可以種做的是從不同的模式導入棒的東西
<xsd:schema targetNamespace="http://www.stackoverflow.com/foo"
xmlns:bar = "http://www.stackoverflow.com/foo/bar">
<xsd:schema namespace="http://www.stackoverflow.com/foo/bar"
<xsd:complexType name="foo1">
<xsd:element name="bar1Instance" type="bar:bar1"/>
...
</xsd:complexType>
</xsd:schema>
部分。這是我只是想神交命名空間如何在XML不同VS說C++。 XML中是否存在嵌套命名空間的概念,或者每個命名空間都是獨立的?嵌套命名空間的概念如何實現或通常完成?它是否像我上面的例子一樣完成?命名空間是完全獨立的還是有創建嵌套關係的?
只有一個尼特:XML名稱空間*是必需的*是合法的IRI(國際化資源標識符),它是URI的超集,它是URL的超集。雖然你的真實點是絕對正確的;解析器將該名稱空間視爲完全不透明的字符串。 Ref:http://www.w3.org/TR/REC-xml-names/ – Peeja 2009-05-01 19:13:22