Xsd JAXB模式设计,具有枚举动态值

Xsd JAXB模式设计,具有枚举动态值,xsd,jaxb,schema,Xsd,Jaxb,Schema,我有以下模式 <xs:simpleType name="enumType"> <xs:restriction base="xs:string"> <xs:enumeration value="STRING_ONE"/> <xs:enumeration value="STRING_TWO"/> </xs:restriction> </xs:simpleType>

我有以下模式

<xs:simpleType name="enumType">    
    <xs:restriction base="xs:string">    
        <xs:enumeration value="STRING_ONE"/>
        <xs:enumeration value="STRING_TWO"/>
    </xs:restriction>
</xs:simpleType>

只要我得到一个已知的字符串,我就可以将它切换到我的jaxbobject,它需要一个
enumType
对象。但是如果我不知道这个字符串呢?有没有一种基于JAXB模式的方法来处理它?我知道基于枚举这是不可能的


编辑:试图让它更清晰

在给定的模式设计中,接受
enumType
作为参数的JAXBObject只能有两个输入值,即STRING_ONE或STRING_TWO,它们将作为编组的一部分转换为XML


问题是,如果我想通过模式设计来处理这样一种情况,如果我可以拥有
enumType
的对象,那么很好,否则我可以给JAXBObject一个XML,而不是
enumType
,它仍然解析它。

从XSD的角度来看,听起来你想能够编写

<xs:simpleType name="soft-enumeration">
  <xs:union>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="STRING_ONE"/>
        <xs:enumeration value="STRING_TWO"/>
      </xs:restriction>
    </xs:simpleType>
    <xs:simpleType>
      <xs:union memberTypes="xs:string"/>
    </xs:simpleType>
  </xs:union>
</xs:simpleType>

此类型包括您描述的枚举,但它随后将其与xs:string合并,以便也接受其他值。如果您的模式接口允许您访问关于使用了哪种联合成员类型的信息,那么您可以使用该信息来处理STRING_ONE和STRING_TWO的实例,使其不同于其他字符串


然而,我不知道jaxb是否对这个习语有用;这就是你自己

从XSD的角度来看,听起来您希望能够编写

<xs:simpleType name="soft-enumeration">
  <xs:union>
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="STRING_ONE"/>
        <xs:enumeration value="STRING_TWO"/>
      </xs:restriction>
    </xs:simpleType>
    <xs:simpleType>
      <xs:union memberTypes="xs:string"/>
    </xs:simpleType>
  </xs:union>
</xs:simpleType>

此类型包括您描述的枚举,但它随后将其与xs:string合并,以便也接受其他值。如果您的模式接口允许您访问关于使用了哪种联合成员类型的信息,那么您可以使用该信息来处理STRING_ONE和STRING_TWO的实例,使其不同于其他字符串


然而,我不知道jaxb是否对这个习语有用;这就是你自己

您是否希望将属性从枚举更改为字符串,以便处理XML模式中定义的值以外的值?这是最后一种方法,是的,它肯定会起作用。但我想知道是否有一个选项,通过它我们可以在模式中指定一个字段,该字段可以同时处理枚举和枚举基值(本例中为字符串)。是否希望将属性从枚举更改为字符串,以便可以处理XML模式中定义的值以外的值?这是最后一种方法,是的,这肯定会奏效的。但我想知道是否有一个选项,通过它我们可以在模式中指定一个字段,该字段可以同时处理枚举和枚举基值(本例中为字符串)。