Validando schema XML

oi pessoal,

estou fazendo uma aplicação de NFs-e e estou tendo o seguinte problema:

Cannot find the declaration of element 'EnviarLoteRpsEnvio'

Sendo meu xml possui essa tag, segue:

<EnviarLoteRpsEnvio xmlns="http://www.abrasf.org.br/nfse.xsd"><LoteRps Id="lote001" versao="2.01">...aqui vai um XML gigante </EnviarLoteRpsEnvio>

na hora de validar no schema, ele não acha a tag…alguem sabe porque?

Como EnviarLoteRpsEnvio está declarado no seu schema?

Como assim? se.for quanto.a.ortografia…esta desse jeito que postei

Como você faz a validação? Usa um arquivo XSD ou algo do tipo?

Ah sim. inclusive gerei o xml apartir do xsd

Pois é, e como está declarado a tag EnviarLoteRpsEnvio no seu XSD? Esse erro está ocorrendo provalvemente porque tem alguma coisa declarada de forma errada e faz com que a TAG não seja reconhecida. Poderia postar a parte do seu XSD que contém essa tag?

Posso sim…mas me.diz.como isso eh possivel.sendo que gerei o xml pelo.xsd, usando o eclipse?

Você não mudou nada no XML? Como então você está fazendo a validação? Realmente isso está estranho.

Perai…vou postar os dois…mas.nao.mudei nada…sohadicionei as informacoes.

O xsd eh esse
http://www.igenio.com.br/abrasf/arquivos/files/GT%202%20-%20DES-IF/NFSe/NFSe%202.01/schema_xml_nfse_v2-01.zip

Minha validação:

[code]import java.io.IOException;

// SAX
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.XMLReader;

//SAX and external XSD
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.SchemaFactory;

import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.InputSource;

public class XMLUtils {

private XMLUtils() {}

// validate SAX and external XSD
public static boolean validateWithExtXSDUsingSAX(String xml, String xsd)
throws ParserConfigurationException, IOException
{
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(false);
factory.setNamespaceAware(true);

  SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
  SAXParser parser = null;
  try {
     factory.setSchema(schemaFactory.newSchema(new Source[] {new StreamSource( xsd )}));
     parser = factory.newSAXParser();
  }
  catch (SAXException se) {
    System.out.println("SCHEMA : " + se.getMessage());  // problem in the XSD itself
    return false;
  }
  
  XMLReader reader = parser.getXMLReader();
  reader.setErrorHandler(
      new ErrorHandler() {
        public void warning(SAXParseException e) throws SAXException {
          System.out.println("WARNING: " + e.getMessage()); // do nothing
        }

        public void error(SAXParseException e) throws SAXException {
          System.out.println("ERROR : " + e.getMessage());
          throw e;
        }

        public void fatalError(SAXParseException e) throws SAXException {
          System.out.println("FATAL : " + e.getMessage());
          throw e;
        }
      }
      );
  reader.parse(new InputSource(xml));
  return true;
}    
catch (ParserConfigurationException pce) {
  throw pce;
} 
catch (IOException io) {
  throw io;
}
catch (SAXException se){
  return false;

}

}
}[/code]

Trecho XSD

[code]
<xsd:element name=“EnviarLoteRpsEnvio”>
xsd:complexType
xsd:sequence
<xsd:element name=“LoteRps” type=“tcLoteRps” />
<xsd:element ref=“dsig:Signature” minOccurs=“0”
maxOccurs=“1” />
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="EnviarLoteRpsResposta">
	<xsd:complexType>
		<xsd:choice>
			<xsd:sequence>
				<xsd:element name="NumeroLote" type="tsNumeroLote"
					minOccurs="1" maxOccurs="1" />
				<xsd:element name="DataRecebimento" type="xsd:dateTime"
					minOccurs="1" maxOccurs="1" />
				<xsd:element name="Protocolo" type="tsNumeroProtocolo"
					minOccurs="1" maxOccurs="1" />
			</xsd:sequence>
			<xsd:element ref="ListaMensagemRetorno" minOccurs="1"
				maxOccurs="1" />
		</xsd:choice>
	</xsd:complexType>
</xsd:element>[/code]

Rapaz, olhei o XSD que você passou e aparentemente está tudo em ordem. Faça o seguinte. Gere um XML menor e depois vá gerando XMLs maiores, até descobrir onde está o erro. Acontece que pode ter alguma tag bem interna do XML que você gerou que não está com o valor correto ou algo do tipo.

já fiz isso, mesmo só com a tag principal e mais uma…ele não reconhece.
O problema é que ele não reconhece a tag principal, então independente do que tenha dentro…não valida