我正在尝试在WEB-INF中的xsd文件夹下验证项目中的xsd。 请找到我开发的代码
JAXBContext jc = JAXBContext.newInstance(OTAHotelResRQ.class);
JAXBSource source = new JAXBSource(jc, reqJAXB);
SchemaFactory sf =SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("XSD/OTA_HotelResRQ.xsd"));
Validator validator = schema.newValidator();
validator.validate(source);
但是我无法从XSD中读取它。它显示以下异常
java.lang.RuntimeException: org.apache.cxf.interceptor.Fault: schema_reference.4: Failed to read schema document 'file:///D:/hayyat/softwares/jboss-4.2.3.GA/bin/XSD/OTA_HotelResRQ.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:322)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:122)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:154)
所以请解决我的问题。
此致 Narsi
答案 0 :(得分:2)
将XSD放在类路径中(WEB-INF / classes或jar中的jar),并从类路径中读取。
How to read properties file in web application?
Getting the inputstream from a classpath resource (XML file)