这更像是一个学术问题,但我开始着手配置JAXB模式验证,因为我正在研究使用多个具有元素名称冲突的模式会发生什么。是否可以配置JAXB并具有支持XML文档的模式文件,看起来像这样?
<my:inventory
xmlns:my="http://www.my.com"
xmlns:ab="http://www.ab.com"
xmlns:xy="http://www.xy.com">
<my:products>
<ab:product>
<id>123</id>
<desc>some ap product</desc>
<price>12.22</price>
</ab:product>
<xy:product>
<key>123</key>
<title>some xy product</title>
<cost>63.45</cost>
</xy:product>
</my:products>
</my:inventory>
基本思路是从AB公司和XY公司获得产品信息。两家公司拥有相同的数据,但将它们存储在不同的标签中。我希望我的公司架构能够定义其他两家公司的产品库存。
我开始为此创建XSD文件和JAXB注释类。它很快就变成了无休止的配置流和解析异常,所以我想我会问。
答案 0 :(得分:1)
是的,JAXB可以支持具有多个命名空间的XML文档。您最终会得到以下内容:
@XmlAccessorType(XmlAccessType.FIELD)
public class Products {
@XmlElement(name="product", namespace="http://www.ab.com")
private Product product1;
@XmlElement(name="product", namespace="http://www.xy.com")
private Product product2;
}
了解更多信息
我在博客上写了更多关于JAXB和名称空间的内容: