【问题标题】:jaxb binding to override the datatype List<Object> to String将数据类型 List<Object> 覆盖为 String 的 jaxb 绑定
【发布时间】:2013-03-30 06:23:56
【问题描述】:

jaxb 解组

    <xs:complexType name="Test" mixed="true">
    <xs:sequence>
         <xs:any namespace="http://www.w3.org/1999/xhtml" minOccurs="0"/>
    </xs:sequence>
    <attributes.../>
    </xs:complexType>

作为 protected List&lt;Object&gt; content;

我的 jxb 绑定文件是:

  <jxb:bindings node="//xs:complexType[@name='Test']">

                <jxb:property>
                <jxb:baseType name="java.lang.String"></jxb:baseType>
                </jxb:property>
        </jxb:bindings>

这使得 java 等价于

protected List<String> content;

有没有办法让它成为protected String content

【问题讨论】:

  • 如果您想要String,为什么要使用xs:any?如果您不想要 Collection,请添加 maxOccurs="1" 以告诉 JAXB 只有一个。
  • 问题是将来我们可能需要一个包含Strings 和其他tagsCollection。但是现在我想制作一个简单的String。更改架构是一种选择。甚至可以使用绑定文件吗?
  • 所以看起来根本没有办法将 List 转换为 String ,这是有道理的。这个问题没有多大意义。对不起。有没有办法将此问题标记为“忽略”?

标签: java xml jaxb jaxb2-maven-plugin


【解决方案1】:

您可以按照这个 stackoverflow 问题中的描述扩展生成的类: How can I extend Java code generated by JAXB, CXF or Hibernate tools? 这应该可以让您访问受保护的字段

【讨论】:

  • 对。这似乎是一个合理的解决方案。我想知道是否有一种方法可以通过使用绑定功能来做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
  • 1970-01-01
相关资源
最近更新 更多