In questa sezione vengono descritti gli oggetti creati quando viene importata una definizione WSDL e alcune restrizioni.
Se è necessario analizzare documenti di istanza SOAP 1.2, rimuovere in modo manuale le definizioni di SOAP 1.1 e importare le definizioni di SOAP 1.2 mediante la procedura guidata File di definizione dei messaggi selezionando Messaggio fornito da IBM.
Se la serie di messaggi dispone di livelli TDS o CWF, l'importazione delle definizioni SOAP genera numerosi messaggi di avvertenza. Ignorarne la maggior parte e considerare i valori consentiti per gli attributi booleani. In SOAP 1.1 i valori booleani sono 1 o 0, mentre in SOAP 1.2 i valori sono true e false. La rappresentazione XML dei valori booleani per una serie di messaggi è specificata nelle proprietà fisiche per il formato fisico XML, che ne condizionano l'impostazione.
La politica di output xsi:type nel messaggio è impostata su "Mai".
Messaggio di input | Messaggio di output | |
---|---|---|
Derivato da | Child wsdl:input (se presente) dell'operazione WSDL e parti e messaggio WSDL identificati | Child wsdl:output (se presente) dell'operazione WSDL e parti e messaggio WSDL identificati |
Nome dell'elemento | Valore dell'attributo nome nell'elemento dell'operazione WSDL | Valore dell'attributo nome nell'elemento dell'operazione WSDL in cui è presente il suffisso "Risposta" |
Spazio dei nomi dell'elemento | Valore dell'attributo spazio dei nomi nell'elemento soap:body corrispondente | Valore dell'attributo spazio dei nomi nell'elemento soap:body corrispondente |
Ciascun messaggio è di tipo complesso locale poiché si tratta di una sequenza di elementi. Il nome di ciascun elemento è il valore dell'attributo nome nelle parti WSDL del messaggio identificate rispettivamente dall'elemento di input o output. Tali elementi non sono dotati di spazi dei nomi (la rappresentazione di schema è form="unqualified") e si trovano in ambito locale per evitare conflitti di nome. Il tipo di tali elementi locali è il tipo di schema XML a cui fa riferimento l'attributo tipo dell'elemento della parte corrispondente. Il tipo è globale nello schema WSDL.
Se nella definizione WSDL soap:body è definito use="encoded", la definizione del messaggio include un riferimento al gruppo di attributi encodingStyle nello spazio dei nomi SOAP-ENV e la politica di output xsi:type nel messaggio è impostata su "Segui regole di codifica SOAP". In caso contrario, la politica di output xsi:type nel messaggio è impostata su "Mai".
<xsd:complexType name="t"> <xsd:complexContent> <xsd:restriction base="SOAP-ENC:Array"> <xsd:sequence> <xsd:element name="item" type="string" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType>
Alcuni utilizzi della sintassi di array SOAP non sono supportati in modo completo. Sebbene in fase di analisi venga creata una struttura utile (da serializzare in fase di scrittura), si verificano le condizioni riportate di seguito.
Ad esempio, in ESQL l'accesso al primo elemento di un array specificato con offset[2] non viene effettuato come InputRoot.MRM.array.item[3] ma come InputRoot.MRM.array.item[1].
<SOAP-ENC:Array SOAP-ENC:arrayType="xsd:string[3]"> <item xsi:type="xsd:string">Una stringa di testo generale</item> <item xsi:type="xsd:token">Una restrizione del tipo di stringa</item> <item xsi:type="xsd:Name">UnarestrizionedeltipodiToken</item> </SOAP-ENC:Array>
Il modello del broker gestisce il formato con la modalità prevista, ma nella codifica SOAP è inoltre consentito utilizzare gli elementi tipo dallo spazio dei nomi della codifica SOAP mediante gli elementi dell'array. Ciò significa che è possibile creare un documento di istanza del formato indicato di seguito mediante un'applicazione che utilizza la stessa definizione WSDL.
<SOAP-ENC:Array SOAP-ENC:arrayType="xsd:string[3]"> <SOAP-ENC:string>Una stringa di testo generale</SOAP-ENC:string> <SOAP-ENC:token>Una restrizione del tipo di stringa</SOAP-ENC:token> <SOAP-ENC:Name>UnarestrizionedeltipodiToken</ SOAP-ENC:Name> </SOAP-ENC:Array>
Per gestire un caso del genere, è necessario modificare in modo manuale il modello di broker creato mediante l'importazione del WSDL, a meno che non sia accettabile che il programma di analisi lo consideri come un elemento a definizione automatica.