xml namespace para java, como modelar 'escolha'?
-
23-08-2019 - |
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?
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