У меня есть xsd, который имеет 3 импорта в другой xsd, 8 сложных типов и 3 простых типа.
Теперь мне нужно поработать только с одним типом типа «комбекс», который, в свою очередь, наследует многие другие XSD - в основном те 3 импорта, которые имеет текущий xsd.
Я получу XML-файл, содержащий данные только по одному сложному типу, о котором я упоминал.
Сейчас я пытаюсь сгенерировать образец XML-файла, который содержит данные в соответствии с одним сложным типом, и пытаюсь проверить его, но когда я пытаюсь сделать это с помощью XMLSpy или OxygenXML, он говорит, что корневой узел не определен.
Теперь, когда я пытаюсь определить корневые узлы, это не позволяет мне сделать это, и если я пытаюсь создать другой xsd только для этого сложного типа, это также дает мне некоторые ошибки как унаследованный xsd, на который указывает этот сложный тип в начальный xsd не работает в новом, я попытался унаследовать 3 xsd, на которые указывает сложный тип в начальном xsd в новом xsd, но все же он не работает.
Также еще один мой вопрос: можем ли мы проверить XML-файл по какой-то части XSD по сравнению с полным XSD, потому что XML, который я получаю, соответствует 1 сложному типу элемента в XSD?
Формат исходного XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:schema location targetNamespace=targetnamespace elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.652">
<xs:import namespace=first xsd which is imported>
<xs:import namespace=second xsd which is imported>
<xs:import namespace=third xsd which is imported>
<xs:complexType name="firstcomplextype" abstract="false">
<xs:sequence>
<xs:element name="some value" type="xs:string" minOccurs="0"/>
<xs:element name="some value" type="some value"/>
<xs:element name="some value" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="some value" type="xs:int" use="required"/>
<xs:attribute name="some value" type="xs:value" use="required"/>
<xs:attribute name="some value" type="xs:int" use="required"/>
</xs:complexType>
<xs:complexType name="second complex type" abstract="false">
<xs:sequence>
<xs:element name="some value" type="xs:some value" minOccurs="0"/>
<xs:element name="some value" type="xs:some value" minOccurs="0"/>
<xs:element name="some value" type="some value"/>
<xs:element name="some value" type="some value"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="third complex type**I need to work with only this complex type and xml file will contain data according to this complex type only and I need to validate incoming XML against only this complex type**" abstract="false">
<xs:sequence>
<xs:element name="some value" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="some value" type="some value" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="some value" type="some value"/>
<xs:element name="some value" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="some value" type="some value" minOccurs="0" maxOccurs="unbounded"/>---**Here this particular element points to another XSD, one of the imported XSD's**
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:sequence minOccurs="0">
<xs:element name="some value" type="xs:some value" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="some value" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="some value" type="some value" minOccurs="0" maxOccurs="unbounded"/>---**Here this particular element points to another XSD, one of the imported XSD's**
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:sequence minOccurs="0">
<xs:element name="some value" type="xs:some value" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="some value" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="some value" type="some value" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:sequence>
</xs:complexType>
<xs:complexType name="4th complex type" abstract="false">
<xs:sequence>
<xs:element name="elements">
<xs:complexType>
<xs:sequence>
<xs:element name="some value" type="some value" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
и xsd продолжается, так как имеет много более сложных типов и простых типов. Любое руководство будет высоко ценится.