从请求中删除 i:nill="true"
Remove i:nill="true" from a request
我正在构建一个使用国土安全部提供的 eVerify Web 服务的 WCF 客户端。该服务发布 WSDL 和模式。该模式指定元素可以为空。例如
<xs:element minOccurs="1" name="FirstName" nillable="true" type="xs:string" />
不幸的是,DHS 支持人员告诉我,该服务无法处理遵循此模式的请求中的传入元素。具体来说,我被要求从元素中删除 i:nil="true",例如下面的示例
<FirstName i:nil="true"/>
理想情况下,国土安全部希望看到
<FirstName><FirstName>
有没有办法让我使用 Visual Studio 2013 在 运行 的工厂 WCF 客户端中完成此操作?
最快的方法可能是下载 WSDL 和 XSD,在本地编辑它们,然后在修补版本上生成代理 类。您可以使用 svcutil
:
svcutil /t:metadata URL
(How to: Use Svcutil.exe to Download Metadata Documents)
svcutil YourWsdlFile.wsdl *.xsd
请注意,在本地文件上使用 svcutil
时,不会解析 WSDL 中的 <import>
声明;这就是您还需要在命令行上指定所有 XSD 的原因。但是,为了方便起见,您可以使用通配符。
我正在构建一个使用国土安全部提供的 eVerify Web 服务的 WCF 客户端。该服务发布 WSDL 和模式。该模式指定元素可以为空。例如
<xs:element minOccurs="1" name="FirstName" nillable="true" type="xs:string" />
不幸的是,DHS 支持人员告诉我,该服务无法处理遵循此模式的请求中的传入元素。具体来说,我被要求从元素中删除 i:nil="true",例如下面的示例
<FirstName i:nil="true"/>
理想情况下,国土安全部希望看到
<FirstName><FirstName>
有没有办法让我使用 Visual Studio 2013 在 运行 的工厂 WCF 客户端中完成此操作?
最快的方法可能是下载 WSDL 和 XSD,在本地编辑它们,然后在修补版本上生成代理 类。您可以使用 svcutil
:
svcutil /t:metadata URL
(How to: Use Svcutil.exe to Download Metadata Documents)svcutil YourWsdlFile.wsdl *.xsd
请注意,在本地文件上使用svcutil
时,不会解析 WSDL 中的<import>
声明;这就是您还需要在命令行上指定所有 XSD 的原因。但是,为了方便起见,您可以使用通配符。