¿Cómo debo usar la API de validación Stax2 contra un esquema W3?

Estoy usando com.ctc.wstx.stax.WstxOutputFactory para generar XML. Estoy ejecutando wstx-asl-3.2.4

Necesito comenzar a validar el XML generado contra un esquema W3.

Cuando creo una instancia de org.codehaus.stax2.validation.XMLValidationSchemaFactory como esta

private final static XMLValidationSchemaFactory xsdFact= XMLValidationSchemaFactory.newInstance(XMLValidationSchema.SCHEMA_ID_W3C_SCHEMA);

Me sale el error

javax.xml.stream.FactoryConfigurationError: no se ha especificado o accesible la clase de implementación XMLValidationSchemaFactory (a través de la propiedad del sistema 'org.codehaus.stax2.validation.XMLValidationSchemaFactory.w3c', o la definición de servicio en 'META-INF / services / org.codehaus.stax2. validation.XMLValidationSchemaFactory.w3c ') en org.codehaus.stax2.validation.XMLValidationSchemaFactory.newInstance (XMLValidationSchemaFactory.java:208) en org.codehaus.stax2.validation.XMLValidationSchemaFactory.vade.Factory.

Puedo ver que Woodstox se incluye solo con un analizador DTD. Encontré este artículo que contiene las instrucciones inútiles

  1. Obtenga una instancia de XMLValidationSchemaFactory que sepa cómo analizar esquemas del tipo que necesita (RelaxNG == rng para este ejemplo).

He estado mirando el Validador XML de múltiples esquemas de Sun, que se supone que contiene los bits necesarios para atornillar a la fábrica XMLSchemaValidation.

Parece que podría usar com.sun.msv.reader.xmlschema.XMLSchemaReader para escribir mi propia instancia de XMLValidationSchemaFactory y hacer que funcione de esta manera.

Mi pregunta es; ¿Realmente tengo que hacer esto, o hay una fábrica de esquemas w3c preexistente que no he podido encontrar?

Quizás sería más simple validar el XML después de haberlo generado.

¿Cuáles son las opiniones sobre esto?

Respuesta 1

¿Alguien puede explicar el siguiente código de String.java, específicamente por qué hay tres declaraciones if (que he marcado // 1, // 2 y // 3)? clase estática privada CaseInsensitiveComparator ...

Estoy buscando 2 o 3 de las bibliotecas más comunes / utilizadas en la industria para la plataforma Java para la creación de archivos PDF sobre la marcha. El único requisito en el que me estoy centrando es la capacidad de usar ...

Este código que se usó en algunas circunstancias para tratar imágenes individuales arrastradas y soltadas de ciertos navegadores web (firefox) no dio problemas en 1.8.0_25 image = (Image) trans.getTransferData ("...

Estoy buscando construir un generador de feeds para RSS y Atom. He estado buscando una biblioteca que genere una amplia variedad de formatos (RSS .9 a través de lo que sea actual, y Atom .3 ...