JAXB生成的文件中的混合内容

时间:2013-12-03 09:46:38

标签: java xml jaxb xsd hl7-v3

在我的XSD中考虑以下类型定义:

<xs:complexType name="ED" mixed="true">
  <xs:complexContent>
     <xs:extension base="BIN">
        <!-- I cut some data here -->
     </xs:extension>
  </xs:complexContent>
</xs:complexType>

我发现JAXB很难为mixed元素生成代码。 我尝试使用<jaxb:globalBindings generateMixedExtensions="true"/>,但这种支持效果不佳并生成了笨拙的List<Serializable>代码。

所以我想我可以通过自定义绑定修改一些元素:

<bindings
    xmlns="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    version="1.0">
    <bindings schemaLocation="../../processable/coreschemas/datatypes-base.xsd">
        <bindings node="//xs:complexType[@mixed='true']" multiple="true">
            <property>
                <javaType><!-- What do I do here? --></javaType>
            </property> 
        </bindings>
    </bindings>
</bindings>

基本上,我希望指定mixed=true的所有元素都具有自定义valuecontent字段(String),其中包含标记之间的CDATA。例如,对于我的ED类型,它在XML中可能是这样的,title元素使用ED作为其类型:

<title>Hello, I'm a title!</title>应该以{{1​​}}为内容。

我该怎么做?

对于您感兴趣的人:我正在尝试为HL7v3 CDA规范生成代码。

0 个答案:

没有答案