如何在JaxB中全局定义simpleType

时间:2013-05-21 09:18:31

标签: jaxb simpletype

我在一个名称空间中定义了一个simpleType。

我将在另一个命名空间中使用此simpleType。到目前为止还好。但是JaxB使用它在每个包中生成simpleType。我期望并且只需要一个全局simpleType定义。

实施例: common.xsd(这是我simpleType) - > package.common.MyEnum account.xsd - > package.account.SomeMeComplexType + package.account.MyEnum

我想: common.xsd - > package.common.MyEnum account.xsd - > package.account.SomeMeComplexType +对package.common.MyEnum的引用

common.xsd:

<xs:simpleType name="barringScope">
    <xs:restriction base="xs:long">
        <xs:enumeration value="1"/>
        <xs:enumeration value="2"/>
        <xs:enumeration value="3"/>
    </xs:restriction>
</xs:simpleType>  

binding.xjb:

<jxb:bindings version="2.1" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <jxb:bindings schemaLocation="common.xsd">
      <jxb:bindings node="xsd:simpleType[@name='barringScope']">
          <jxb:typesafeEnumClass>
               <jxb:typesafeEnumMember value="1" name="one"/>
               <jxb:typesafeEnumMember value="2" name="two"/>
               <jxb:typesafeEnumMember value="3" name="three"/>
          </jxb:typesafeEnumClass>
      </jxb:bindings>
  </jxb:bindings>
</jxb:bindings>

0 个答案:

没有答案