对于XML和SOAP消息,我是一个总的noob。 ...这是SOAP消息。肥皂 - 元素没有xsi:nil作为属性,但反序列化不会使对象不为空
<?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>
我们生成与xsd.exe工具给了我们班反序列化的类。这个.xsd文件是由我们接收SOAP消息的公司提供的。
这是问题。当我们从公司获得这种类型的响应时,我们正在查看CSCallbackRequest中的CDS,CDRP和UDI三个元素。我们正在尝试确定我们收到的回拨类型。我最初的假设是,当我们使用类型为(生成的类类型)的XMLSerializer时,CSCallbackRequest中没有xsi:nil = true的元素将允许对象内的对象不会为空。但事实并非如此。如何在反序列化之后检查一个属性是否没有xsi:nil proprerty?
在模式中CSCallbackRequest和CDS/CDRP/UDI元素是如何定义的? – superfell 2010-09-29 03:07:48