2009-10-19 4 views
1

est ici un problème que je viens de tombé dans:php webservices et types de données

J'ai un service Web basé sur PHP qui renvoie les données statistiques sur les clients sous forme de types complexes WSDL. Le type complexe réel se compose de

xsd:string 
xsd:int 
xsd:float 

Maintenant, depuis mon service web est en quelque sorte un adaptateur à un système existant, je ne peux pas controll quelles valeurs realy sont entassées dans ce type complexe. C'est à dire. il peut - et il - arriver que les champs définis comme xsd: float soient simplement mis à '' par l'application php.

Ce n'est pas un problème tant qu'un système basé sur php consomme le service, mais bien sûr des structures typées - comme .NET - s'étranglent lors du lancement '' pour flotter et lancer de vilaines exceptions.

Étant donné que je ne peux pas contrôler les valeurs de manière fiable dans mes types complexes, je suis à la recherche d'un autre moyen de gérer les données non valides dans mon service Web.

Quelqu'un a-t-il déjà rencontré ce problème? J'apprécierais et les pensées et les idées; Merci d'avance!

K

Répondre

2

Pourquoi ne pas utiliser la coulée de type ?

xsd:<?=(string) $string?> 
xsd:<?=(int) $int?> 
xsd:<?=(float) $float?> 

Ceci mettrait les choses exactement comme vous les voulez, ou ai-je mal interprété la question?