我是否可以将XJC编译器配置为使用自定义XML绑定进行内联自定义?

时间:2012-04-06 09:09:56

标签: java jaxb xjc

对于JAXB,我们可以使用内联自定义以某种方式调整模式编译器。这可以通过Schema Binding Declarations(< jxb:schemaBindings />)来完成。

任何使其他XML标记(例如下面的例子中的ActualType,EnumerationValue)与标准XJC编译器一起使用以影响生成的类的方法是什么?

<xs:simpleType name="SomeType">
  <xs:annotation>
    <xs:appinfo>
      <ActualType Name="unsignedInt" />
    </xs:appinfo>
  </xs:annotation>
  <xs:restriction base="xs:string">
    <xs:enumeration value="PredefinedEnumValue">
      <xs:annotation>
        <xs:appinfo>
          <EnumerationValue>10000</EnumerationValue>
        </xs:appinfo>
      </xs:annotation>
    </xs:enumeration>
  </xs:restriction>
</xs:simpleType>

1 个答案:

答案 0 :(得分:0)

对于枚举值,您需要使用<jaxb:typesafeEnumMember value="10000" />(请查看示例here),对于简单类型转换,您需要使用<jaxb:baseType name="int" />(请查看示例there)。

P.S。 Java不支持无符号整数。另外,请不要忘记在xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"中定义jaxb名称空间<xsd:schema>