xsd, как включить targetNamespace в элемент - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть следующий 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 голосов
/ 01 ноября 2018

Я думаю, вам нужно добавить пространство имен в каждый указанный элемент ...

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

Надеюсь, это поможет ...

Привет

...