none
Whats wrong in my xsd schema ? It gives type element is not declared on include of another xsd file RRS feed

  • Question

  • I am trying to validate a xml using schema but the problem is xsd is not valid, i tried ti tested if it valid or not, it gives error XSD schema Error: Type 'eltyp_string035' is not declared. My code to verify the schema is here :

    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System.Xml.Linq;
    using System.Xml.Schema;
    
    namespace testingXmlValidation
    {
        class Program
        {
            static StringBuilder errors = new StringBuilder();
            static void Main(string[] args)
            {
    
                    string xsdPath = null;
                     xsdPath = "C:/Users/testing/a.xsd";
                    elementName = "SpeTrans";
    
                    try
                    {
                        XmlSchemaCollection sc = new XmlSchemaCollection();
                        sc.Add("testNamespaces", xsdPath);
                        Console.WriteLine("No Schema error.");
                    }
                    catch (XmlSchemaException ex)
                    {
                        Console.WriteLine("XSD schema Error: {0}", ex.Message);
                    }
    
                    Console.ReadKey();       
    
             }  
        }
    
    }

    My main xsd file is below It seems that either the problem is in this include or the file command.xsd which is included because it contains "eltyp_string035" declaration :

    ?xml version="1.0" encoding="utf-8" ?>
    <!--Created with Liquid XML 2015 Designer Edition 13.2.0.5980 (http://www.liquid-technologies.com)-->
    <!-- Version 1.0.1  du 14/09/2015: TypNoiSuiviE à TypNotSuiviE -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="testNamespaces">
        <xs:include schemaLocation="C:/Users/ACER/Desktop/KT-iNDIA/September/24thseptember2015-KtIndia/Shakhar24092015/xsdFile/common.xsd" />
        <xs:element name="Spetrans">
            <xs:complexType>
                <xs:sequence minOccurs="1">
                    <xs:element name="TypNotSuiviE" minOccurs="0" default="0">
                        <xs:annotation>
                            <xs documentation>Forçage Type de notification pour le suivi « Expéditeur »</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:integer">
                                <xs:totalDigits value="1" />
                                <xs:enumeration value="0" />
                                <xs:enumeration value="1" />
                                <xs:enumeration value="2" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="TypNotSuiviO" minOccurs="0" default="0">
                        <xs:annotation>
                            <xs:documentation>Forçage Type de notification pour le suivi « Donneur d’ordre »</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:integer">
                                <xs:totalDigits value="1" />
                                <xs:enumeration value="0" />
                                <xs:enumeration value="1" />
                                <xs:enumeration value="2" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="TypNotSuiviD" minOccurs="1" default="0">
                        <xs:annotation>
                            <xs:documentation>Forçage Type de notification pour le suivi « Donneur d’ordre »</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="xs:integer">
                                <xs:totalDigits value="1" />
                                <xs:enumeration value="0" />
                                <xs:enumeration value="1" />
                                <xs:enumeration value="2" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="ContDest" type="eltyp_string035" minOccurs="0" >
                        <xs:annotation>
                            <xs:documentation>Nom du contact Destinataire</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="MailDest" type="eltyp_string035" minOccurs="0" >
                        <xs:annotation>
                            <xs:documentation>Email du contact Destinataire</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="TelDest" type="eltyp_string020" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Téléphone du contact Destinataire</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="GsmDest" type="eltyp_string020" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Téléphone GSM du contact Destinataire</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="ValDecAssu" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Valeur Assurance En Centimes</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string009">
                                <xs:pattern value="[0-9]{9}" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="ValDevAssu" minOccurs="0" default="EUR">
                        <xs:annotation>
                            <xs:documentation>Devise valeur Assurance</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string003">
                                <xs:enumeration value="EUR" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="ValDecDou" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Valeur Douane En Centimes</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string009">
                                <xs:pattern value="[0-9]{9}" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="ValDevDou" minOccurs="0" default="EUR">
                        <xs:annotation>
                            <xs:documentation>Devise valeur Douane</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string003">
                                <xs:enumeration value="EUR" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="ValDecRep" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Valeur déclarée CRBT En Centimes</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string009">
                                <xs:pattern value="[0-9]{9}" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="ValDevRep" minOccurs="0" default="EUR">
                        <xs:annotation>
                            <xs:documentation>Devise valeur déclarée CRBT</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string003">
                                <xs:enumeration value="EUR" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="TypeRep" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Type de REP (Aller ou Retour) Ou bien  Type du SWAP déclaré (Aller ou Retour)
    Valeur par défaut à vide.
    SWPA = SWAP Aller, SWPR = SWAP Retour
    REPA = REP Aller, REPR = REP Retour
    </xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string004">
                                <xs:enumeration value="" />
                                <xs:enumeration value="SWPA" />
                                <xs:enumeration value="SWPR" />
                                <xs:enumeration value="REPA" />
                                <xs:enumeration value="REPR" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="RepRet" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>N° Chronopost du  REP ou du SWAP retour 
    Si le colis déclaré est un SWAP Aller, indiquer ici le N° du Retour. Si le colis déclaré est un REP Aller, indiquer ici le N° du Retour.</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string013" />
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="RepDep" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>N° Chronopost du  REP ou du SWAP aller
    Si le colis déclaré est un SWAP Retour, indiquer ici le N° du Aller. Si le colis déclaré est un REP Retour, indiquer ici le N° du Aller
    </xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string013" />
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="CptPart" type="eltyp_string045" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>information fourni par Chronopost</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="DatDebRdv" type="Eltyp_DateAAAAMMJJHHMM" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation> Date de début de rendez-vous Sous la forme AAAAMMJJHHMM Uniquement pour les produits à livraison sur RDV</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="DatFinRdv" type="Eltyp_DateAAAAMMJJHHMM" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation> Date de fin de rendez-vous Sous la forme AAAAMMJJHHMM Uniquement pour les produits à livraison sur RDV</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="LivExpVen" minOccurs="0" default="A">
                        <xs:annotation>
                            <xs:documentation>Jour de livraison souhaité pour les envois du vendredi
    0 : Normal ,1: Lundi, 2: Mardi, 3: Mercredi, 4: Jeudi, 5: Vend et 6: Samedi 
    « A » Déterminé par Mutualisation Expédition
    </xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string001">
                                <xs:enumeration value="0" />
                                <xs:enumeration value="1" />
                                <xs:enumeration value="2" />
                                <xs:enumeration value="3" />
                                <xs:enumeration value="4" />
                                <xs:enumeration value="5" />
                                <xs:enumeration value="6" />
                                <xs:enumeration value="A" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="GpsLivLat" type="eltyp_string045" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Coordonnées GPS du point à livrer : Latitude </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="GpsLivLon" type="eltyp_string045" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Coordonnées GPS du point à livrer : Longitude </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="InstPart1" type="eltyp_string045" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Informations libre émetteur</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="InstPart2" type="eltyp_string045" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Informations libre émetteur</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="NumCR" type="eltyp_string011" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Informations libre émetteur</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="MonTransHT" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Montant du transport HT  En Centimes</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string009">
                                <xs:pattern value="[0-9]{9}" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="MonTransTTC" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Montant du transport TTC En Centimes</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string009">
                                <xs:pattern value="[0-9]{9}" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="MonTransTVA" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Montant du transport TVA En Centimes</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string009">
                                <xs:pattern value="[0-9]{9}" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="ValDevTrans" minOccurs="0" default="EUR">
                        <xs:annotation>
                            <xs:documentation>Devise valeur Assurance</xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                            <xs:restriction base="eltyp_string003">
                                <xs:enumeration value="EUR" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="RefSwap" type="eltyp_string045" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Référence SWAP</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="NumColEmet" type="eltyp_string035" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>N° interne du colis chez l'émetteur Ligne à disposition émetteur</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="RefExp" type="eltyp_string035" minOccurs="0">
                        <xs:annotation>
                            <xs:documentation>Référence Expéditeur Ligne à disposition émetteur</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:schema>
    and common.xsd is :
     <?xml version="1.0" encoding="utf-8" ?>
    <!--Created with Liquid XML 2015 Designer Edition 13.1.0.5909 (http://www.liquid-technologies.com)-->
    <!--Version 1.0.1 du 24/06/2015  -->
    <!--Version 1.0.2 du 07/07/2015  -->
    <!--Version 1.0.3 du 16/07/2015  -->
    <!--Version 1.0.4 du 21/07/2015  - Correction liste des trans/modtrans/Col -->
    <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <!--Element De base -->
    
        </xs:simpleType>
        <xs:simpleType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="eltyp_string032">
            <xsd:restriction base="xsd:string">
                <xsd:maxLength value="32" />
            </xsd:restriction>
        </xs:simpleType>
        <xs:simpleType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="eltyp_string035">
            <xsd:restriction base="xsd:string">
                <xsd:maxLength value="35" />
            </xsd:restriction>
        </xs:simpleType>
    
    </xs:schema>
    <!--Fin des ꭩments de type complexes-->
    Why the main.xsd is not able to get the declaration of "eltyp_string035"
    • Modifié iamxavxav mardi 29 septembre 2015 12:38
    mardi 29 septembre 2015 12:05