Aparentemente, na versão 2 do JAXB - o validadorclasse foi descontinuada - isso significa que o empacotador está validando automaticamente seu XML? Nesse caso, não parece queixar-se de parte do XML incorreto que estou formando! Alguém pode me dar alguns conselhos sobre como posso validar XML empacotado para garantir que esteja em conformidade com o esquema XSD.
Muito Obrigado.
Respostas:
27 para resposta № 1Os recursos de validação foram expandidos no JAXB 2.0 por meio do uso do JAXP 1.3 Schema Validation Framework.
Onde antes você:
unmarshaller.setValidating(true);
agora você precisa fazer:
SchemaFactory sf = SchemaFactory.newInstance(
javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("myschema.xsd"));
unmarshaller.setSchema(schema);
Se você passar nulo para setSchema
, desativa a validação.
por favor, verifique esta referência.
2 para resposta № 2
Se você deseja verificar se os objetos Java geram XML válido de acordo com um esquema, consulte o projeto JAXB-Verification:
https://jaxb-verification.dev.java.net/
É um plug-in JAXB RI para xjc que irá gerar uma implementação do ObjectVerifier para o esquema XML. Isso evita a necessidade de organizar os objetos Java para validar o XML.