Xsd Xml模式中目标名称空间的说明?

Xsd Xml模式中目标名称空间的说明?,xsd,Xsd,例如,假设我们有以下模式(在中列出) 您能解释一下“schema”节点中每个属性的用途是什么吗?我一直在想办法解决这个问题,但我不明白。如果我错了,请纠正我: 我假设xmlns=”http://www.w3.org/2001/XMLSchema“指的是没有前缀的元素和属性 xmlns:po=”http://www.example.com/PO1“似乎意味着任何以po为前缀的内容都指向此url(example.com/p01) 我不明白targetNamespace是做什么用的。我也不明白合格

例如,假设我们有以下模式(在中列出)


您能解释一下“schema”节点中每个属性的用途是什么吗?我一直在想办法解决这个问题,但我不明白。如果我错了,请纠正我:

我假设
xmlns=”http://www.w3.org/2001/XMLSchema“
指的是没有前缀的元素和属性

xmlns:po=”http://www.example.com/PO1“
似乎意味着任何以
po
为前缀的内容都指向此url(example.com/p01)


我不明白
targetNamespace
是做什么用的。我也不明白合格或不合格是什么意思。

这有点像术语雷区,但本质上,
xmlns=”http://www.w3.org/2001/XMLSchema“
xmlns:po=”http://www.example.com/PO1“
用于为架构文档本身声明名称空间。请记住,XML模式只是一个XML文档,它需要声明它使用的名称空间,就像任何其他XML文档一样

targetNamespace
用于定义架构实例文档的命名空间,即符合架构的文档。此类文档将声明其名称空间为
http://www.example.com/PO1
,使用他们选择的任何前缀,例如,他们可以使用
xmlns=”http://www.example.com/PO1“
xmlns:po=”http://www.example.com/PO1“

<schema xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:po="http://www.example.com/PO1"
        targetNamespace="http://www.example.com/PO1"
        elementFormDefault="unqualified"
        attributeFormDefault="unqualified">

  <element name="purchaseOrder" type="po:PurchaseOrderType"/>
  <element name="comment"       type="string"/>

  <complexType name="PurchaseOrderType">
    <sequence>
      <element name="shipTo"    type="po:USAddress"/>
      <element name="billTo"    type="po:USAddress"/>
      <element ref="po:comment" minOccurs="0"/>
      <!-- etc. -->
    </sequence>
    <!-- etc. -->
  </complexType>

  <complexType name="USAddress">
    <sequence>
      <element name="name"   type="string"/>
      <element name="street" type="string"/>
      <!-- etc. -->
    </sequence>
  </complexType>

  <!-- etc. -->

</schema>