【问题标题】:JAXB, XSD stylesheets, and element name conflict resolutionJAXB、XSD 样式表和元素名称冲突解决
【发布时间】:2014-10-28 14:59:58
【问题描述】:

这更像是一个学术问题,但我开始着手配置 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 注释类。它很快变成了无休止的配置和解析异常流,所以我想我会问。

【问题讨论】:

    标签: java xml jaxb xsd


    【解决方案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 和命名空间的文章:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 2011-05-28
      相关资源
      最近更新 更多