This question already has answers here:
xmlns, xmlns:xsi, xsi:schemaLocation, and targetNamespace?
                            
                                (2个答案)
                            
                    
                    
                        How to link XML to XSD using schemaLocation or noNamespaceSchemaLocation?
                            
                                (1个答案)
                            
                    
                2年前关闭。
        

    

我是xsd的新手,正在学习有关名称空间的知识。看到的所有问题,博客等最多,但没人能以简单的方式帮助我理解。

到目前为止,我已经知道,命名空间用于区分具有相同名称的元素。 (未清除有关targetnamespace的信息)

我对制作名称空间的理解如下

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?

最佳答案

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>

关于java - TargetNamespace与Namespace有何区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48126889/

10-11 19:05