栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在一个Java应用程序中处理不同版本的XSD文件?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在一个Java应用程序中处理不同版本的XSD文件?

首先,您需要某种方式来标识适合于特定实例文档的架构。您说文档具有

schemaLocation
属性,所以这是一种解决方案。但是请注意,您必须专门配置解析器以使用此属性,并且恶意文档可能会指定您无法控制的架构位置。相反,我建议获取属性值,并使用它在内部表中找到适当的架构。

接下来是访问数据。您没有说为什么要使用三种不同的架构。唯一合理的原因是数据规范的发展(即,模式表示同一数据的版本1、2和3)。如果这不是您的原因,那么您需要重新考虑您的设计。

如果您要支持不断发展的数据规范,则需要回答“我该如何处理丢失的数据”的问题。有两个答案:一个是维护代码的多个版本。通过重构通用功能,这不是一个坏主意,但是很容易变得难以维护。

替代方法是使用单个代码库和某种包含规则的适配器对象。而且,如果沿着这条路走,JAXB是错误的解决方案,因为它与模式相关。您也许可以使用允许的XML->
Java转换器:我相信XStream可以工作,而且我知道实用XML
1.1版本可以工作(自从我写以来),尽管您必须自己构建它。

根据架构的复杂性,另一个更好的选择是开发一组使用XPath检索数据的对象。我可能会使用“主”对象来实现,该对象包含模式的每个变体中每个字段的XPath表达式。然后创建轻量级的“包装器”对象,该对象包含您的实例文档的DOM版本,并使用适合该架构的XPath。但是请注意,这仅限于只读访问。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454316.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号