Serializzazione XML dei set di regole XOM

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

I parametri del set 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 tipi e classi Java che possono essere scritti come stringhe inline. L'elemento XML utilizzato per serializzare un tipo primitivo come parametro del set di regole è il nome del parametro del set di regole nello spazio dei nomi dei parametri.

Maggiori informazioni sono disponibili qui:

XOM dinamico

Per gli XOM dinamici, l'elemento radice dipende da come sono definiti i parametri del set di regole. La descrizione XML è serializzata dal codice XSD originale dello XOM dinamico su cui si basa il set di regole.

Nome dell'elemento radice
Per i set di regole basati su un XOM dinamico, il nome dell'elemento radice viene determinato come segue:
  • Se il parametro è un elemento XML nella firma del set di regole, tale elemento viene utilizzato come nome dell'elemento radice 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 radice del parametro nelle richieste e nelle risposte, all'interno dello spazio dei nomi param configurato.
    Nota: un parametro del set di regole viene dichiarato da un elemento XML se soddisfa la seguente condizione: tale parametro utilizza un tipo complesso XML per il quale è stato dichiarato un elemento XML da quel tipo complesso nel file XSD importato originale. Ad esempio, partendo 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 MyConference XML:
    <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 radice dipende dai tipi XML utilizzati.
  • Per i tipi complessi XML, la dichiarazione dei parametri utilizza il nome del parametro (nello spazio dei nomi dei parametri) come elemento radice.
  • Per gli elementi XML, la dichiarazione dei parametri utilizza l'elemento XML definito come elemento radice nello spazio dei nomi originale. In questo caso, il nome del parametro associato a ciascun nodo è fornito nel codice WSDL come messaggio di commento.
Quando più elementi hanno lo stesso nome, i nodi degli elementi vengono differenziati in ordine alfabetico. In questo caso, se si desidera che uno degli elementi sia nullo, è necessario impostare xsi:nil l'attributo su true. È possibile farlo solo se nillable l'attributo è impostato su true per l'elemento radice nello schema XSD originale dell'XOM dinamico. Il valore predefinito nillable dell'attributo è false.

XOM Java

Per Java XOM, l'elemento radice deriva dalla dichiarazione dei parametri e la serializzazione XML utilizza le annotazioni JAXB. Gli array sono supportati per i parametri dei set di regole.
Nome dell'elemento radice

Per i set di regole basati su Java XOM, la dichiarazione dei parametri utilizza il nome del parametro (nello spazio dei nomi dei parametri) come elemento radice.

Serializzazione
La struttura XML delle classi Java XOM viene serializzata tramite il processo JAXB standard. Se la serializzazione predefinita non fornisce i risultati desiderati per le classi, è possibile personalizzare il processo di serializzazione utilizzando le annotazioni JAXB.
Nota: un parametro è visibile come elemento XML solo se specificato con XmlElement un'annotazione o se i metodi setXXX valid getXXX e si applicano al parametro.
Array come parametri del set di regole
In Java XOM, è possibile specificare i parametri del set di regole come array semplici o multidimensionali. La serializzazione XML viene elaborata in modo diverso per ogni tipo di array:
  • Se il parametro ruleset è un array semplice, il nome del parametro viene ripetuto come array standard in XML.
  • Se il parametro ruleset è un array multidimensionale, il nome del parametro si ripete come tipo di array standard in XML per la prima dimensione e quindi utilizza item elementi 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>