I have problem with validation.
I have simple xml:
<AppData xmlns="http://ift.tt/1cIHFeG">
<Data>
<RelocationType>1</RelocationType>
<DocNumber>RU/2013/2-68</DocNumber>
<IssueDate>2013-01-31T00:00:00</IssueDate>
<Format>1</Format>
</Data>
</AppData>
and I have XSD scheme:
<xsd:schema xmlns:xsd="http://ift.tt/tphNwY"
xmlns:ns1="http://ift.tt/1cIHFeG" xmlns:ns2="http://ift.tt/1euX8oV"
targetNamespace="http://ift.tt/1cIHFeG" elementFormDefault="qualified">
<xsd:group name="group1">
<xsd:sequence>
<xsd:sequence>
<xsd:element name="RelocationType" type="xsd:int" minOccurs="1" maxOccurs="1"/>
<xsd:element name="DocNumber" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="IssueDate" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Format" type="xsd:int" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:sequence>
</xsd:group>
<xsd:group name="group2">
<xsd:sequence>
<xsd:element name="Certificate" type="ns1:Certificate" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:group>
<xsd:group name="group3">
<xsd:sequence>
<xsd:element name="RelocationType" type="xsd:int" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Category" type="xsd:int" nillable="true" minOccurs="1" maxOccurs="1"/>
<xsd:element name="LastUpdate" type="xsd:dateTime" nillable="true" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:group>
<xsd:group name="group4">
<xsd:sequence>
<xsd:element name="Certificates" type="ns1:ArrayOfCertificate" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:group>
<xsd:group name="group5">
<xsd:sequence> </xsd:sequence>
</xsd:group>
<xsd:group name="group6">
<xsd:sequence>
<xsd:element name="Items" type="ns1:ArrayOfCategoryItem" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:group>
<xsd:element name="AppData" type="ns1:AppDataType"/>
<xsd:complexType name="AppDataType">
<xsd:sequence>
<xsd:element name="Data" type="ns1:DataType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DataType">
<xsd:choice maxOccurs="unbounded" minOccurs="0">
<xsd:group ref="ns1:group1"/>
<xsd:group ref="ns1:group2"/>
<xsd:group ref="ns1:group3"/>
<xsd:group ref="ns1:group4"/>
<xsd:group ref="ns1:group5"/>
<xsd:group ref="ns1:group6"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="Certificate">
<xsd:sequence>
<xsd:element name="RelocationType" type="xsd:int" minOccurs="1" maxOccurs="1"/>
<xsd:element name="DocNumber" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="IssueDate" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
<xsd:element name="IssuedByOrg" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="IssuedByPerson" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="IsTemporary" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Period" type="ns1:Period" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Items" type="ns1:ArrayOfItem" minOccurs="0" maxOccurs="1"/>
<xsd:element name="ExportData" type="ns1:ExportData" minOccurs="0" maxOccurs="1"/>
<xsd:element name="ImportData" type="ns1:ImportData" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Country" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="HasImage" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
<xsd:element name="LastUpdate" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Period">
<xsd:sequence>
<xsd:element name="From" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
<xsd:element name="To" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayOfItem">
<xsd:sequence>
<xsd:element name="Item" type="ns1:Item" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ExportData">
<xsd:sequence>
<xsd:element name="DocOwnerName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="DocOwnerAddress" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Purpose" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Reason" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ImportData">
<xsd:sequence>
<xsd:element name="DocOwnerName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="DocOwnerAddress" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="DocOwnerInn" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="ReceiverName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="ReceiverAddress" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="ReceiverInn" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="ContractNumber" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="ContractDate" type="xsd:dateTime" nillable="true" minOccurs="1" maxOccurs="1"/>
<xsd:element name="AgreementSection" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Item">
<xsd:sequence>
<xsd:element name="Category" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="Quantity" type="xsd:float" minOccurs="1" maxOccurs="1"/>
<xsd:element name="MeasureUnitId" type="xsd:int" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayOfCertificate">
<xsd:sequence>
<xsd:element name="Certificate" type="ns1:Certificate" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GetCategoriesRequestAppData"/>
<xsd:complexType name="ArrayOfCategoryItem">
<xsd:sequence>
<xsd:element name="CategoryItem" type="ns1:CategoryItem" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CategoryItem">
<xsd:sequence>
<xsd:element name="CategoryId" type="xsd:int" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="ParentId" type="xsd:int" nillable="true" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
but after validation I have error:
E [Xerces] cos-nonambig: "http://ift.tt/1cIHFeG":RelocationType and "http://ift.tt/1cIHFeG":RelocationType (or elements from their substitution group) violate "Unique Particle Attribution". During validation against this schema, ambiguity would be created for those two particles.
XML can be in a different set of tags , but only one of "group1" or "group2" etc.
No comments:
Post a Comment