xsd如何在元素中包含targetNamespace

时间:2018-11-01 18:11:39

标签: xsd-validation

我有以下xsd,其中我定义了targetNamespace。我想将targetNamespace包含在元素lastModifiedDate中。此xsd错误:

<xs:schema version="1.0" targetNamespace="http://com.uciext.ws.hw5"   xmlns:tns="http://com.uciext.ws.hw5" xmlns:xs="http://www.w3.org/2001/XMLSchema" >
  <xs:element name="catalog">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="lastModifiedDate"/>
        <xs:element ref="description"/>
        <xs:element maxOccurs="unbounded" ref="product"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="lastModifiedDate" type="xs:string"/>
  <xs:element name="description" type="xs:string"/>
  <xs:element name="product">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="sku"/>
        <xs:element ref="name"/>
        <xs:element ref="price"/>
        <xs:element ref="quantity"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="sku" type="xs:string"/>
  <xs:element name="name" type="xs:string"/>
  <xs:element name="price" type="xs:double"/>
  <xs:element name="quantity" type="xs:double"/>
</xs:schema>

检查xsd时得到以下元素:

Error resolving component 'lastModifiedDate'. It was detected that 'lastModifiedDate' has no namespace

如何包含targetNamespace

1 个答案:

答案 0 :(得分:0)

我认为您需要在每个引用的元素中添加名称空间...

<xs:schema version="1.0" targetNamespace="http://com.uciext.ws.hw5"   xmlns:tns="http://com.uciext.ws.hw5" xmlns:xs="http://www.w3.org/2001/XMLSchema" >
  <xs:element name="catalog">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="tns:lastModifiedDate"/>
        <xs:element ref="tns:description"/>
        <xs:element maxOccurs="unbounded" ref="tns:product"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="lastModifiedDate" type="xs:string"/>
  <xs:element name="description" type="xs:string"/>
  <xs:element name="product">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="tns:sku"/>
        <xs:element ref="tns:name"/>
        <xs:element ref="tns:price"/>
        <xs:element ref="tns:quantity"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="sku" type="xs:string"/>
  <xs:element name="name" type="xs:string"/>
  <xs:element name="price" type="xs:double"/>
  <xs:element name="quantity" type="xs:double"/>
</xs:schema>

希望有帮助...

致谢