Schema validation not possible

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Schema validation not possible

lulseged
This post has NOT been accepted by the mailing list yet.
This post was updated on .
Hi  

 I have splitted my schema into number of schemas and it won't validate any more. It validates when it is a single schema.

When compiling with JAXB, java objects created are equal for both single and multiple schemas.

I am getting cvc-elt.1 Cannot find the declaration of element 'itinerary'.

 I appreciate any help.

Single schema:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:e="http://example.org/" targetNamespace="http://example.org/"
        elementFormDefault="qualified" attributeFormDefault="qualified">

        <xsd:element name="travel" type="e:TravelType" />

        <xsd:complexType name="TravelType" abstract="true">
                <xsd:sequence>
                        <xsd:element name="origin" type="xsd:string" />
                        <xsd:element name="destination" type="xsd:string" />
                </xsd:sequence>
        </xsd:complexType>

       
        <xsd:element name="auto" type="e:AutoType" substitutionGroup="e:travel" />

        <xsd:complexType name="AutoType">
                <xsd:complexContent>
                        <xsd:extension base="e:TravelType">
                                <xsd:sequence>
                                        <xsd:element name="rentalAgency" type="e:RentalCompany" />
                                        <xsd:element name="ratePerHour" type="xsd:int" />
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>

        <xsd:simpleType name="RentalCompany">
                <xsd:restriction base="xsd:NCName">
                        <xsd:enumeration value="Avis" />
                        <xsd:enumeration value="Hertz" />
                        <xsd:enumeration value="RentAWreck" />
                </xsd:restriction>
        </xsd:simpleType>

       
        <xsd:element name="plane" type="e:PlaneType" substitutionGroup="e:travel" />

        <xsd:complexType name="PlaneType">
                <xsd:complexContent>
                        <xsd:extension base="e:TravelType">
                                <xsd:sequence>
                                        <xsd:element name="flightNumber" type="xsd:int" />
                                        <xsd:element name="meal" type="xsd:string" />
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>

       
        <xsd:element name="train" type="e:TrainType" substitutionGroup="e:travel" />

        <xsd:complexType name="TrainType">
                <xsd:complexContent>
                        <xsd:extension base="e:TravelType">
                                <xsd:sequence>
                                        <xsd:element name="track" type="xsd:int" />
                                        <xsd:element name="dailyScheduleNumber" type="xsd:int" />
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>

       
        <xsd:element name="itinerary" type="e:itinerary-type" />

        <xsd:complexType name="itinerary-type">
                <xsd:sequence>
                        <xsd:element ref="e:travel" maxOccurs="unbounded" />
                </xsd:sequence>
        </xsd:complexType>

</xsd:schema>


Multiple schemas:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.org" targetNamespace="http://example.org"
        elementFormDefault="qualified" attributeFormDefault="unqualified">

        <xsd:element name="travel" type="TravelType" />

        <xsd:complexType name="TravelType" abstract="true">
                <xsd:sequence>
                        <xsd:element name="origin" type="xsd:string" />
                        <xsd:element name="destination" type="xsd:string" />
                </xsd:sequence>
        </xsd:complexType>

</xsd:schema>

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.org" targetNamespace="http://example.org"
        elementFormDefault="qualified" attributeFormDefault="unqualified">

        <xsd:include schemaLocation="travel.xsd" />

        <xsd:element name="auto" type="AutoType" substitutionGroup="travel" />

        <xsd:complexType name="AutoType">
                <xsd:complexContent>
                        <xsd:extension base="TravelType">
                                <xsd:sequence>
                                        <xsd:element name="rentalAgency" type="RentalCompany" />
                                        <xsd:element name="ratePerHour" type="xsd:int" />
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>

        <xsd:simpleType name="RentalCompany">
                <xsd:restriction base="xsd:NCName">
                        <xsd:enumeration value="Avis" />
                        <xsd:enumeration value="Hertz" />
                        <xsd:enumeration value="RentAWreck" />
                </xsd:restriction>
        </xsd:simpleType>
</xsd:schema>

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.org" targetNamespace="http://example.org"
        elementFormDefault="qualified" attributeFormDefault="unqualified">

        <xsd:include schemaLocation="travel.xsd" />

        <xsd:element name="plane" type="PlaneType" substitutionGroup="travel" />

        <xsd:complexType name="PlaneType">
                <xsd:complexContent>
                        <xsd:extension base="TravelType">
                                <xsd:sequence>
                                        <xsd:element name="flightNumber" type="xsd:int" />
                                        <xsd:element name="meal" type="xsd:string" />
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
</xsd:schema>

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://example.org" targetNamespace="http://example.org"
        elementFormDefault="qualified" attributeFormDefault="unqualified">

        <xsd:include schemaLocation="travel.xsd" />

        <xsd:element name="train" type="TrainType" substitutionGroup="travel" />

        <xsd:complexType name="TrainType">
                <xsd:complexContent>
                        <xsd:extension base="TravelType">
                                <xsd:sequence>
                                        <xsd:element name="track" type="xsd:int" />
                                        <xsd:element name="dailyScheduleNumber" type="xsd:int" />
                                </xsd:sequence>
                        </xsd:extension>
                </xsd:complexContent>
        </xsd:complexType>
</xsd:schema>

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://example.org" targetNamespace="http://example.org"
        elementFormDefault="qualified" attributeFormDefault="unqualified">

        <xs:include schemaLocation="travel.xsd" />

        <xs:include schemaLocation="auto.xsd" />

        <xs:include schemaLocation="plane.xsd" />

        <xs:include schemaLocation="train.xsd" />

        <xs:element name="itinerary" type="itinerary-type" />

        <xs:complexType name="itinerary-type">
                <xs:sequence>
                        <xs:element ref="travel" maxOccurs="unbounded" />
                </xs:sequence>
        </xs:complexType>
</xs:schema>