erlug
[Top] [All Lists]

RE: [Erlug] giochicchiando con google

To: "'erlug@xxxxxxxxxxxxxx'" <erlug@xxxxxxxxxxxxxx>
Subject: RE: [Erlug] giochicchiando con google
From: Alessandro Forghieri <Alessandro.Forghieri@xxxxxxxxxx>
Date: Mon, 23 Jun 2003 19:26:45 +0200
Saluti.

Massimiliano Masserelli wrote:
> On Mon, Jun 23, 2003 at 04:22:34PM +0200, Alessandro Forghieri wrote:
> 
>> Soap::Lite ha a bordo XML::Parser::Lite che e' un parser in puro
>> perl. Per qualunque compito un po' serio e' assai meglio usare altri
>> parser... Se installato, ad esempio, SOAP::Lite usa XML::Parser,
>> basta su expat, che e' gia' un bel salto in avanti.
> 
> XML::Parser giurerei fosse installato, ma non ne sono sicurissimo.
> Sini? Tu ricordi meglio? 

Se hai perl 5.8 dovrebbe essere installato.

> 
>> Poi meglio non leggere i file N volte ;)
> 
> Ti ringrazio per l'importante ragguaglio. 

Prego, approfitta pure... ne ho tanti cosi', e tutti gratis. :-)

> Peccato che se hai elementi
> multi valore (cioe`, un nodo che contiene un array, per dire)
> SOAP::Lite si diletti a rappresentare in memoria soltanto l'ultimo
> valore incontrato. A me facevano comodo anche gli altri. Mi rendo
> conto di avere delle pretese...

Gia', ma si puo' fare di meglio.
Bisogna leggere un chilo di documentazione, pero'... all'anima
dell'interoperabilita'.
Il fatto e' che SOAP::Lite ritorna i risultati in un hash e  se (ad esempio
da .NET)
viene ritornata un arraylist (codificata come una sequenza di <anyType/>)
ogni valore sovrascrive
il precedente... se si usa il metodo ->result, cioe'.

Se invece ci si ferma un attimo prima...

[...]
my $method = SOAP::Data->name('AuthorizedViews')
  ->attr({xmlns => $uri});
my @parms=(
           SOAP::Data->name(user=>"guest"),
           SOAP::Data->name(password=>""),
           SOAP::Data->name(company=>undef()),
           SOAP::Data->name(role=>undef()),
          );

my $cr=$soap->call($method => @parms);
print "Result::", join("\n",$cr->valueof("//anyType")),"\n";
[...]

L'espressione da passare a 'valueof' e' in sintassi XPath (e buon
divertimento 
se il tipo e' complesso).

(P.S: questa acrobazia mi e' costata quasi 3 ore... pare che non si riesca
ad
avere uno standard d'invocazione remota senza infilarci tre modi di codifica
di 
parametri e risultati tra loro diversi e tutti perfettamente leciti....)

Cheers,
alf

<Prev in Thread] Current Thread [Next in Thread>