Serializzazione XML dei set di regole XOM
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.
- Modifica degli spazi dei nomi di destinazione spiega come personalizzare lo spazio dei nomi dei parametri dalla vista del set di regole nella console del server di esecuzione delle regole.
- La serializzazione XML dei tipi Java mostra i tipi XML e le annotazioni Java Architecture for XML Binding (JAXB) per i tipi primitivi Java e i tipi semplici.
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
paramconfigurato.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:
Il parametro ruleset è dichiarato dall'elemento<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>MyConferenceXML:<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.
XOM Java
- 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
XmlElementun'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
itemelementi 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>