2012-10-09 1 views
0

J'utilise un service de référence à un service Web Java retour XML comme ceci:Service de référence avec les valeurs des éléments

<m_score value="3"><Explanation value="20.51">Class Count</Explanation> 
    <Explanation value="-15.03">NCCI Governing Industry Group</Explanation> 
    <Explanation value="-9.74">Combined Weighted Average Hazard Score</Explanation> 
    <Explanation value="4.9">Policy Weighted Average Loss Cost Relative to Governing Class Loss Cost</Explanation> 
    <Explanation value="-2.96">Governing Class Loss Cost</Explanation> 
</m_score> 

Le problème est que lorsque je produis le proxy et les objets de requête/réponse, les données dans les éléments Explanation n'est pas représenté dans les objets. Il n'y a que des propriétés pour les attributs dans chacun des éléments.

Y a-t-il un moyen de renvoyer le nom de l'explication? Par exemple, 'NCCI Governing Industry Group', etc ...

Merci!

Edition - parties pertinentes de WSDL:

<complexType name="ExplanationType"> 
    <attribute name="value" use="required"/> 
</complexType> 
<complexType name="m_scoreInsuredResponseType"> 
    <sequence> 
     <element maxOccurs="unbounded" minOccurs="0" name="Explanation" type="response:ExplanationType"/> 
    </sequence> 
    <attribute name="value" use="required"/> 
</complexType> 
+0

Êtes-vous désireux d'avoir une liste par exemple ..? Peut-être que l'utilisation d'un dictionnaire ou HashTable peut être ce que vous cherchez à utiliser pour les débutants .. – MethodMan

+0

Dans la réponse, je reçois un m_score contenant une explication []. Le problème est que les objets Explanation ont juste la valeur, et pas le nom. –

+0

pouvez-vous partager à quoi ressemble le service Web ou le code C# que vous utilisez pour appeler l'appel webService ..? – MethodMan

Répondre

0

Il a été un moment que je regardais, mais je pense que le manque de soutien approprié pour le schéma comme celui-ci était un bug connu. Vous peut être en mesure de contourner ce en mettant en place votre propre classe Explication avec le XmlTextAttribute (puis changer le proxy pour l'utiliser), par exemple quelque chose de similaire à:

public class Explication { [XmlAttribute] public string valeur; [XmlText] chaîne publique theExplanation; }

(Vous devrez peut-être modifier ci-dessus pour tenir compte des espaces de noms, peut-être ajouter [XmlRoot], etc. Voir http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmltextattribute.aspx pour quelques informations.)

Questions connexes