Delphi上的XML数据绑定向导

时间:2017-05-17 13:52:37

标签: xml delphi soap

我需要创建一个Delphi Unit文件来处理XML文件,通常我使用“Delphi上的XML DATA Binding向导”和XSD文件,但在这种情况下我只有soap请求消息,如下所示:

<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ar="http://ar.gov.afip.dif.FEV1/">
 <soapenv:Header/>
 <soapenv:Body>
 <ar:FECAESolicitar>
 <ar:Auth>
 <ar:Token>string</ar:Token>
 <ar:Sign>string</ar:Sign>
 <ar:Cuit>long</ar:Cuit>
 </ar:Auth>........

有没有办法将其转换为xsd文件?

1 个答案:

答案 0 :(得分:0)

信息有限的一个非常古老的问题,但无论如何......

从提供的xml生成xsd实际上是不可行的。但是,快速谷歌搜索告诉我,xmlns:ar="http://ar.gov.afip.dif.FEV1/">的服务在https://servicios1.afip.gov.ar/wsfev1/service.asmx?WSDL处可以访问wsdl。

WSDL文件可以直接从IDE导入Delphi的WSDL Importer。 RIO实施可以完全处理与Web服务的通信。

如果由于某种原因你不想要SOAP-stuff,你可以从命令行使用(未记录/不支持的?)选项&#34; -schema&#34;来运行WSDL Importer。

C:\ home&gt; wsdlimp -schema service.wsdl Embarcadero WSDLIMP版本2.41 - $ Rev:90173 $ 版权所有(c)2010 Embarcadero Technologies,Inc。

Reading: service.wsdl
Import : service.wsdl>0
Done   : service.wsdl>0
Writing: C:\home\service.pas

这也适用于普通的xsd文件。这样只处理类型。它看起来与XML数据绑定向导生成的代码完全不同,但我更喜欢这种格式。我猜是习惯的力量。

第三,如果你真的想使用XML数据绑定向导,你可以将wsdl中标签之间的东西复制到一个新的xsd中(因为在这种情况下,模式中提供了类型,除了从它们导入它们之外)一个xsd)。您可能必须修复一些命名空间映射,但之后您可以照常导入它。