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

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

更多信息:

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

引用问题Why does XSD.EXE Create Two .XSD Files, and How to Use Them?,我基本上是向XSD2CODE而不是XSD询问相同的问题。

对于XSD,我将使用以下命令:



如何在VS 2010 GUI和/或命令行中使用XSD2CODE做到这一点?

最佳答案

编辑:要回答更新的问题,那么似乎Xsd2Code并非旨在一次处理多个.xsd文件。

我从以下收集到此信息:

  • 命令行语法Xsd2Code.exe <XSD File> [Namespace] [Output file name] [Options]
  • 快速浏览源代码(从http://xsd2code.codeplex.com/SourceControl/list/changesets下载内部版本88331,并查看Trunk\Xsd2Code.Console\EntryPoint.cs

  • Pascal Cabanel在Xsd2Code的CodePlex网站上似乎非常活跃。考虑与他联系以获得明确的答案:
    http://www.codeplex.com/site/users/view/pcabanel
  • 我将离开上一个。答案下面


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

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

    这是一个示例,其中Person.xsd包含数据定义,Employees.xsd include -ing 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>
    

    关于.net - 将XSD2CODE与多个架构文件一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9386754/

    10-12 23:23