我正在使用Delphi 2009更新2。 Borland WSDLIMP版本2.3 - $ Rev:16699 $
为什么标识符rápido显示为r_pido?
角色去哪了?
这是WSDLIMP错误还是MS XML错误?
感谢回复
File.XSD
<?xml version="1.0" encoding="UTF-8"?>
....
....
....
<xs:simpleType name="displayName">
<xs:restriction base="st">
<xs:enumeration value="rápido"/> //-----> attention !!!
<xs:enumeration value="lento"/>
....
....
....
命令提示符 - &gt;
wsdlimp -Oe- -Ow+ -P -= "c:\myWsdlFile.wsdl"=myService.pas
myService.pas
.....
.....
unit myService.pas;
interface
uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;
......
.....
displayName = (
r_pido, //---> attention!!! á Where did it go?
lento);
答案 0 :(得分:1)
我看到你几个星期前问过这个问题in the Embarcadero forums。
我怀疑WSDLImp实用程序尚未针对Delphi 2009的Unicode支持进行更新。相反,它继续生成早期版本生成的相同Delphi源文件,从而确保任何Delphi版本都可以使用生成的源文件。该实用程序尚未收到重大更新的一个线索是它仍然将自己列为Borland产品而不是CodeGear或Embarcadero。仅仅因为它被重新编译并且具有不同的版本号(2.2对2.3)并不意味着它与生成Unicode源文件所需的编译器和IDE进行相同的大修。
要检查的一件事是您的文件确实编码为UTF-8。文字á
字符在UTF-8中被编码为两个字节,因此它不一定在编辑器中显示为该字符。确保该文件具有该字符应为的字节C3 A1。如果没有,那么您可能只是看到WSDLImp如何处理输入文件中的无效字节。
答案 1 :(得分:0)
不完全确定你的意思,但我怀疑在rápido中的á。尝试使用“a”作为rapido。
答案 2 :(得分:0)
rápido是delphi 2009的正确标识符(delphi 2009完全支持unicode)
答案 3 :(得分:0)
我怀疑WSDLImp实用程序没有 蜜蜂更新为Delphi 2009的Unicode 支撑
c:\ Program files \ codegear \ rad studio \ 6.0 \ source \ win32 \ soap \ wsdlimporter \ WSDLImp.dpr再次使用delphi 2009编译。
用记事本打开要检查的一件事是你的文件 真的被编码为UTF-8
file.xsd。另存为 - &gt;编码 - &gt; UTF8 - &gt;保存