Dopo il post Matsiya sull'uso di SchemaTypeRegistry per consentire la conversione di oggetti provenienti da un Web Service SOAP in AS3 classi, ho cominciato a pochi esperimenti. L'uso è molto semplice e permette per la mappatura SOAP Oggetti complexType tipo classi AS3 oggetti di sua scelta, dichiarando solo il proprio nome e nomi di oggetto, come descritto nel file WSDL del Web service.
Ad esempio, immaginare che il servizio Web restituisce un elenco di utenti e si desidera recuperare l'elenco in una classe denominata "UserArray", che in realtà è un array di oggetti di tipo "Utente". Basti dire l'associazione prima di chiamare il servizio Web da
SchemaTypeRegistry.getInstance (). RegisterClass (nuovo QName ( "http://www.flex-info.fr/", "userArray"), UserArray);
SchemaTypeRegistry.getInstance (). RegisterClass (nuovo QName ( "http://www.flex-info.fr/", "utente"), l'utente);
Il risultato restituito dalla ResultEvent poi contiene una classe che contiene le classi UserArray utente.
L'immagine qui di seguito illustra il processo:

Come evidenziato Matsiya, peccato non ci sia più comunicazione su questo aspetto della mappatura dei dati tra i servizi Web SOAP e Flex (Flex solo 3). Mi auguro che questo post è coinvolto ...
Aggiornamento: Per essere più completi, le classi AS3 oggetti devono essere scritti con un minimo di loro proprietà, come semplice e può includere funzioni agli oggetti. Esempio di classe per l'utente:
pacchetto (
classe pubblica utente
(
var IDUS pubblico: Numero;
pubblico var login: String;
pubblico var mail: String;
pubblico var nome: String;
pubblico var password: String;
)
)
UserArray classe l'esempio è in realtà una proroga del ArrayCollection classe, ma è necessario se non un semplice ArrayCollection è sufficiente.
Quando un sistema di mappatura e di sincronizzazione classi Java, PHP o altre classi di AS3? Il ne manque plus que ça ... non?
Inoltre: sembra che la mappatura non funziona bene con i servizi Web di tipo "documento / letterale" generato da Axis 1. Il passaggio in "RPC / codificati" risolve il problema ...
Se venite per la prima volta il Flex-info.fr, puoi iscriverti al feed RSS. Grazie per la vostra visita!





















21 maggio 2008 a 12 h 53 min
Ciao,
Sarebbe possibile completare il flex esempio fornendo il vostro progetto? Vorrei sapere cosa fare in dettaglio, si deve attuare una classe di tipo userArray perché dobbiamo dichiarare il tuo userArray e quindi si tratta di un tipo ... (e quindi come si scrive questa categoria).
Grazie per il vostro aiuto.
26 maggio 2008 alle 11 h 28 min
Ciao,
la ringrazio per questo articolo che mette in evidenza un po 'di esercizio e documentato molto pratico. Tuttavia, come si nota nel suo aggiornamento, è necessario dichiarare tutte le variabili nella classe di oggetto. E quindi impedisce qualsiasi tipo di classe "dinamica".
Come il vostro esempio è completato la classe UserArray, questo oggetto può essere inviato come ha un sapone (che naturalmente come il parametro complexType userArray?)
Per ottenere una reale impressione di sychronisation dati?
Grazie per la risposta.
27 maggio 2008 a 8 h 48 min
Romain Ciao,
Hai ragione a dire, AS3 oggetti creati possono essere inviati come è il servizio Web, se il tipo corrisponde al tipo previsto, se un semplice oggetto o un oggetto complesso.
In linea generale, è sufficiente inviare un oggetto con almeno le proprietà attesi dal servizio web che questo oggetto è codificato nel corrispondente tipo.
27 maggio 2008 alle 11 h 15 min
Ciao, io uso i servizi web ora dopo l'utilizzo del telecomando Oggetti, e purtroppo non ho ricevuto tale mappatura di buona qualità. In effetti dopo aver usato il tuo metodo di ottenere molti oggetti di tipo desiderato, ma ancora nulla di campi. Dopo la verifica dei flussi E4X, i dati vengono trasferiti, ma non mappati. E 'il web per i servizi o beni qualcos'altro.
Grazie
3 giugno 2008 a 14 h 13 min
Dopo la ricerca con Julien, la mappatura non è fatta correttamente con i servizi web generato da Axis 1 nel "documento / letterale". Cfr. inoltre, alla fine dell'articolo ...