Классы XSD в Delphi без привязки XML - PullRequest
13 голосов
/ 02 мая 2011

Возможно, об этом уже спрашивали, но я не нашел его по отношению к Delphi - я использовал XSD.exe в Visual Studio, которая делает именно это: преобразует XSD в «обычный ваниль» классы, представляющие объекты, указанные в 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>

Iхотите создать модуль / класс Delphi, который выглядит следующим образом:

unit uDelphiClass;

interface

uses
  Classes, SysUtils;

type
  TDelphiClass = class(TObject)
    fID: Integer;
    fConnectionString: string;
    fGroup: Double;
  end;

implementation

end.

Ответы [ 2 ]

6 голосов
/ 02 мая 2011

Чтение между строк (пожалуйста, используйте меньше сокращений, например, VS имеет несколько значений , даже в вычислениях), и вы, вероятно, использовали инструмент XSD.EXE в Visual Studio или .NET SDK для генерации исходного кода на языке C # или VB.NET.

Если у вас Delphi Prism , вы можете использовать XSD.EXE для генерации исходного кода Delphi Prism .

Язык Delphi Prism очень близок к родному языку Delphi, так что это даст вам толчок для начала.

Это должно работать и с испытанием Delphi Prism.

Кстати: почему вы не хотите использовать собственный код Delphi, сгенерированный Мастером привязки данных XML , в автономном режиме? Он основан на интерфейсе, но довольно быстр и работает очень хорошо.

4 голосов
/ 02 мая 2011

http://sourceforge.net/projects/xxsd2code/ генерирует C ++, C #, C ++ / CLI и Java - и похоже, что включенные классы LanguageWriter не слишком сложны, чтобы расширить их для Delphi. Например, Java LanguageWriter содержит менее 400 строк. Если есть интерес к сообществу Delphi, это можно реализовать и внести в короткие сроки ...

...