没有XML绑定的XSD到Delphi类

没有XML绑定的XSD到Delphi类,xml,delphi,xsd,code-generation,Xml,Delphi,Xsd,Code Generation,也许以前有人问过这个问题,但我在Delphi中没有找到它-我在Visual Studio中使用了一个XSD.exe,它正好做到了这一点:将XSD转换为表示XSD中指定的实体的类(不绑定到XML文档),用于在XSD中创建结构,不访问符合XSD中概述的结构的数据 我正在寻找一个实用工具或产品,可以做到这一点(不需要花很多钱…):例如,我有一个这样的模式: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http

也许以前有人问过这个问题,但我在Delphi中没有找到它-我在Visual Studio中使用了一个XSD.exe,它正好做到了这一点:将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>
unit uDelphiClass;

interface

uses
  Classes, SysUtils;

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

implementation

end.
在字里行间阅读(例如,即使在计算中,也请少用缩写),您可能使用Visual Studio或.NET SDK中的工具以C#或VB.NET语言生成源代码

如果你有,你可以

Delphi Prism语言与Delphi本机语言非常接近,因此这将给您一个良好的开端

这也适用于Delphi Prism试用版


顺便问一下:为什么您不想以独立的方式使用由生成的Delphi本机代码?它是基于接口的,但是速度很快,而且很好。

< P>生成C++、C++、C++、CLI和java,看起来包含的“LanguageWriter”类不太复杂,不能扩展到Delphi。例如,该示例的行数少于400行。如果对Delphi社区感兴趣,这可以在短时间内实施和贡献…

欢迎使用SO。编辑帖子时,请不要删除代码格式。阅读有关代码格式的常见问题解答(在编辑过程中可见):它有助于每个人都清楚地了解您的意思。对于格式设置等,我很抱歉-我通常要到深夜才开始这样做。。。是的,它是XSD.exe,带有几个参数来获得这个结果。至于delphi数据绑定向导,如果它是一个类似于我的示例的模式,这不会是一个问题,但是对于一个大型复杂的模式,需要进行大量的工作来重新调整,特别是因为数据绑定向导假设您正在使用xml文档持久化数据,并且当您想要“普通”的delphi类时,您需要为此设置字段和属性getter/setter。将调查棱镜工具。Tnx-MNG@Mikey:请注意,大型复杂模式通常无法以自动方式映射到“普通”编程语言。我使用MS工具取得了巨大成功,即使在具有嵌套类、枚举、众多限制等的相当复杂的模式上也是如此。诀窍是知道如何编写正确的XSD(不,不是那么容易…)这样发电机就能做你想做的事了。@Mikey:真的!太糟糕了,我通常使用外部XSD:)让我们希望JSON继续使用。。。太好了!我去看看。但我想知道为什么从来没有人对此感兴趣。我主要编写中间件和服务器端代码,这些代码通常必须与Java和C#clients接口——确保每个人都能与您交谈的最佳方法是从一开始就使用XSD定义您的类。