Como EnviarLoteRpsEnvio está declarado no seu schema?
J
javaCBA
Como assim? se.for quanto.a.ortografia…esta desse jeito que postei
M
matheuslmota
Como você faz a validação? Usa um arquivo XSD ou algo do tipo?
J
javaCBA
Ah sim. inclusive gerei o xml apartir do xsd
M
matheuslmota
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?
J
javaCBA
Posso sim…mas me.diz.como isso eh possivel.sendo que gerei o xml pelo.xsd, usando o eclipse?
M
matheuslmota
Você não mudou nada no XML? Como então você está fazendo a validação? Realmente isso está estranho.
J
javaCBA
Perai…vou postar os dois…mas.nao.mudei nada…sohadicionei as informacoes.
importjava.io.IOException;// SAXimportjavax.xml.parsers.SAXParser;importjavax.xml.parsers.SAXParserFactory;importorg.xml.sax.XMLReader;//SAX and external XSDimportjavax.xml.transform.Source;importjavax.xml.transform.stream.StreamSource;importjavax.xml.validation.SchemaFactory;importjavax.xml.parsers.ParserConfigurationException;importorg.xml.sax.ErrorHandler;importorg.xml.sax.SAXException;importorg.xml.sax.SAXParseException;importorg.xml.sax.InputSource;publicclassXMLUtils{privateXMLUtils(){}// validate SAX and external XSD publicstaticbooleanvalidateWithExtXSDUsingSAX(Stringxml,Stringxsd)throwsParserConfigurationException,IOException{try{SAXParserFactoryfactory=SAXParserFactory.newInstance();factory.setValidating(false);factory.setNamespaceAware(true);SchemaFactoryschemaFactory=SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");SAXParserparser=null;try{factory.setSchema(schemaFactory.newSchema(newSource[]{newStreamSource(xsd)}));parser=factory.newSAXParser();}catch(SAXExceptionse){System.out.println("SCHEMA : "+se.getMessage());// problem in the XSD itselfreturnfalse;}XMLReaderreader=parser.getXMLReader();reader.setErrorHandler(newErrorHandler(){publicvoidwarning(SAXParseExceptione)throwsSAXException{System.out.println("WARNING: "+e.getMessage());// do nothing}publicvoiderror(SAXParseExceptione)throwsSAXException{System.out.println("ERROR : "+e.getMessage());throwe;}publicvoidfatalError(SAXParseExceptione)throwsSAXException{System.out.println("FATAL : "+e.getMessage());throwe;}});reader.parse(newInputSource(xml));returntrue;}catch(ParserConfigurationExceptionpce){throwpce;}catch(IOExceptionio){throwio;}catch(SAXExceptionse){returnfalse;}}}
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
javaCBA
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