2013-06-17 2 views
3

Je suis en train de valider un xml contre un fichier xsd mais retourne de l'erreur:Valider un XML contre un XSD: Présence non déclarée d'élément XSD

1.xsd#/schema/element[1][@name = 'envioLote']/complexType[1]/sequence[1]/element[4] 
Undeclared XSD element : '{http://www.w3.org/2000/09/xmldsig#}Signature' 

J'utilise le code suivant

var 
DOMDocument  : IXMLDOMDocument3; 
ParseError  : IXMLDOMParseError; 
Schema   : XMLSchemaCache; 
sNameSpace  : String; 
begin 

DOMDocument     := CoDOMDocument50.Create; 
DOMDocument.async   := False; 
DOMDocument.resolveExternals := True; 
DOMDocument.validateOnParse := True; 
DOMDocument.loadXML(sXml); 
Schema := CoXMLSchemaCache50.Create; 
Schema.add('', 'c:\1.xsd'); 
DOMDocument.schemas := Schema; 

ParseError := DOMDocument.validate; 
Result  := (ParseError.errorCode = 0); 
if not result then  
    showmessage(ParseError.reason); 

DOMDocument := nil; 
ParseError := nil; 
Schema  := nil; 
end; 

1.xsd file

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" attributeFormDefault="unqualified"> 
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema_v1.01.xsd"/> 
    <xs:element name="envioLote"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="CNPJ" type="TCnpj"/> 
       <xs:element name="dhTrans" type="TDataHora"/> 
       <xs:element ref="NFS-e" minOccurs="1" maxOccurs="500"/> 
       <xs:element ref="ds:Signature" minOccurs="0" maxOccurs="1"/> 
      </xs:sequence> 
      <xs:attribute name="versao" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="NFS-e"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="infNFSe"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="infNFSe"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="Id"/> 
       <xs:element ref="prest"/> 
       <xs:element ref="TomS"/> 
       <xs:element ref="det" minOccurs="1" maxOccurs="999"/> 
       <xs:element ref="total"/> 
       <xs:element name="infAdicLT" type="TCodMunIBGE" minOccurs="1" maxOccurs="1"/> 
       <xs:element name="infAdicES" type="TSimNao" minOccurs="0" maxOccurs="1"/> 
      </xs:sequence> 
      <xs:attribute name="versao" type="xs:string" use="required"/> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="Id"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="cNFS-e" type="TNumAleatorio"/> 
       <xs:element name="mod" type="TModelo"/> 
       <xs:element name="serie" type="TSerie"/> 
       <xs:element name="nNFS-e" type="TNF"/> 
       <xs:element name="dEmi" type="TData"/> 
       <xs:element name="hEmi" type="THora"/> 
       <xs:element name="tpNF" type="TNFSe"/> 
       <xs:element name="refNF" type="TChaveAcesso"/> 
       <xs:element name="tpEmis" type="TEmissao"/> 
       <xs:element name="ambienteEmi" type="TCharInt"/> 
       <xs:element name="formaEmi" type="TCharInt"/> 
       <xs:element name="empreitadaGlobal" type="TCharInt"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="prest"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="CNPJ" type="TCnpj"/> 
       <xs:element name="xNome" type="TString150"/> 
       <xs:element name="IM" type="TString15"/> 
       <xs:element ref="end"/> 
       <xs:element name="regimeTrib" type="TCharInt"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="end"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="xLgr" type="TString100"/> 
       <xs:element name="nro" type="TString6"/> 
       <xs:element name="xBairro" type="TString100"/> 
       <xs:element name="cMun" type="TCodMunIBGE"/> 
       <xs:element name="xMun" type="TString60"/> 
       <xs:element name="UF" type="TString2"/> 
       <xs:element name="CEP" type="TCep"/> 
       <xs:element name="cPais" type="TcPais"/> 
       <xs:element name="xPais" type="TString100"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="TomS"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:choice> 
        <xs:element name="CNPJ" type="TCnpj"/> 
        <xs:element name="CPF" type="TCpf"/> 
       </xs:choice> 
       <xs:element ref="ender"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="ender"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="cMun" type="TCodMunIBGE"/> 
       <xs:element name="xMun" type="TString60"/> 
       <xs:element name="UF" type="TString2"/> 
       <xs:element name="cPais" type="TcPais"/> 
       <xs:element name="xPais" type="TString100"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="dadosDaObra"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="xLogObra" type="TString100"/> 
       <xs:element name="xComplObra" type="TString100" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="vNumeroObra" type="TString15" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="xBairroObra" type="TString100" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="xCepObra" type="TCep" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="cCidadeObra" type="TCodMunIBGE"/> 
       <xs:element name="xCidadeObra" type="TString60"/> 
       <xs:element name="xUfObra" type="TString2"/> 
       <xs:element name="cPaisObra" type="TcPais"/> 
       <xs:element name="xPaisObra" type="TString100"/> 
       <xs:element name="numeroArt" type="TString12" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="numeroCei" type="TString12" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="numeroProj" type="TString15" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="numeroMatri" type="TString15" minOccurs="0" maxOccurs="1"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="transportadora"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="xNomeTrans" type="TString100"/> 
       <xs:element name="xCpfCnpjTrans" type="TString15" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="xInscEstTrans" type="TString15" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="xPlacaTrans" type="TPlacaVeic" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="xEndTrans" type="TString100" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="cMunTrans" type="TCodMunIBGE" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="xMunTrans" type="TString60" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="xUfTrans" type="TString2" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="cPaisTrans" type="TcPais" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="xPaisTrans" type="TString100" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="vTipoFreteTrans" type="TFrete" minOccurs="0" maxOccurs="1"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="det"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="nItem" type="TOrdemSeq"/> 
       <xs:element ref="serv"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="serv"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="cServ" type="TString60"/> 
       <xs:element name="cLCServ" type="TLCServ"/> 
       <xs:element name="xServ" type="TString256"/> 
       <xs:element name="localTributacao" type="TCodMunIBGE"/> 
       <xs:element name="localVerifResServ" type="TCharInt"/> 
       <xs:element name="uTrib" type="TString2"/> 
       <xs:element name="qTrib" type="TDec_1302"/> 
       <xs:element name="vUnit" type="TDec_1302"/> 
       <xs:element name="vServ" type="TDec_1302"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="ISSST"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="vBCST" type="TDec_1302"/> 
       <xs:element name="pISSST" type="TDec_0302"/> 
       <xs:element name="vISSST" type="TDec_1302"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="total"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="vServ" type="TDec_1302"/> 
       <xs:element name="vtNF" type="TDec_1302"/> 
       <xs:element name="vtLiq" type="TDec_1302"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="ISS"/> 
    <xs:element name="Ret"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="vRetIR" type="TDec_1302" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="vRetPISPASEP" type="TDec_1302" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="vRetCOFINS" type="TDec_1302" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="vRetCSLL" type="TDec_1302" minOccurs="0" maxOccurs="1"/> 
       <xs:element name="vRetINSS" type="TDec_1302" minOccurs="0" maxOccurs="1"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="faturas"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="fat" minOccurs="1" maxOccurs="999"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:element name="fat"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="nItem" type="TOrdemSeq"/> 
       <xs:element name="nFat" type="TNumFatura"/> 
       <xs:element name="dVenc" type="TData"/> 
       <xs:element name="vFat" type="TDec_1302"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    <xs:simpleType name="TCep"> 
     <xs:annotation> 
      <xs:documentation>Tipo para Codigo Postal</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{8}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TCharInt"> 
     <xs:annotation> 
      <xs:documentation>Tipo para caracter numerico</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{1}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TChaveAcesso"> 
     <xs:annotation> 
      <xs:documentation>Tipo para chave de acesso </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="39"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TCnpj"> 
     <xs:annotation> 
      <xs:documentation>Tipo Número do CNPJ</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{14}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TCodMunIBGE"> 
     <xs:annotation> 
      <xs:documentation>Tipo Código do Município da tabela do IBGE</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{7}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TcPais"> 
     <xs:annotation> 
      <xs:documentation>Tipo para Codigo do Pais</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{5}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TCpf"> 
     <xs:annotation> 
      <xs:documentation>Tipo Número do CPF</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{11}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TData"> 
     <xs:annotation> 
      <xs:documentation> Tipo data AAAA-MM-DD</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:date"> 
      <xs:pattern value="\d{4}-\d{2}-\d{2}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TDataHora"> 
     <xs:annotation> 
      <xs:documentation> Tipo datetime AAAA-MM-DD HH:MM:SS</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:whiteSpace value="preserve"/> 
      <xs:pattern value="\d{4}-\d{2}-\d{2}(\s\d{2}:\d{2}:\d{2})?"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TDec_0302"> 
     <xs:annotation> 
      <xs:documentation>Tipo Decimal com 5 dígitos, sendo 3 de corpo e 2 decimais</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:minLength value="0"/> 
      <xs:whiteSpace value="preserve"/> 
      <xs:pattern value="|0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2})?"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TDec_1302"> 
     <xs:annotation> 
      <xs:documentation>Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:minLength value="0"/> 
      <xs:whiteSpace value="preserve"/> 
      <xs:pattern value="|0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TEmissao"> 
     <xs:annotation> 
      <xs:documentation>Tipo para forma de emissao </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[NC]{1}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TFone"> 
     <xs:annotation> 
      <xs:documentation>Tipo para numero do telefone </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="|[0-9]{1,14}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TFrete"> 
     <xs:annotation> 
      <xs:documentation>Tipo para frete de transportadora </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{1}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="THora"> 
     <xs:annotation> 
      <xs:documentation> Tipo time HH:MM</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:whiteSpace value="preserve"/> 
      <xs:pattern value="\d{2}:\d{2}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TImpressao"> 
     <xs:annotation> 
      <xs:documentation>Tipo para formato de impressao </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:integer"> 
      <xs:minInclusive value="1"/> 
      <xs:maxInclusive value="1"/> 
      <!-- Em Caxias uma NFSe somente pode ser impressa no modo retrato --> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TLCServ"> 
     <xs:annotation> 
      <xs:documentation>Tipo para Lei Complementar 116 </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:positiveInteger"> 
      <xs:maxInclusive value="9999"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TModelo"> 
     <xs:annotation> 
      <xs:documentation>Tipo para modelo de uma NFSe </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:minLength value="1"/> 
      <xs:maxLength value="2"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TMotCanc"> 
     <xs:annotation> 
      <xs:documentation>Tipo para motivo de cancelamento</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{1}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TNF"> 
     <xs:annotation> 
      <xs:documentation>Tipo Número do Documento Fiscal</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{0,9}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TNFSe"> 
     <xs:annotation> 
      <xs:documentation>Tipo para uma NFSe </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:integer"> 
      <xs:minInclusive value="1"/> 
      <xs:maxInclusive value="1"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TNumAleatorio"> 
     <xs:annotation> 
      <xs:documentation>Tipo para numero aleatorio </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:positiveInteger"> 
      <xs:maxInclusive value="999999999"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TNumFatura"> 
     <xs:annotation> 
      <xs:documentation>Tipo Número de Fatura em NFS-e</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{0,3}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TOrdemSeq"> 
     <xs:annotation> 
      <xs:documentation>Tipo para ordem sequencial de itens </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:positiveInteger"> 
      <xs:maxInclusive value="999"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TPlacaVeic"> 
     <xs:annotation> 
      <xs:documentation>Tipo String para placa de veiculo com tamanho maximo 7</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[a-zA-Z]{2,3}[0-9]{3,4}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TSerie"> 
     <xs:annotation> 
      <xs:documentation>Tipo String de tamanho maximo 3</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="3"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TSimNao"> 
     <xs:annotation> 
      <xs:documentation>Tipo para Sim/Nao </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[SN]{1}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TSituacaoCancelamentoNota"> 
     <xs:annotation> 
      <xs:documentation>Tipo para situacao de cancelamento de uma NFSe </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:positiveInteger"> 
      <xs:maxInclusive value="999"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TSituacaoLote"> 
     <xs:annotation> 
      <xs:documentation>Tipo para situacao de um lote de NFSe </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:positiveInteger"> 
      <xs:maxInclusive value="999"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TSituacaoNFSe"> 
     <xs:annotation> 
      <xs:documentation>Tipo para situacao de uma NFSe </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:token"> 
      <xs:pattern value="[0-9]{1}"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TSituacaoNota"> 
     <xs:annotation> 
      <xs:documentation>Tipo para situacao de uma nota dentro de um lote submetido </xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:positiveInteger"> 
      <xs:maxInclusive value="999"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString2"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 2</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="2"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString3"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 3</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="3"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString5"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 5</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="5"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString6"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 6</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="6"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString12"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 12</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="12"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString13"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 13</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="13"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString15"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 15</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="15"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString50"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 50</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="50"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString60"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 60</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="60"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString100"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 100</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="100"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString120"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 120</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="120"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString150"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 150</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="150"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:simpleType name="TString256"> 
     <xs:annotation> 
      <xs:documentation>Tipo para string de tamanho maximo 256</xs:documentation> 
     </xs:annotation> 
     <xs:restriction base="xs:string"> 
      <xs:maxLength value="256"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 

Content of "sXml"

<?xml version="1.0" encoding="utf-8"?> 
<envioLote versao="1.0"> 
    <CNPJ>93120350000172</CNPJ> 
    <dhTrans>2013-06-17 16:12:45</dhTrans> 
    <NFS-e> 
     <infNFSe versao="1.1"> 
      <Id> 
       <cNFS-e>12</cNFS-e> 
       <mod>55</mod> 
       <serie>S</serie> 
       <nNFS-e>12</nNFS-e> 
       <dEmi>2013-06-17</dEmi> 
       <hEmi>13:48</hEmi> 
       <tpNF>1</tpNF> 
       <refNF>439312035000017255S00000000012850064870</refNF> 
       <tpEmis>N</tpEmis> 
       <ambienteEmi>2</ambienteEmi> 
       <formaEmi>2</formaEmi> 
       <empreitadaGlobal>2</empreitadaGlobal> 
      </Id> 
      <prest> 
       <CNPJ>93120350000172</CNPJ> 
       <xNome>CFC ELITRONIC CAR BETA 2 LTDA</xNome> 
       <IM>8198</IM> 
       <end> 
        <xLgr>RUA X</xLgr> 
        <nro>120</nro> 
        <xBairro>BAIRRO</xBairro> 
        <cMun>4305108</cMun> 
        <xMun>CAXIAS DO SUL</xMun> 
        <UF>RS</UF> 
        <CEP>97015530</CEP> 
        <cPais>01058</cPais> 
        <xPais>BRASIL</xPais> 
       </end> 
       <regimeTrib>3</regimeTrib> 
      </prest> 
      <TomS> 
       <CPF>00295819073</CPF> 
       <ender> 
        <cMun>4305108</cMun> 
        <xMun>CAXIAS DO SUL</xMun> 
        <UF>RS</UF> 
        <cPais>01058</cPais> 
        <xPais>BRASIL</xPais> 
       </ender> 
      </TomS> 
      <det> 
       <nItem>1</nItem> 
       <serv> 
        <cServ>10</cServ> 
        <cLCServ>1405</cLCServ> 
        <xServ>AULA PRATICA - CATEGORIA A</xServ> 
        <localTributacao>4305108</localTributacao> 
        <localVerifResServ>1</localVerifResServ> 
        <uTrib>UN</uTrib> 
        <qTrib>20</qTrib> 
        <vUnit>29.95</vUnit> 
        <vServ>599.00</vServ> 
       </serv> 
      </det> 
      <total> 
       <vServ>599.00</vServ> 
       <vtNF>599.00</vtNF> 
       <vtLiq>599.00</vtLiq> 
      </total> 
      <infAdicLT>4305108</infAdicLT> 
     </infNFSe> 
    </NFS-e> 
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 
     <SignedInfo> 
      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> 
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> 
      <Reference URI=""> 
       <Transforms> 
        <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> 
        <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> 
       </Transforms> 
       <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 
       <DigestValue>JJtzvD6DJIlwd/ciT6gF1KZl7DA=</DigestValue> 
      </Reference> 
     </SignedInfo> 
     <SignatureValue> 
     DCD5WbABTQpfS8GvmNBBP2+LRUZVWX35fSXA1lX6Thbwf/uyXaD0OdeDhC0Oz6hB5TnqKkUX 
     Bgerr7PwUG0/jicrL2V7vTKZ+08DPhU+GwDPgkd8g5jk367rMsUe+rWq70e+98SjWpGNaFZn 
     zY1Q7Wqu+uT9DPlDS6hci5Hi5Bg= 
    </SignatureValue> 
     <KeyInfo> 
      <X509Data> 
       <X509SubjectName>CN=SB SISTEMAS LTDA:07081093000175, OU=AR SERASA, OU=RFB e-CNPJ A3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, L=MARAU, S=RS, C=BR</X509SubjectName> 
       <X509Certificate>MIIGQjCCBSqgAwIBAgIIFHpqkzogjv8wDQYJKoZIhvcNAQEFBQAwdTELMAkGA1UE 
BhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxNjA0BgNVBAsTLVNlY3JldGFyaWEg 
ZGEgUmVjZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEZMBcGA1UEAxMQQUMg 
U0VSQVNBIFJGQiB2MTAeFw0xMTExMTgyMzAwMDBaFw0xNDExMTcyMzAwMDBaMIHN 
MQswCQYDVQQGEwJCUjELMAkGA1UECBMCUlMxDjAMBgNVBAcTBU1BUkFVMRMwEQYD 
VQQKEwpJQ1AtQnJhc2lsMTYwNAYDVQQLEy1TZWNyZXRhcmlhIGRhIFJlY2VpdGEg 
RmVkZXJhbCBkbyBCcmFzaWwgLSBSRkIxFjAUBgNVBAsTDVJGQiBlLUNOUEogQTMx 
EjAQBgNVBAsTCUFSIFNFUkFTQTEoMCYGA1UEAxMfU0IgU0lTVEVNQVMgTFREQTow 
NzA4MTA5MzAwMDE3NTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAjSzGFveA 
HxAaIc+bN3L9JqVUdnu2U0vWmMfrI8++uka9xpIF96omAwlfMmP+MAxop2W6KjT4 
ahSP/ZZkgn32HuHu8Su+YEC6jVJntFfI+/M335G3Vcs0khqi6iIHQwQwM+yeRQ5v 
bcLy6s8QImUzeavKrRUUGu2X9X/Bjd9HDkkCAwEAAaOCAv8wggL7MAkGA1UdEwQC 
MAAwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcD 
BDAfBgNVHSMEGDAWgBSa3SK29nfpQm9IwlFAoFbi83Q/uzCBsgYDVR0RBIGqMIGn 
gRRDT05UQVNPRlRAVklBLVJTLk5FVKAbBgVgTAEDAqASExBMVUlTIEFOVE9OSU8g 
QkVOoBkGBWBMAQMDoBATDjA3MDgxMDkzMDAwMTc1oD4GBWBMAQMEoDUTMzI5MTEx 
OTg1MDA3NzE1ODAwODgxMjg1NzAwMDY3OTAwMDAwNTA3NDA3NDQ2OFNTUCBSU6AX 
BgVgTAEDB6AOEwwwMDAwMDAwMDAwMDAwVwYDVR0gBFAwTjBMBgZgTAECAwowQjBA 
BggrBgEFBQcCARY0aHR0cDovL3d3dy5jZXJ0aWZpY2Fkb2RpZ2l0YWwuY29tLmJy 
L3JlcG9zaXRvcmlvL2RwYzCB8wYDVR0fBIHrMIHoMEqgSKBGhkRodHRwOi8vd3d3 
LmNlcnRpZmljYWRvZGlnaXRhbC5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL3NlcmFz 
YXJmYnYxLmNybDBEoEKgQIY+aHR0cDovL2xjci5jZXJ0aWZpY2Fkb3MuY29tLmJy 
L3JlcG9zaXRvcmlvL2xjci9zZXJhc2FyZmJ2MS5jcmwwVKBSoFCGTmh0dHA6Ly9y 
ZXBvc2l0b3Jpby5pY3BicmFzaWwuZ292LmJyL2xjci9TZXJhc2EvcmVwb3NpdG9y 
aW8vbGNyL3NlcmFzYXJmYnYxLmNybDCBmQYIKwYBBQUHAQEEgYwwgYkwSAYIKwYB 
BQUHMAKGPGh0dHA6Ly93d3cuY2VydGlmaWNhZG9kaWdpdGFsLmNvbS5ici9jYWRl 
aWFzL3NlcmFzYXJmYnYxLnA3YjA9BggrBgEFBQcwAYYxaHR0cDovL29jc3AuY2Vy 
dGlmaWNhZG9kaWdpdGFsLmNvbS5ici9zZXJhc2FyZmJ2MTANBgkqhkiG9w0BAQUF 
AAOCAQEAD9Os0wUgI132kd4LcTjvqfO+nnBwt3uab6kx1zkoDxrngMt1GJCNa9+E 
OsxoHSqaDoC1CDuNEGLdnI+5jZawk+VlXmpnyaLn63ZKTBefq+ShSWhLx9CX+DMe 
47PeVg0j0YiywRQbDpiy3ANrh+Jb+zaabLBe+6/fAdHoSSgioKZsPEfezSR/MMX+ 
2Ay8WPSDxNgiIcMYe2kL12q7o/YT5pqBpBOtt8xo8bRNxx9aA41yifpS16z9iYKN 
bQB/B0Ebp9E09Vm2AsbuKSb8thHmRys+/tgVjkIWpNeTq6p5K/E/sZ/quKNqmVuC 
mdsVxTeGWXU+GXnUwjJqaFFMCJ/pAQ==</X509Certificate> 
      </X509Data> 
     </KeyInfo> 
    </Signature> 
</envioLote> 

Je l'ai utilisé ce même code précédent sans problèmes, je n'ai pas beaucoup d'expérience avec XSD, donc si quelqu'un peut me donner une aide serait reconnaissant

+1

Les liens vers vos documents ne fonctionnent pas. Google Docs échoue avec trop de redirections. Veuillez copier et coller vos fichiers directement dans votre question ici sur Stack Overflow. S'ils sont trop longs à partager ici, alors raccourcissez-les d'abord. Lorsque vous les avez raccourcis, assurez-vous qu'ils présentent toujours le problème que vous tentez de résoudre. –

+0

+1 merci pour l'édition. bien meilleure question maintenant. –

Répondre

2

Le message d'erreur indique que vous avez un XSD non défini élément, et il vous indique l'élément est Signature à partir de l'espace de noms http://www.w3.org/2000/09/xmldsig#. La première étape évidente dans le dépannage de ce problème est de trouver où cet élément est défini; si ne peut pas le trouver, vous ne pouvez pas attendre autre chose pour le trouver, soit.

L'espace de noms où l'élément "missing" est défini n'est mentionné qu'à un autre endroit, à savoir l'élément xs:import. J'ai tout autant d'expérience avec XSD que vous, mais je peux faire une impression assez certaine que cet élément importe des définitions d'ailleurs, probablement à partir de l'emplacement donné dans l'attribut schemaLocation.

Une simple recherche sur Internet révèle de nombreux exemples de fichiers nommés xmldsig-core-schema_v1.01.xsd, et il définit en effet un type Signature.

Évidemment, ce fichier doit être présent afin de valider l'adhésion à votre schéma.

+0

J'ai mis le fichier xmldsig-core-schema_v1.01.xsd dans le même dossier que mon xsd et cela a fonctionné. merci – Rigotti

+0

Vous pouvez également essayer d'appeler 'Schema.add' une seconde fois pour indiquer où est le XSD pour cet espace de noms. Vous pouvez lui donner un chemin vers le fichier, ou vous pouvez charger le fichier vous-même et passer 'add' un' DOMDocument' représentant le XSD. Ensuite, vous n'avez pas à vous soucier de votre répertoire de travail actuel. –