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"