将XSD2CODE与多个模式文件一起使用

时间:2012-02-21 23:06:48

标签: .net xsd2code

我在Visual Studio 2010中使用XSD2CODE。我知道我可以右键单击架构(XSD)文件并从中生成c#类。

我想知道的是,当我有一个XML文件的两个模式文件时,如何生成C#类?

更多信息:

也许我在原始问题中没有提供足够的细节。

引用问题Why does XSD.EXE Create Two .XSD Files, and How to Use Them?,我基本上是针对XSD2CODE而不是XSD提出同样的问题。

使用XSD我会使用命令:

  

D:\>xsd response.xsd response_app1.xsd /classes

如何在VS 2010 GUI和/或命令行中使用XSD2CODE执行此操作?

1 个答案:

答案 0 :(得分:3)

编辑:
为了回答更新的问题,那么Xsd2Code似乎不是一次只能处理多个.xsd文件。

我从以下地方收集:

  1. 命令行语法
    Xsd2Code.exe <XSD File> [Namespace] [Output file name] [Options]
  2. 快速浏览源代码(从http://xsd2code.codeplex.com/SourceControl/list/changesets下载版本88331并查看Trunk\Xsd2Code.Console\EntryPoint.cs
  3. Pascal Cabanel似乎在Xsd2Code的CodePlex网站上非常活跃。考虑与他联系以获得明确的答案: http://www.codeplex.com/site/users/view/pcabanel

    • 我会离开我的上一个。回答如下

    为了自动创建支持的xsd2Code类文件,您可以单击解决方案资源管理器中的.xsd文件,然后在“属性”窗口中,将 Xsd2CodeCustomTool 写入/粘贴到“自定义工具”属性中。

    为了从另一个.xsd文件中“查看”数据类型,您可以使用include语句。

    这是一个包含数据定义的Person.xsd和Employees.xsd include - 使用Person.xsd并使用Person数据类型的示例。

    • 请注意,由于Employees.xsd已包含Person.xsd,因此您只需为Employees.xsd生成Xsd2Code。

    <强> Person.xsd

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
               targetNamespace="CommonNamespace"
               xmlns="CommonNamespace"
        >   
        <xs:complexType name="Person">
            <xs:sequence>
                <xs:element name="Name" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:schema>
    

    <强> Employees.xsd

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
               targetNamespace="CommonNamespace"
               xmlns="CommonNamespace"
        >
        <xs:include schemaLocation="Person.xsd"/>
    
        <xs:element name="Employees">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Employee" type="Person" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    
    </xs:schema>