Я использую com.ctc.wstx.stax.WstxOutputFactory для генерации XML.
Я использую wstx-asl-3.2.4
Мне нужно начать проверку сгенерированного XML по схеме W3.
Когда я создаю экземпляр org.codehaus.stax2.validation.XMLValidationSchemaFactory вот так
private final static XMLValidationSchemaFactory xsdFact=
XMLValidationSchemaFactory.newInstance(XMLValidationSchema.SCHEMA_ID_W3C_SCHEMA);
Я получаю ошибку
javax.xml.stream.FactoryConfigurationError: не указан или не доступен класс реализации XMLValidationSchemaFactory (через системное свойство 'org.codehaus.stax2.validation.XMLValidationSchemaFactory.w3c' или определение службы в разделе 'META-INF / services / org.codehaus .stax2.validation.XMLValidationSchemaFactory.w3c ')
в org.codehaus.stax2.validation.XMLValidationSchemaFactory.newInstance (XMLValidationSchemaFactory.java:208)
в org.codehaus.stax2.validation.XMLValidationSchemaFactory.newInstance (XMLValidationSchemaFactory.java:98)
Я вижу, что woodstox поставляется только с анализатором DTD.
Я нашел эту статью
который содержит бесполезную инструкцию
- Получите экземпляр XMLValidationSchemaFactory, который знает, как анализировать схемы нужного вам типа (для этого примера RelaxNG == rng).
Я просматривал Sun Multi-Schema XML Validator , который должен содержать биты, необходимые для установки на фабрику XMLSchemaValidation.
Похоже, я мог бы использовать com.sun.msv.reader.xmlschema.XMLSchemaReader
написать свой собственный экземпляр XMLValidationSchemaFactory и заставить его работать таким образом.
Мой вопрос; мне действительно нужно это сделать, или существует уже существующая фабрика схем w3c, которую мне не удалось найти?
Возможно, было бы проще проверить XML после того, как я его сгенерировал.
Какие взгляды на это?