title: create classes from xsd with multiple dependencies for c#
body: <p>I have an xsd which has 4 xsd dependencies. How can I create a class so I can use it in c#.
  I tried with <code>xsd.exe /classes ef15.xsd types.xsd tms.xsd tcl.xsd doc.xsd</code>
  but it gives me schema validation warnings.
  I don't know if I can change something in the xsd so it can work because I am not familiar with xsd schemas.
  I used the "generate code to XSD" tool in visual studio but it doesn't give me correct xml.</p>
  
  <p>Here is the xsd file</p>
  
  <pre><code>    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ie="http://www.icisnet.gr/emcs/v1.03/ef15/ie" xmlns:emcs="http://www.icisnet.gr/emcs/v1.03/types" xmlns:tms="http://www.icisnet.gr/emcs/v1.03/tms" xmlns:tcl="http://www.icisnet.gr/emcs/v1.03/tcl" xmlns:doc="http://www.icisnet.gr/emcs/v1.03/doc" targetNamespace="http://www.icisnet.gr/emcs/v1.03/ef15/ie" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.03"&gt;
    &lt;!--=========================================--&gt;
    &lt;!--===== EF15:N_DFK_SUB --&gt;
    &lt;!--===== Υποβολή ΔΕΦΚ --&gt;
    &lt;!--=========================================--&gt;
    &lt;!--===== Imports =====--&gt;
    &lt;xs:import namespace="http://www.icisnet.gr/emcs/v1.03/types" schemaLocation="types.xsd" /&gt;
    &lt;xs:import namespace="http://www.icisnet.gr/emcs/v1.03/tms" schemaLocation="tms.xsd" /&gt;
    &lt;xs:import namespace="http://www.icisnet.gr/emcs/v1.03/tcl" schemaLocation="tcl.xsd" /&gt;
    &lt;xs:import namespace="http://www.icisnet.gr/emcs/v1.03/doc" schemaLocation="doc.xsd" /&gt;
    &lt;!--===== Root Element =====--&gt;
    &lt;xs:element name="EF15A" type="ie:EF15AType" /&gt;
    &lt;!--===== EMCS Data Groups Declarations =====--&gt;
    &lt;xs:complexType name="EF15AType"&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="Header" type="tms:HeaderType" /&gt;
        &lt;xs:element name="Body" type="ie:BodyType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;!--===== IE Specific Data Groups Declarations =====--&gt;
    &lt;xs:complexType name="BodyType"&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="DeclarationOfExciseTaxesRegistration" type="ie:DeclarationOfExciseTaxesRegistrationType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="DeclarationOfExciseTaxesRegistrationType"&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="SubmittingOperator" type="ie:SubmittingOperatorType" minOccurs="0" /&gt;
        &lt;xs:element name="ExciseTaxesDeclaration" type="ie:ExciseTaxesDeclarationType" /&gt;
        &lt;xs:element name="ExciseTaxesDeclarationConsignor" type="ie:ExciseTaxesDeclarationConsignorType" minOccurs="0" /&gt;
        &lt;xs:element name="ExciseTaxesObligee" type="ie:ExciseTaxesObligeeType" /&gt;
        &lt;xs:element name="ExciseTaxesDeclarationConsignee" type="ie:ExciseTaxesDeclarationConsigneeType" /&gt;
        &lt;xs:element name="ExciseTaxesRow" type="ie:ExciseTaxesRowType" maxOccurs="unbounded" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="SubmittingOperatorType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="SUBMITTING OPERATOR" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="SubmittingOperatorIdentification" type="emcs:SubmittingOperatorIdentificationType" /&gt;
        &lt;xs:element name="SubmittingTraderIdentification" type="emcs:SubmittingTraderIdentificationType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="ExciseTaxesDeclarationType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="EXCISE TAXES DECLARATION" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="LocalReferenceNumber" type="emcs:LocalReferenceNumberType" /&gt;
        &lt;xs:element name="Fallbackflag" type="tcl:Flag" /&gt;
        &lt;xs:element name="FallbackDocumentReference" type="emcs:FallbackDocumentReferenceType" minOccurs="0" /&gt;
        &lt;xs:element name="FallbackOffice" type="emcs:ExciseOfficeCodeType" minOccurs="0" /&gt;
        &lt;xs:element name="RegistrationDate" type="emcs:DateType" minOccurs="0" /&gt;
        &lt;xs:element name="RegistrationOffice" type="emcs:ExciseOfficeCodeType" /&gt;
        &lt;xs:element name="DocumentState" type="tcl:DocumentStateCodes" /&gt;
        &lt;xs:element name="DocumentNumber" type="emcs:DocumentNumberType" /&gt;
        &lt;xs:element name="TotalDocuments" type="emcs:TotalDocumentsType" /&gt;
        &lt;xs:element name="NumberOfRows" type="emcs:NumberOfRowsType" /&gt;
        &lt;xs:element name="TotalPackages" type="emcs:TotalPackagesType" minOccurs="0" /&gt;
        &lt;xs:element name="FinancialResponsibleTaxId" type="emcs:FinancialResponsibleTaxIdType" minOccurs="0" /&gt;
        &lt;xs:element name="DispatchCountry" type="emcs:CountryCodeType" /&gt;
        &lt;xs:element name="DestinationCountry" type="emcs:CountryCodeType" minOccurs="0" /&gt;
        &lt;xs:element name="ExistenceOfContainerFlag" type="tcl:Flag" minOccurs="0" /&gt;
        &lt;xs:element name="DeliveryConditions" type="emcs:DeliveryConditionsType" minOccurs="0" /&gt;
        &lt;xs:element name="Currency" type="emcs:CurrencyType" minOccurs="0" /&gt;
        &lt;xs:element name="InvoiceAmount" type="emcs:InvoiceAmountType" minOccurs="0" /&gt;
        &lt;xs:element name="ExchangeFactor" type="emcs:ExchangeFactorType" minOccurs="0" /&gt;
        &lt;xs:element name="ChemicalAnalysisPerformedFlag" type="tcl:Flag" minOccurs="0" /&gt;
        &lt;xs:element name="ThroughSimplifiedProcedureFlag" type="tcl:Flag" minOccurs="0" /&gt;
        &lt;xs:element name="OfficeOfDispatch" type="emcs:ExciseOfficeCodeType" minOccurs="0" /&gt;
        &lt;xs:element name="PaymentMethodCode" type="tcl:PaymentMethodCodes" /&gt;
        &lt;xs:element name="CertificateIssuanceFlag" type="tcl:Flag" minOccurs="0" /&gt;
        &lt;xs:element name="DeclarationTypeCode" type="tcl:DeclarationTypeCodes" /&gt;
        &lt;xs:element name="CalculationOfTaxesDate" type="emcs:DateType" minOccurs="0" /&gt;
        &lt;xs:element name="GeneralChemistryDetails" type="ie:GeneralChemistryDetailsType" minOccurs="0" /&gt;
        &lt;xs:element name="DeliveryDetails" type="ie:DeliveryDetailsType" minOccurs="0" /&gt;
        &lt;xs:element name="ClearingAgent" type="ie:ClearingAgentType" /&gt;
        &lt;xs:element name="GuaranteeReference" type="ie:GuaranteeReferenceType" minOccurs="0" maxOccurs="2" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="GeneralChemistryDetailsType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="GENERAL CHEMISTRY DETAILS" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="SampleReference" type="emcs:SampleReferenceType" /&gt;
        &lt;xs:element name="AnalysisReference" type="emcs:AnalysisReferenceType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="DeliveryDetailsType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="DELIVERY DETAILS" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="TransportVehicleIdentificationNumber" type="emcs:TransportVehicleIdentificationNumberType" /&gt;
        &lt;xs:element name="TransportVehicleCountry" type="emcs:CountryCodeType" /&gt;
        &lt;xs:element name="NationalTransportMode" type="emcs:NationalTransportModeType" /&gt;
        &lt;xs:element name="DipennakNumber" type="emcs:DipennakNumberType" minOccurs="0" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="ClearingAgentType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="CLEARING AGENT" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="ClearingAgentType" type="tcl:ClearingAgentTypeCodes" /&gt;
        &lt;xs:element name="ClearingAgentEORI" type="emcs:ClearingAgentEORIType" minOccurs="0" /&gt;
        &lt;xs:element name="ClearingAgentAfm" type="emcs:ClearingAgentAfmType" minOccurs="0" /&gt;
        &lt;xs:element name="SpecialReferenceCode" type="emcs:SpecialReferenceCodeType" minOccurs="0" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="GuaranteeReferenceType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="GUARANTEE REFERENCE" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="GuaranteeReferenceNumber" type="emcs:GuaranteeReferenceNumberType" /&gt;
        &lt;xs:element name="GuaranteeAmount" type="emcs:GuaranteeAmountType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="ExciseTaxesDeclarationConsignorType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="EXCISE TAXES DECLARATION CONSIGNOR" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="ExciseTaxesDeclarationConsignorType" type="tcl:ExciseTaxesDeclarationConsignorTypeCodes" /&gt;
        &lt;xs:element name="TaxOrVehicleWarehouseReference" type="emcs:TaxOrVehicleWarehouseReferenceType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="ExciseTaxesObligeeType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="EXCISE TAXES OBLIGEE" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="ObligeeType" type="tcl:ExciseTaxesObligeeTypeCodes" /&gt;
        &lt;xs:element name="ObligeeIdentificationType" type="tcl:PersonIdentificationTypeCodes" minOccurs="0" /&gt;
        &lt;xs:element name="ObligeeIdentification" type="emcs:ObligeeIdentificationType" /&gt;
        &lt;xs:element name="ContactDetails" type="ie:ContactDetailsType" minOccurs="0" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="ContactDetailsType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="CONTACT DETAILS" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="LastNames" type="emcs:LastNamesType" /&gt;
        &lt;xs:element name="Forenames" type="emcs:ForenamesType" /&gt;
        &lt;xs:element name="NameOfFather" type="emcs:NameOfFatherType" /&gt;
        &lt;xs:element name="Address" type="emcs:AddressType" /&gt;
        &lt;xs:element name="Country" type="emcs:CountryCodeType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="ExciseTaxesDeclarationConsigneeType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="EXCISE TAXES DECLARATION CONSIGNEE" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="ConsigneeType" type="tcl:ExciseTaxesConsignee" /&gt;
        &lt;xs:element name="ConsigneeIdentificationType" type="tcl:PersonIdentificationTypeCodes" /&gt;
        &lt;xs:element name="ConsigneeIdentification" type="emcs:ConsigneeIdentificationType" /&gt;
        &lt;xs:element name="ContactDetails" type="ie:ContactDetailsType" minOccurs="0" /&gt;
        &lt;xs:element name="SpecialConsignee" type="ie:SpecialConsigneeType" minOccurs="0" /&gt;
        &lt;xs:element name="VesselRegistrationDetails" type="ie:VesselRegistrationDetailsType" minOccurs="0" /&gt;
        &lt;xs:element name="ComplementaryConsignees" type="ie:ComplementaryConsigneesType" minOccurs="0" maxOccurs="99" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="SpecialConsigneeType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="SPECIAL CONSIGNEE" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="SpecialConsigneeLicenseType" type="tcl:SpecialConsigneeLicenseTypeCodes" /&gt;
        &lt;xs:element name="SpecialConsigneeLicenseNumber" type="emcs:DeclarationReferenceNumberType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="VesselRegistrationDetailsType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="VESSEL REGISTRATION DETAILS" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="VesselRegistrationType" type="tcl:VesselRegistrationTypeCodes" /&gt;
        &lt;xs:element name="VesselRegistrationNumber" type="emcs:VesselRegistrationNumberType" /&gt;
        &lt;xs:element name="VesselName" type="emcs:VesselNameType" /&gt;
        &lt;xs:element name="VesselPortOfRegistration" type="emcs:VesselPortOfRegistrationType" /&gt;
        &lt;xs:element name="VesselIMO" type="emcs:VesselIMOType" minOccurs="0" /&gt;
        &lt;xs:element name="VesselCountryOfOrigin" type="emcs:CountryCodeType" minOccurs="0" /&gt;
        &lt;xs:element name="VesselCategory" type="emcs:VesselCategoryType" minOccurs="0" /&gt;
        &lt;xs:element name="VesselCapacity" type="emcs:VesselCapacityType" minOccurs="0" /&gt;
        &lt;xs:element name="VesselHorsePower" type="emcs:VesselHorsePowerType" minOccurs="0" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="ComplementaryConsigneesType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="COMPLEMENTARY CONSIGNEES" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="ComplementaryConsigneeIdentificationType" type="tcl:PersonIdentificationTypeCodes" /&gt;
        &lt;xs:element name="ComplementaryConsigneeIdentification" type="emcs:ComplementaryConsigneeIdentificationType" /&gt;
        &lt;xs:element name="ExemptionBeneficiaryFlag" type="tcl:Flag" minOccurs="0" /&gt;
        &lt;xs:element name="OwnershipPercentage" type="emcs:OwnershipPercentageType" minOccurs="0" /&gt;
        &lt;xs:element name="ContactDetails" type="ie:ContactDetailsType" minOccurs="0" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="ExciseTaxesRowType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="EXCISE TAXES ROW" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="ExciseTaxesDeclarationRowNumber" type="emcs:ExciseTaxesDeclarationRowNumberType" /&gt;
        &lt;xs:element name="SymbolNumbers" type="emcs:SymbolNumbersType" minOccurs="0" /&gt;
        &lt;xs:element name="ProductDescription" type="emcs:ProductDescriptionType" minOccurs="0" /&gt;
        &lt;xs:element name="TaricCode" type="emcs:TaricCodeType" /&gt;
        &lt;xs:element name="TaricAdditionCode" type="emcs:TaricAdditionCodeType" minOccurs="0" /&gt;
        &lt;xs:element name="TaxQuantity" type="emcs:TaxQuantityType" minOccurs="0" /&gt;
        &lt;xs:element name="MeasuringUnitsType" type="emcs:MeasuringUnitsTypeType" minOccurs="0" /&gt;
        &lt;xs:element name="AdditionalTaxQuantity" type="emcs:AdditionalTaxQuantityType" minOccurs="0" /&gt;
        &lt;xs:element name="AdditionalMeasuringUnits" type="emcs:AdditionalMeasuringUnitsType" minOccurs="0" /&gt;
        &lt;xs:element name="Plato" type="emcs:PlatoType" minOccurs="0" /&gt;
        &lt;xs:element name="EtepaaAmountPaid" type="emcs:EtepaaAmountPaidType" minOccurs="0" /&gt;
        &lt;xs:element name="ExciseTaxCompensation" type="emcs:ExciseTaxCompensationType" minOccurs="0" /&gt;
        &lt;xs:element name="VatAmountCompensation" type="emcs:VatAmountCompensationType" minOccurs="0" /&gt;
        &lt;xs:element name="VatInflowAmountCompensation" type="emcs:VatInflowAmountCompensationType" minOccurs="0" /&gt;
        &lt;xs:element name="OgaAmountCompensation" type="emcs:OgaAmountCompensationType" minOccurs="0" /&gt;
        &lt;xs:element name="TaxValue" type="emcs:TaxValueType" minOccurs="0" /&gt;
        &lt;xs:element name="CountryOfOrigin" type="emcs:CountryCodeType" minOccurs="0" /&gt;
        &lt;xs:element name="GrossWeight" type="emcs:GrossWeightType" minOccurs="0" /&gt;
        &lt;xs:element name="NetWeight" type="emcs:NetWeightType" minOccurs="0" /&gt;
        &lt;xs:element name="ConditionIdentification" type="tcl:ConditionIdentificationCodes" /&gt;
        &lt;xs:element name="PreviousConditionIdentification" type="tcl:PreviousConditionIdentificationCodes" /&gt;
        &lt;xs:element name="ExemptionCode" type="emcs:ExemptionCodeType" minOccurs="0" /&gt;
        &lt;xs:element name="NetValue" type="emcs:NetValueType" minOccurs="0" /&gt;
        &lt;xs:element name="StatisticalValue" type="emcs:StatisticalValueType" minOccurs="0" /&gt;
        &lt;xs:element name="SuspensionTypeCode" type="emcs:SuspensionTypeCodeType" minOccurs="0" /&gt;
        &lt;xs:element name="CarCertificate" type="emcs:CarCertificateType" minOccurs="0" /&gt;
        &lt;xs:element name="SupplementaryComputationInformation" type="ie:SupplementaryComputationInformationType" minOccurs="0" maxOccurs="99" /&gt;
        &lt;xs:element name="PreviousDocuments" type="ie:PreviousDocumentsType" minOccurs="0" /&gt;
        &lt;xs:element name="ReferenceDocuments" type="ie:ReferenceDocumentsType" minOccurs="0" maxOccurs="3" /&gt;
        &lt;xs:element name="NationalProducts" type="ie:NationalProductsType" minOccurs="0" maxOccurs="unbounded" /&gt;
        &lt;xs:element name="VehicleDetails" type="ie:VehicleDetailsType" minOccurs="0" maxOccurs="unbounded" /&gt;
        &lt;xs:element name="TaxComputation" type="ie:TaxComputationType" maxOccurs="unbounded" /&gt;
        &lt;xs:element name="SpecialMentions" type="ie:SpecialMentionsType" minOccurs="0" maxOccurs="99" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="SupplementaryComputationInformationType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="SUPPLEMENTARY COMPUTATION INFORMATION" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="SupplementaryComputationInfo" type="emcs:SupplementaryComputationInfoType" /&gt;
        &lt;xs:element name="SupplementaryComputationValue" type="emcs:SupplementaryComputationValueType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="PreviousDocumentsType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="PREVIOUS DOCUMENTS" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="PreviousDocumentType" type="tcl:PreviousDocumentTypeCodes" /&gt;
        &lt;xs:element name="PreviousAsdeDocument" type="ie:PreviousAsdeDocumentType" minOccurs="0" /&gt;
        &lt;xs:element name="PreviousEaadDocument" type="ie:PreviousEaadDocumentType" minOccurs="0" /&gt;
        &lt;xs:element name="PreviousStampRequestDocument" type="ie:PreviousStampRequestDocumentType" minOccurs="0" /&gt;
        &lt;xs:element name="PreviousVehicleArrivalDocument" type="ie:PreviousVehicleArrivalDocumentType" minOccurs="0" /&gt;
        &lt;xs:element name="PreviousVehicleMovementDocument" type="ie:PreviousVehicleMovementDocumentType" minOccurs="0" /&gt;
        &lt;xs:element name="PreviousExciseTaxesDeclarationDocument" type="ie:PreviousExciseTaxesDeclarationDocumentType" minOccurs="0" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="PreviousAsdeDocumentType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="PREVIOUS ASDE DOCUMENT" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="AsdeReferenceNumber" type="emcs:AsdeReferenceNumberType" /&gt;
        &lt;xs:element name="AsdeRowNumber" type="emcs:AsdeRowNumberType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="PreviousEaadDocumentType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="PREVIOUS E-AAD DOCUMENT" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="AadReferenceCode" type="emcs:AadReferenceCodeType" /&gt;
        &lt;xs:element name="SequenceNumber" type="emcs:SequenceNumberType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="PreviousStampRequestDocumentType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="PREVIOUS STAMP REQUEST DOCUMENT" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="DeclarationReferenceNumber" type="emcs:DeclarationReferenceNumberType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="PreviousVehicleArrivalDocumentType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="PREVIOUS VEHICLE ARRIVAL DOCUMENT" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="DeclarationReferenceNumber" type="emcs:DeclarationReferenceNumberType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="PreviousVehicleMovementDocumentType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="PREVIOUS VEHICLE MOVEMENT DOCUMENT" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="DeclarationReferenceNumber" type="emcs:DeclarationReferenceNumberType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="PreviousExciseTaxesDeclarationDocumentType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="PREVIOUS EXCISE TAXES DECLARATION DOCUMENT" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="DeclarationReferenceNumber" type="emcs:DeclarationReferenceNumberType" /&gt;
        &lt;xs:element name="ExciseTaxesDeclarationRowNumber" type="emcs:ExciseTaxesDeclarationRowNumberType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="ReferenceDocumentsType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="REFERENCE DOCUMENTS" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="ReferenceDocumentId" type="emcs:ReferenceDocumentIdType" /&gt;
        &lt;xs:element name="ReferenceDocumentNumber" type="emcs:ReferenceDocumentNumberType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="NationalProductsType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="NATIONAL PRODUCTS" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="NationalProductId" type="emcs:NationalProductIdType" /&gt;
        &lt;xs:element name="Quantity" type="emcs:QuantityType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="VehicleDetailsType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="VEHICLE DETAILS" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="FrameNumber" type="emcs:FrameNumberType" /&gt;
        &lt;xs:element name="CarKind" type="emcs:CarKindType" /&gt;
        &lt;xs:element name="ImporterCodeOrBrandName" type="emcs:ImporterCodeOrBrandNameType" /&gt;
        &lt;xs:element name="FirstAllowanceDate" type="emcs:DateType" minOccurs="0" /&gt;
        &lt;xs:element name="VehicleFactoryType" type="emcs:VehicleFactoryTypeType" /&gt;
        &lt;xs:element name="VehicleUsedFlag" type="tcl:Flag" /&gt;
        &lt;xs:element name="EngineCapacity" type="emcs:EngineCapacityType" /&gt;
        &lt;xs:element name="EngineType" type="emcs:EngineTypeType" /&gt;
        &lt;xs:element name="FuelType" type="emcs:FuelTypeType" /&gt;
        &lt;xs:element name="MakeYear" type="emcs:MakeYearType" /&gt;
        &lt;xs:element name="VehicleModelName" type="emcs:VehicleModelNameType" /&gt;
        &lt;xs:element name="ImportedDate" type="emcs:DateType" /&gt;
        &lt;xs:element name="CountryLast" type="emcs:CountryCodeType" minOccurs="0" /&gt;
        &lt;xs:element name="ApprovalCodeVehicle" type="emcs:ApprovalCodeVehicleType" minOccurs="0" /&gt;
        &lt;xs:element name="ApprovalCodeFactory" type="emcs:ApprovalCodeFactoryType" minOccurs="0" /&gt;
        &lt;xs:element name="ApprovalCodeType" type="emcs:ApprovalCodeTypeType" minOccurs="0" /&gt;
        &lt;xs:element name="VehicleRebateFlag" type="tcl:Flag" minOccurs="0" /&gt;
        &lt;xs:element name="RebatedVehicleRegistrationPlate" type="emcs:RebatedVehicleRegistrationPlateType" minOccurs="0" /&gt;
        &lt;xs:element name="VehicleInventory" type="ie:VehicleInventoryType" minOccurs="0" maxOccurs="99" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="VehicleInventoryType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="VEHICLE INVENTORY" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="VehicleInventoryType" type="emcs:VehicleInventoryTypeType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="TaxComputationType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="TAX COMPUTATION" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="NationalAccountingCode" type="emcs:NationalAccountingCodeType" /&gt;
        &lt;xs:element name="SuspensionFlag" type="emcs:SuspensionFlagType" /&gt;
        &lt;xs:element name="AmountOfTaxes" type="emcs:AmountOfTaxesType" /&gt;
        &lt;xs:element name="PaymentMethodCode" type="emcs:PaymentMethodCodeType" /&gt;
        &lt;xs:element name="TaxBase" type="emcs:TaxBaseType" /&gt;
        &lt;xs:element name="TaxRate" type="emcs:TaxRateType" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
    &lt;xs:complexType name="SpecialMentionsType"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;
          &lt;doc:description value="SPECIAL MENTIONS" /&gt;
        &lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:sequence&gt;
        &lt;xs:element name="AdditionalInformationCoded" type="emcs:AdditionalInformationCodedType" /&gt;
        &lt;xs:element name="Text" type="emcs:TextType" minOccurs="0" /&gt;
      &lt;/xs:sequence&gt;
    &lt;/xs:complexType&gt;
  &lt;/xs:schema&gt;
  </code></pre>
  
  <p><strong>EDIT:</strong> My main problem with the XSD is that it gets some deafult values which I need them in some cases but in generally i don't want to get any values.
  For example ExciseTaxesDeclarationConsignorType is always gets value "0" even if I don't call it.
  It get it's types from tcl.XSD</p>
  
  <pre><code>&lt;xs:simpleType name="ExciseTaxesDeclarationConsignorTypeCodes"&gt;
      &lt;xs:annotation&gt;
        &lt;xs:documentation&gt;Excise Taxes Declaration Consignor Type Codes&lt;/xs:documentation&gt;
      &lt;/xs:annotation&gt;
      &lt;xs:restriction base="xs:nonNegativeInteger"&gt;
        &lt;xs:enumeration value="0"&gt;
          &lt;xs:annotation&gt;
            &lt;xs:documentation&gt;Tax Warehouse&lt;/xs:documentation&gt;
          &lt;/xs:annotation&gt;
        &lt;/xs:enumeration&gt;
        &lt;xs:enumeration value="1"&gt;
          &lt;xs:annotation&gt;
            &lt;xs:documentation&gt;Car Warehouse&lt;/xs:documentation&gt;
          &lt;/xs:annotation&gt;
        &lt;/xs:enumeration&gt;
      &lt;/xs:restriction&gt;
    &lt;/xs:simpleType&gt;
  </code></pre>
  
  <p>Can I change that behaviour ?</p>