Serializzazione XML degli XOM della serie di regole

Nel servizio SOAP per l'esecuzione della serie di regole, i tipi Java primitivi™ , i tipi di XSD e le classi Java XOM vengono serializzati in modo diverso nella richiesta SOAP e nella risposta SOAP.

I parametri della serie di regole vengono gestiti in modo diverso a seconda che siano espressi come elementi XML o come tipi Java.

Tipi primitivi

I tipi primitivi sono classi e tipi Java che possono essere scritti come stringhe in linea. L'elemento XML utilizzato per serializzare un tipo primitivo come parametro della serie di regole è il nome del parametro della serie di regole nello spazio dei nomi del parametro.

Puoi trovare maggiori informazioni qui:

XOM dinamico

Per gli XOM dinamici, l'elemento root dipende dalla modalità di definizione dei parametri della serie di regole. La descrizione XML viene serializzata dal codice XSD originale dello XOM dinamico sul quale si basa la serie di regole.

Nome dell'elemento root
Per le serie di regole che si basano su uno XOM dinamico, il nome dell'elemento root viene determinato come segue:
  • Se il parametro è un elemento XML nella firma della serie di regole, tale elemento viene utilizzato come nome elemento root del parametro nelle richieste e nelle risposte.
  • Se il parametro è un tipo Java complesso o primitivo, il nome del parametro viene utilizzato come nome dell'elemento root del parametro nelle richieste e nelle risposte, all'interno dello spazio dei nomi param configurato.
    Nota: un parametro della serie di regole viene dichiarato da un elemento XML se soddisfa la seguente condizione: tale parametro utilizza un tipo complesso XML per cui un elemento XML è stato dichiarato da tale tipo complesso nel file XSD importato originale. Ad esempio, a partire dalla seguente definizione XSD:
    <xsd:element name="MyConference">
       <xsd:complexType>
          <xsd:sequence>
             <xsd:element name="session" type="session" maxOccurs="unbounded"/>
             <xsd:element name="participant" type="participant" minOccurs="0" maxOccurs="unbounded"/>
          </xsd:sequence>
       </xsd:complexType>
    </xsd:element>
    il parametro ruleset è dichiarato dall'elemento XML MyConference :
    <par:Request xmlns:par="http://www.ibm.com/rules/decisionservice/myruleapp/myruleset/param" xmlns:jav="http://www.acme.com/myconference">
       <jav:MyConference>
          <jav:session>
            […]
          <jav:session>
       <jav:MyConference>
    </par:Request>
Serializzazione
L'elemento root dipende dai propri tipi XML.
  • Per i tipi complessi XML, la dichiarazione del parametro utilizza il nome del parametro (nello spazio dei nomi del parametro) come elemento root.
  • Per gli elemento XML, la dichiarazione del parametro utilizza l'elemento XML definito come elemento root nello spazio dei nomi originale. In tal caso, il nome del parametro allegato a ciascun nodo viene fornito nel codice WSDL come messaggio di commento.
Quando più elementi hanno lo stesso nome, i nodi degli elementi vengono differenziati alfabeticamente. In questo caso, se si desidera che uno degli elementi sia null, è necessario impostare l'attributo xsi:nil su true. È possibile farlo solo se l'attributo nillable è impostato su true per l'elemento root nello schema XSD originale dello XOM dinamico. Il valore predefinito dell'attributo nillable è false.

XOM Java

Per gli XOM Java, l'elemento root deriva dalla dichiarazione del parametro e la serializzazione XML utilizza le annotazioni JAXB. Gli array sono supportati per i parametri della serie di regole.
Nome dell'elemento root

Per le serie di regole basate su uno XOM Java, la dichiarazione del parametro utilizza il nome parametro (nello spazio dei nomi del parametro) come elemento root.

Serializzazione
La struttura XML delle classi Java XOM viene serializzata tramite il processo JAXB standard. Se la serializzazione predefinita non fornisce i risultati previsti per le proprie classi, è possibile personalizzare il processo di serializzazione utilizzando le annotazioni JAXB.
Nota: un parametro è visibile come elemento XML solo se lo si specifica con un'annotazione XmlElement o se al parametro si applicano i metodi getXXX e setXXX validi.
Array come parametri della serie di regole
In Java XOM, è possibile specificare i parametri della serie di regole come array semplici o multidimensionali. La serializzazione XML viene elaborata in modo diverso per ciascun tipo di array:
  • Se il parametro della serie di regole è un array semplice, il nome del parametro si ripete come un array standard in XML.
  • Se il parametro della serie di regole è un array multidimensionale, il nome del parametro si ripete come un tipo di array standard in XML per la prima dimensione e utilizza quindi gli elementi item per le dimensioni successive. Ad esempio:
    <myMultiDimArrayParam>
          <item>1</item>
          <item>2</item>
        </myMultiDimArrayParam>
        <myMultiDimArrayParam>
          <item>3</item>
          <item>4</item>
          <item>5</item>
    </myMultiDimArrayParam>