Domanda

Qual è il modo migliore per rappresentare in Java un tag namespace "scelta"? vale a dire.

<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>

Come faccio a modello di questo in Java? Stavo pensando a qualcosa di simile:

public class MyType
  String name;

  String stringValue;
  int intValue;
...

, ma questo non è certo il modo migliore, o mi sbaglio? Inoltre, se voglio esporre servizi con Axis2 che utilizzano quel tipo, ho bisogno di attuare alcune destinatario del messaggio personalizzato?

È stato utile?

Soluzione

Noi di solito tradurre il XSD per oggetti Java con JAXB o qualche altro meccanismo vincolante (di cui si dispone di più in axis2). Coloro che generano gli oggetti esattamente come avete dimostrato: cioè, tutti gli attributi nelle scelte ci sono e non si vede tutto ciò che indica che solo uno di essi può essere presente. Se si sta traducendo la roba in XML, questo sarebbe notato solo se si passa sulla convalida. Non c'è nessun problema con le scelte se consapevoli che non è necessario impostare entrambe le varianti contemporaneamente in Java -. Il risultato a volte può anche essere che nessuno di loro lo rende in XML generato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top