Я ищу лучшее решение для моей XML
схемы (XSD
).
У меня есть response
:
<xs:element name="exampleCatalogResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="meta" type="tns:metaType" />
<xs:element name="data" type="tns:defaultDataType" />
</xs:sequence>
</xs:complexType>
</xs:element>
... the defaultDatatype
:
<xs:complexType name="defaultDataType">
<xs:sequence>
<xs:element name="catalog">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="catalogItem" type="tns:catalogItem" />
</xs:sequence>
</xs:complexType>
<xs:unique name="itemIdConstraint">
<xs:selector xpath="tns:catalogItem" />
<xs:field xpath="tns:id" />
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
... и catalogItem
:
<xs:complexType name="catalogItem">
<xs:sequence>
<xs:element name="id" type="xs:nonNegativeInteger" />
</xs:sequence>
</xs:complexType>
... но теперь есть специальный предмет, который специализируется catalogItem
:
<xs:complexType name="specialItem">
<xs:complexContent>
<xs:extension base="tns:catalogItem">
<xs:sequence>
<xs:element name="code" type="xs:string" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Теперь мне нужно специализированное Response
для моего specialItem
для ответа на запрос, который ожидает это specialItem
.
Как я могу это понять, не написав другого defaultDataType
, где только тип catalogItem
меняется на tns:specialItem
?