Problemas em validar um arquivo XML fora do Jar

1 resposta
E

Eu tenho um código que depende de um arquivo XSD fora do jar para validar um arquivo XML, mas parece que ele não encontra o arquivo XSD.]

O arquivo XML é codificado a mão:

builder.append( "<iso_10303_28 xmlns:xsi=\"http://www.w3.org/2001" );
			builder.append( "/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=" );
			builder.append( "\"EsquemaSTEP.xsd\"" );
			builder.append( " representation_category=\"ETEB\""  );
			builder.append( ">\n"  );

Na saída fica assim:

<?xml version="1.0" encoding="UTF-8"?>
         <iso_10303_28 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"                                      xsi:noNamespaceSchemaLocation="EsquemaSTEP.xsd" representation_category="ETEB">

O código de validação é:

factory.setValidating(validate);
          factory.setNamespaceAware(true);
          DocumentBuilder builder = factory.newDocumentBuilder();
          ErrorHandler errorHandler = new ErrorHandler(){
              public void warning(SAXParseException e) {
            	  ArquivoDebug debug = ArquivoDebug.getArquivoDebug( "Debug\problemasXML.txt" );
            	  debug.writeBytes( "Linha: " + e.getLineNumber() + " Coluna: " + e.getColumnNumber() + "\n" );
                 debug.writeBytes( "Warning!\n" + e.getMessage() + "\n" );
              }
              public void error(SAXParseException e1) {
            	  ArquivoDebug debug = ArquivoDebug.getArquivoDebug( "Debug\problemasXML.txt" );
            	  debug.writeBytes( "Linha: " + e1.getLineNumber() + " Coluna: " + e1.getColumnNumber() + "\n" );
                 debug.writeBytes( "Error!\n" + e1.getMessage() + "\n" );
              }
              public void fatalError(SAXParseException e2) {
            	  ArquivoDebug debug = ArquivoDebug.getArquivoDebug( "Debug\problemasXML.txt" );
            	  debug.writeBytes( "Linha: " + e2.getLineNumber() + " Coluna: " + e2.getColumnNumber() + "\n" );
                 debug.writeBytes( "Fatal error!\n" + e2.getMessage() + "\n" );
              }
          };
          
          builder.setErrorHandler(errorHandler);
          return builder.parse(inStream) != null;

E a mensagem de erro no debug, resultado da exceção:

Se alguém puder me ajudar eu agradeceria muito.

1 Resposta

E

Já achei meu erro.

Estava esquecendo de pôr no classpath do Jar os arquivos jar referentes à XML, Xerces e CIA.

Criado 24 de novembro de 2008
Ultima resposta 25 de nov. de 2008
Respostas 1
Participantes 1