2017-10-10 3 views
0

Mise à jour de gSOAP de 2.8.10 à 2.8.54. Ceci est un outil de génération de code C++ pour permettre rpc sur XML. Le code généré par la nouvelle version ne produit pas de code XML compatible avec une version antérieure. Je me demandais si quelqu'un avait examiné/utilisé ces versions de gSOAP dans leurs produits C++ et trouvé une différence dans le XML utilisé pour le marshaling.La mise à niveau de gSOAP de 2.8.10 au plus tard (2.8.54) n'a pas de ns: pour l'espace de noms sur plusieurs balises XML

Le code XML doit correspondre à 2.8.10 produits doivent parler aux produits qui utilisent 2.8.54 Mon problème actuel est l'espace de nom pour l'entrée et les données dans le code généré dynamiquement qui produit le XML pour 2.8.10 a

if (soap_out_PointerTostd__string(soap, "ns:method", -1, &a->method, "xsd:string")) 
    return soap->error; 
if (soap_out_PointerTons__ComplexType(soap, "ns:input", -1, &a->input, "ns:ComplexType")) 
return soap->error; 

et 2.8.54 a

if (soap_out_PointerTostd__string(soap, "method", -1, &a->method, "xsd:string")) 
    return soap->error; 
if (soap_out_PointerTons__ComplexType(soap, "input", -1, &a->input, "ns:ComplexType")) 
    return soap->error; 

la question se pose, comment se ns: a été abandonné pour la méthode et l'entrée? Il a également été supprimé pour les données.

J'ai essayé -z1, -z2 et -z3 et aucun n'a ajouté le ns aux variables 'data', 'method' ou 'input' de xml. Je m'attends à voir ns: data, ns: method et ns: input. Essayé autres permutations (-i, -j) aussi

Toute aide est appréciée.

Des recommandations?

Répondre

2

J'ai eu le même problème. Lors de l'exécution soapcpp2.exe of 2.8.55 sur mon dossier *.h, le 'ns:' disparaissaient

Enfin, ce qui a contribué à la résolution de ce ajoutait la ligne suivante dans le fichier *.h, dans la section de tous les autres '//gsoap' attributs:

//gsoap ns schema elementForm: qualified 

Espérons que cela aide