TargetNamespace如何与命名空间

时间:2018-01-06 11:30:07

标签: java xml xsd namespaces

我是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吗?

1 个答案:

答案 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>