Как определить подходящий комплексный тип? - PullRequest
1 голос
/ 01 июня 2011

У меня есть это в моем xsd:

<xs:element name="Parameter" type="complex">

и я хочу определить комплекс как:

<xs:simpleType name="complex">
    1 xs:decimal
    2 xs:string
  </xs:simpleType>

Так что, если значение для параметра является десятичным, то нужно принять десятичное, а если значение не является десятичным, предположить, что значение является строкой. Как объявить мой сложный тип?

1 Ответ

2 голосов
/ 01 июня 2011

Вам понадобится complexType вместе с выбором , чтобы выразить это:

<xs:complexType name="complex">
   <xs:choice>
      <xs:element name="number" type="xs:decimal"/>
      <xs:element name="string" type="xs:string"/>
   </xs:choice>
</xs:complexType>

Редактировать: Основываясь на ваших комментариях, возможно, стоит попробовать:

<xs:simpleType name="monat">
   <xs:union memberTypes="xs:decimal xs:string"/>
</xs:simpleType>

Но JAXB все равно переведет в String, так что объединение не принесет никакой выгоды, по крайней мере, в отношении сгенерированных классов.И то, что вы используете JAXB - это только предположение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...