XML utilizando JDOM, mais na hora de validar o XML utilizando um schema xsd da erro logo na primeira linha do xml.
mas o xml q eu to usando pra teste eh um xml valido q eu peguei direto no site.
vou postar o codigo da validação se puder me ajudar ficaria muito grato
SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);
builder.setFeature("http://apache.org/xml/features/validation/schema",true);
builder.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation", "http://localhost:8084/ServletNFe/schemas/nfe_v1.10.xsd");
URL url = new URL("http://localhost:8084/ServletNFe/xmls/43060992665611012850550070000000011375309286-nfe.xml");
boolean a = builder.getValidation();
Document doc = builder.build(url);
o erro q ocorre eh o seguinte
org.jdom.input.JDOMParseException: Error on line 1 of document http://localhost:8084/ServletNFe/xmls/43060992665611012850550070000000011375309286-nfe.xml: cvc-elt.1: Cannot find the declaration of element ‘NFe’.
aki as primeiras linhas do xml
Patrick,
Vc está tendo problemas com validação de XML com vários registros ? Aqui tá dando stackoverflow… tenta aí… Faço aqui com 165 NFes.
falow
O elemento NFE deve ser o seu namespace vc inclui ele ? no seu XSD?
Tipo:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:nfe=http://www.portalfiscal.inf.br/nfe" targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" attributeFormDefault="unqualified">
</xs:schema>
Veja onde declarei o nfe
Mas isso no cabeçalho do XSD
eu ja havia resolvido esse problema
vou postar o codigo q eu fiz caso alguem tenha esteja com msm problema
[code]DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
System.out.println("DocumentBuilderFactory: "+ factory.getClass().getName());
factory.setNamespaceAware(true);
factory.setValidating(true);
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource", "http://localhost:8084/ServletNFe/schemas/nfe_v1.10.xsd");
DocumentBuilder builder = null;
try
{
builder = factory.newDocumentBuilder();
builder.setErrorHandler( new SimpleErrorHandler());
} catch (ParserConfigurationException ex)
{
ex.printStackTrace();
}
org.w3c.dom.Document document;
try
{
document = builder.parse("http://localhost:8084/ServletNFe/xmls/testeNFe.xml");
org.w3c.dom.Node rootNode = document.getFirstChild();
System.out.println("Root node: "+ rootNode.getNodeName() );
} catch (IOException ex) {
ex.printStackTrace();
} catch (SAXException ex) {
ex.printStackTrace();
}[/code]
Classe errorHalnder
[code]public class SimpleErrorHandler implements ErrorHandler
{
public void error(SAXParseException exception) {
System.out.println("error: "+ exception.getMessage());
}
public void fatalError(SAXParseException exception) {
System.out.println("fatalError: "+ exception.getMessage());
}
public void warning(SAXParseException exception) {
System.out.println("warning: "+ exception.getMessage());
}
}[/code]
vlw ai
PatricMaffi, obrigado por compartilhar a sua classe.
Fiz pequenos ajustes e funcionou corretamente.
Todavia, ainda vou fazer uma classe helper, pois terei os XSDs armazenados em dentro da classe empacotada, e aqui só funcionou com a recursão de imports de dentro dos XSDs passando os mesmos como URIs String na propriedade.
Neste caso, vou criar uma classe para extraí-los do JAR, e deixar no diretorio temporario do container, para que possam ser lidos em caso de includes ( que acontecem com todos os XSDs da Sefaz ).
Valeu mesmo!
Grande abraço!
[quote=rafaelbarata]Patrick,
Vc está tendo problemas com validação de XML com vários registros ? Aqui tá dando stackoverflow… tenta aí… Faço aqui com 165 NFes.
falow[/quote]
cara vc consegue tratar os stackoverflow ? eu valido normal, mas volte e meia me da um erro desse…
tem que alterar alguma coisa na validação?
Revivendo topico o/
Sobre a validação da NF-e , tem como pegar esses erros capturados
em PT-BR ? Digo isso porque, esses erros deve ser apresentados para o Usuário…
Então fica complicado deixar mensagem em English para o Usuario ;x
E o software do governo traz os erros em Portugues =/
Atualmente meu retorno é o seguinte
DocumentBuilderFactory: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
error: cvc-enumeration-valid: Value 'A4' is not facet-valid with respect to enumeration '[11, 12, 13, 14, 15, 16, 17, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 41, 42, 43, 50, 51, 52, 53]'. It must be a value from the enumeration.
error: cvc-type.3.1.3: The value 'A4' of element 'cUF' is not valid.
Root node: NFe
oi
vc coloca o caminho do xsd em um servlet?
http://localhost:8084/ServletNFe/schemas/nfe_v1.10.xsd
estou tendo dificuldades com isso
pode me explicar melhor por favor
abraço
Acredito que que não. Nem o validador de Rio Grande do Sul apresenta as mensagens em português. Se você souber como sem ter que fazer o parse, me fala que eu preciso disso em vários lugares 
Fala pessoal, to precisando fazer em java um validador de assinaturas e schemas XML
quem puder me ajudar, eu retorno uma grana ok?
Abraços,