Pergunta

O que é a melhor maneira de representar no java uma "escolha" tag namespace? ie.

<xs:complexType name="MyType">
  <xs:sequence>
    <!-- common elements here -->
    <xs:element type="xs:string" name="name" ... />
  </xs:sequence>
  <xs:choice>
    <xs:element name="stringValue" type="xs:string"></xs:element>
    <xs:element name="intValue" type="xs:int"></xs:element>
  </xs:choice>
</xs:complexType>

Como faço para modelar isso em Java? Eu estava pensando em algo como:

public class MyType
  String name;

  String stringValue;
  int intValue;
...

mas isso não é certeza de que o melhor caminho, ou estou errado? Além disso, se eu quero expor serviços com Axis2 que usam esse tipo, que eu preciso para implementar algum receptor de mensagem personalizada?

Foi útil?

Solução

Nós geralmente traduzir o XSD para objetos Java com JAXB ou algum outro mecanismo de ligação (do qual você tem vários em eixo2). Aqueles gerar objetos exatamente como você têm mostrado: isto é, todos os atributos nas escolhas estão lá e você não vê qualquer coisa que indica que apenas um deles pode estar presente. Se você está traduzindo parte de trás coisas em xml, este só seria notado se ligar validação. Não há nenhum problema com as escolhas se você sabe que você não deve definir ambas as variantes simultaneamente em Java -. O resultado às vezes pode até ser que nenhum deles faz no XML gerado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top