我是xsd的新手并且了解命名空间。最大限度地看到所有问题,博客等,但没有人可以帮我理解。
到目前为止我所理解的是,命名空间用于区分具有相同名称的元素。 (没有清除targetnamespace)
我对make命名空间的理解在
之下xlmns:foo()="URI" -->Namespace (Its a unique token I would say which is responsible to differentiate elements with this syntax. And this synatx given a name and the criteria of making that name is Prefix:ElementName-->Prefix.
我有一个例子
<foo:tag xmlns:foo="http://me.com/namespaces/foofoo"
xmlns:bar="http://me.com/namespaces/foobar"
>
<foo:head>
<foo:title>An example document</foo:title>
</foo:head>
<bar:body>
<bar:e1>a simple document</bar:e1>
<bar:e2>
Another element
</bar:e2>
</bar:body>
</foo:tag>
如果我们想在xsd中使用多个名称空间,那么我们可以像上面的例子一样声明它们。其中多个名称空间使用相同的前缀
foo:tag --->xmlns:foo="http://me.com/namespaces/foofoo"
foo:tag --->xmlns:bar="http://me.com/namespaces/foobar
是否像在java中一样,在包中我们可以有多个类,每个类都有自己的属性,如果是xml的元素。我对么 ?任何人都可以帮我理解TargetNamespace吗?
答案 0 :(得分:1)
targetNamespace
是将 分配给您正在创建的架构 的命名空间或此 架构的命名空间旨在定位或验证 。它是实例用于访问它声明的类型的命名空间。
例如:
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.bestxml.com/jswbook/po">
...
</schema>
在XML文档实例中,通过xmlns
属性声明要使用的命名空间
<purchaseOrder xmlns="http://www.bestxml.com/jswbook/po"
xmlns:addr="http://www.bestxml.com/jwsbook/addr">
<accountName>Shanita</accountName>
<accountNumber>123456</accountNumber>
<addr:street>20 King St</addr:street>
</purchaseOrder>