2009-10-01 6 views
3

Je dois envoyer le XML ci-dessous. Et j'ai aucune idée par où commencer. Je sais que j'ai besoin de chercher du savon dans Perl mais c'est à peu près tout.Comment envoyer ce XML SOAP en Perl?

<xs:element name="CheckDomain"> 
<xs:complexType> 
<xs:sequence> 
<xs:element name="domain" type="domainRef"/> 
<xs:element name="suggestions" type="xs:boolean" default="false" minOccurs="0"/> 
</xs:sequence> 
</xs:complexType> 
</xs:element> 

Répondre

0

Eh bien, vous pourrait obtenir un client HTTP sur CPAN, puis il suffit d'utiliser un < < (ici) avec les documents (valeurs codées XML) des variables interpolées pour envoyer la demande. Ensuite, vous devrez analyser la réponse.

Il devrait y avoir un client SOAP pour Perl, mais ce n'est pas une combinaison que j'ai rencontrée.

Une question intéressante, cependant. Bonne chance avec le matraquage WSDL :-)

1

Le XML snippet que vous avez posté ressemble XSD. Il décrit le code XML suivant:

<CheckDomain xmlns="..."> 
<domainRef>...</domainRef> 
<suggestions>true</suggestions> <!-- or it could be "false" --> 
</CheckDomain> 

L'extrait que vous avez fourni ne dit pas ce que l'espace de noms CheckDomain doit être, ou ce qui est censé être à l'intérieur de domainRef. Vous avez besoin de tout le document XSD pour cela.

En outre, sans voir le fichier WSDL pour le service, il est impossible de dire comment transformer cela en un message SOAP valide. (En supposant que vous avez affaire à un vrai service SOAP, et pas seulement à un service REST ou XML-RPC qui décrive son entrée en utilisant le schéma XSD).

La beauté de SOAP est que vous n'avez généralement jamais à faire cela manuellement. Vous obtenez juste le bon outil et le pointez sur les fichiers WSDL et XSD publiés par le service, et vous obtenez automatiquement des classes qui font ce qu'il faut.