我正在使用 com.ctc.wstx.stax.WstxOutputFactory 来生成XML。 我正在运行wstx-asl-3.2.4
我需要开始根据W3 Schema验证生成的XML。
当我像这样创建 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) at org.codehaus.stax2.validation.XMLValidationSchemaFactory.newInstance(XMLValidationSchemaFactory.java:98)
我可以看到woodstox仅与DTD解析器捆绑在一起。 我找到了this article 其中包含无用的指令
- 获取XMLValidationSchemaFactory的实例,该实例知道如何解析所需类型的模式(本例中为RelaxNG == rng)。
醇>
我一直在查看Sun Multi-Schema XML Validator,它应该包含连接到XMLSchemaValidation工厂所需的位。
看起来我可以使用 com.sun.msv.reader.xmlschema.XMLSchemaReader 编写我自己的XMLValidationSchemaFactory实例并让它以这种方式工作。
我的问题是;我真的必须这样做,还是有一个我未能找到的预先存在的w3c架构工厂?
在生成之后验证XML 可能会更简单。
对此有何看法?
答案 0 :(得分:3)
我升级到Woodstox 4.0.8,W3CSchemaFactory捆绑在一起,一切都很好。