【发布时间】:2025-12-07 11:30:01
【问题描述】:
我将 jaxb 用于我的应用程序配置
我觉得我在做一些非常不正当的事情,我正在寻找一种不需要实际文件或此交易的方法。
正如你在代码 I 中看到的:
1.从我的 JaxbContext 中创建一个模式到一个文件中(实际上来自我的类注释) 2.设置此架构文件以便在我解组时允许真正的验证
JAXBContext context = JAXBContext.newInstance(clazz);
Schema mySchema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(schemaFile);
jaxbContext.generateSchema(new MySchemaOutputResolver()); // ultimately creates schemaFile
Unmarshaller u = m_context.createUnmarshaller();
u.setSchema(mySchema);
u.unmarshal(...);
你们有谁知道我如何验证 jaxb 而无需在我的计算机中创建架构文件?
我是否需要创建一个模式进行验证,当我通过 JaxbContect.generateSchema 获得它时它看起来是多余的?
你是怎么做到的?
【问题讨论】:
-
为什么不从类路径资源中读取架构?
-
我不确定我是否理解,你能详细说明吗?
-
我可以从我的类路径加载我的模式文件,但我试图避免创建模式文件,正如你在上面看到的那样,我正在创建文件并在一秒钟后使用它我实际上可以在之后删除它我完成了编组。我在这里错过了一些大图吗?感谢您的帮助