正确加载包装在WAR中的XSD的方法是使用类加载器。在Java Web应用程序中,可以使用以下步骤来加载包装在WAR文件中的XSD文件:
WEB-INF/classes
或WEB-INF/lib
目录下。import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import java.io.InputStream;
public class XSDLoader {
public static void main(String[] args) {
try {
InputStream xsdInputStream = XSDLoader.class.getResourceAsStream("/path/to/your/xsd/file.xsd");
StreamSource xsdSource = new StreamSource(xsdInputStream);
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(xsdSource);
Validator validator = schema.newValidator();
// 使用validator对XML进行验证
} catch (Exception e) {
e.printStackTrace();
}
}
}XSDLoader.class.getResourceAsStream()
方法获取XSD文件的输入流,然后使用StreamSource
对象将其传递给SchemaFactory
以创建Schema
对象。schema.newValidator()
方法创建Validator
对象,并使用它对XML文档进行验证。这种方法可以确保在加载XSD文件时,类加载器会自动从WAR文件中的适当位置查找该文件。这样,无论应用程序部署在哪里,都可以正确加载XSD文件。
推荐的腾讯云相关产品:
领取专属 10元无门槛券
手把手带您无忧上云