2010-08-06 4 views
3

com.ctc.wstx.stax.WstxOutputFactory을 사용하여 XML을 생성합니다. wstx-asl-3.2.4를 실행 중입니다.W3 스키마에 대해 Stax2 유효성 검사 API를 사용하는 방법

W3 스키마에 대해 생성 된 XML의 유효성 검사를 시작해야합니다. 나는이

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

처럼 org.codehaus.stax2.validation.XMLValidationSchemaFactory의 인스턴스를 만들 때

나는

javax.xml.stream.FactoryConfigurationError: No XMLValidationSchemaFactory implementation class specified or accessible (via system property 'org.codehaus.stax2.validation.XMLValidationSchemaFactory.w3c', or service definition under 'META-INF/services/org.codehaus.stax2.validation.XMLValidationSchemaFactory.w3c') at org.codehaus.stax2.validation.XMLValidationSchemaFactory.newInstance(XMLValidationSchemaFactory.java:208) at org.codehaus.stax2.validation.XMLValidationSchemaFactory.newInstance(XMLValidationSchemaFactory.java:98)

내가 그 woodstox가 번들로 제공됩니다 볼 수있는 오류를 얻을 DTD 파서 만 사용합니다. 나는 XMLSchemaValidation 공장에 볼트로 고정하는 데 필요한 비트를 포함하도록되어 나는 Sun Multi-Schema XML Validator보고 된 인정 명령

  1. Get an instance of XMLValidationSchemaFactory that knows how to parse schemas of the type you need (RelaxNG == rng for this example).

을 포함 this article 을 발견했다. 내가 XMLValidationSchemaFactory 내 자신의 인스턴스를 작성하는 에게 com.sun.msv.reader.xmlschema.XMLSchemaReader 를 사용하고이 방법을 작동시킬 수있을 것 같은

는 것 같습니다.

내 질문은; 이 작업을 실제로 수행해야합니까, 아니면 내가 찾지 못한 기존의 w3c 스키마 팩토리가 있습니까?

아마도 생성 한 후에 XML 유효성을 검사하는 것이 더 간단 할 것입니다.

여기에 대한 의견은 무엇입니까?

+0

실제로 저는 com.ctc.wstx.msv.W3CSchemaFactory에 대해 봤습니다. 난 그냥 내 woodstox 버전을 업그레이 드해야 할 수도 있습니다 –

답변

3

저는 Woodstox 4.0.8으로 업그레이드했습니다. W3CSchemaFactory는 번들로 제공되며 모두 좋습니다.

+0

예; XML 스키마 지원이 4.0에 추가되었습니다. 3.2는 MSV와 네이티브 DTD 유효성 검사를 사용하여 RelaxNG를 지원했지만 아직 XML 스키마는 지원하지 않았습니다. – StaxMan

관련 문제