Импортер веб-сервисов Delphi и проблема с символами не-Ascii - PullRequest
0 голосов
/ 02 марта 2009

Я работаю с Delphi 2009, обновление 2. Borland WSDLIMP Версия 2.3 - $ Rev: 16699 $

Почему идентификатор rapid отображается как 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"/>
....
....
....

командная строка ->

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);

Ответы [ 4 ]

1 голос
/ 02 марта 2009

Я вижу, вы задали этот вопрос несколько недель назад на форумах Embarcadero .

Я подозреваю, что утилита WSDLImp не обновлялась для поддержки Unicode в Delphi 2009. Вместо этого он продолжает генерировать те же исходные файлы Delphi, которые генерировались в более ранних версиях, таким образом гарантируя, что любая версия Delphi может использовать полученный исходный файл. Одним из признаков того, что утилита не получила значительных обновлений, является то, что она по-прежнему указывается в качестве продукта Borland вместо CodeGear или Embarcadero. Тот факт, что он был перекомпилирован и имеет другой номер версии (2.2 и 2.3), не означает, что он подвергся такой же перестройке, как компилятор и IDE, что было бы необходимо для генерации исходных файлов Unicode.

Следует проверить, что ваш файл действительно кодируется как UTF-8. Буквенный символ á кодируется как два байта в UTF-8, поэтому он не обязательно будет отображаться в редакторе в качестве этого символа. Убедитесь, что в файле есть байты C3 A1, где должен находиться этот символ. Если это не так, то вы можете просто увидеть, как WSDLImp обрабатывает недопустимые байты во входном файле.

0 голосов
/ 02 марта 2009

Я подозреваю, что утилита WSDLImp не пчела обновлена ​​для Unicode Delphi 2009 поддержка

c: \ Program Files \ codegear \ rad studio \ 6.0 \ source \ win32 \ soap \ wsdlimporter \ WSDLImp.dpr снова скомпилирован с delphi 2009.

Одна вещь, чтобы проверить, что ваш файл действительно кодируется как UTF-8

file.xsd открыть с помощью блокнота. Сохранить как -> Кодировка -> UTF8 -> Сохранить

0 голосов
/ 02 марта 2009

rápido является правильным идентификатором для delphi 2009 (полная поддержка unicode delphi 2009)

0 голосов
/ 02 марта 2009

Не совсем уверен, что вы имеете в виду, но я подозреваю, что в рапидо. Попробуйте использовать «а» как в rapido.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...