Je suis un total de noob quand il s'agit de messages XML et SOAP. ... Voici le message SOAP.Soap - L'élément n'a pas xsi: nil en tant que propriété, mais la désérialisation ne rend pas l'objet non nul.
<?xml version="1.0" encoding="utf-8" ?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<CR>
<Username xmlns="<Hidden>">mtas</Username>
<Password xmlns="<Hidden>">password</Password>
<id xmlns="<Hidden>">
70dad12b-bb50-402d-8b34-
fe2d4c0c283d
</id>
<Data xmlns="<Hidden>">
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="<Hidden>">
<CS>
<CSCallbackRequest xmlns="">
<CDS xsi:nil="true" xmlns="<Hidden>"/>
<CDRP xmlns="<Hidden>"/>
<UDI xsi:nil="true"
xmlns="<Hidden>"/>
</CSCallbackRequest>
</CS>
<Fault xsi:nil="true" />
<Comment xsi:nil="true"/>
</Data>
</Data>
</CR>
</s:Body>
</s:Envelope>
Nous avons généré les classes avec l'outil xsd.exe qui nous a donné des classes à désérialiser. Ce fichier .xsd a été fourni par la société à partir de laquelle nous recevons les messages SOAP.
Voici le problème. Lorsque nous recevons ce type de réponse de la part de l'entreprise, nous examinons CSCallbackRequest pour les trois éléments suivants: CDS, CDRP et UDI. Nous essayons de déterminer quel type de rappel nous recevons. Ma supposition initiale était quand nous utilisons un XMLSerializer avec le type (Generated Class Type), l'élément dans CSCallbackRequest qui n'a pas le xsi: nil = true permettrait à l'objet dans l'objet Generated Class Type ne serait pas nul. Mais ce n'est pas le cas. Comment puis-je vérifier si une propriété n'a pas la propriété xsi: nil après la désérialisation?
Dans le schéma, comment les éléments CSCallbackRequest et CDS/CDRP/UDI sont-ils définis? – superfell