XSD для классов Delphi без привязки XML
Возможно, это было задано раньше, но я не нашел его в отношении Delphi - я использовал XSD.exe в Visual Studio, который делает именно это: преобразует XSD в 'plain vanilla' классы, представляющие объекты, указанные в XSD, - не связанные с XML-документами-классами для создания структур в XSD, а не доступа к данным, которые соответствуют структуре, изложенной в XSD.
Я ищу утилиту или продукт, который будет делать это (это не стоит больших денег...): Пример: у меня есть такая схема:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="TDelphiClass">
<xs:complexType>
<xs:sequence>
<xs:element ref="ID"/>
<xs:element ref="ConnectionString"/>
<xs:element ref="Group"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ID" type="xs:integer"/>
<xs:element name="ConnectionString" type="xs:string"/>
<xs:element name="Group"type="xs:double"/>
</xs:schema>
Я хочу создать модуль/класс Delphi, который выглядит так:
unit uDelphiClass;
interface
uses
Classes, SysUtils;
type
TDelphiClass = class(TObject)
fID: Integer;
fConnectionString: string;
fGroup: Double;
end;
implementation
end.
Ответы
Ответ 1
Чтение между строками (используйте меньше аббревиатур, например VS имеет несколько значений, даже при вычислении), и вы, вероятно, использовали инструмент XSD.EXE в Visual Studio или .NET SDK для генерации исходного кода на языке С# или VB.NET.
Если у вас Delphi Prism, вы можете использовать XSD.EXE для генерировать исходный код Delphi Prism.
Язык Delphi Prism очень близок к родному языку Delphi, так что это даст вам начало.
Это также должно работать с пробником Delphi Prism.
BTW: Почему вы не хотите использовать собственный код Delphi, сгенерированный XML Data Binding Wizard автономным способом? Он основан на интерфейсе, но довольно быстро и работает очень хорошо.
Ответ 2
http://sourceforge.net/projects/xxsd2code/ генерирует С++, С#, С++/CLI и Java - и похоже, что включенные классы LanguageWriter не слишком сложны расширить их для Delphi. Java LanguageWriter, например, имеет менее 400 строк. Если есть интерес к сообществу Delphi, это может быть реализовано и внесено в короткий промежуток времени...