xsd.exe只生成一个类文件

时间:2015-06-05 09:26:04

标签: c# xml xsd

我使用Microsoft SDK中的NetFX 4.5.1工具命令:

xsd schema.xsd /c

它只生成一个具有所有结构(schema.cs)的类。但是我需要在schema.xsd中描述的结构类。例如:Application.cs,Applicant.cs等,就像我在Eclipse中生成JAXB类之后的那样。

以下是schema.xsd代码的一部分:

    <?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2011 rel. 2 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.0.0">
    <!-- Application -->
    <xs:element name="Application">
        <xs:annotation>
            <xs:documentation>Заявка</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="DecisionResponse" minOccurs="0"/>
                <xs:element ref="CreditRequest" minOccurs="0"/>
                <xs:element ref="Applicant"/>
                <xs:element ref="Routing"/>
            </xs:sequence>
            <xs:attribute ref="applicationDate" use="optional"/>
            <xs:attribute ref="timestamp" use="optional"/>
            <xs:attribute name="applicationId" type="xs:int" use="optional">
                <xs:annotation>
                    <xs:documentation>ID заявки</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="applicationDecision" type="xs:string" use="optional">
                <xs:annotation>
                    <xs:documentation>Итоговое решение по заявке</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <!-- DecisionResponse -->
    <xs:element name="DecisionResponse">
        <xs:annotation>
            <xs:documentation>Решения по заявке</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Product" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

3 个答案:

答案 0 :(得分:1)

您最好和最简单的选择是使用WSCF蓝色,它是Visual Studio的加载项 只需选择你的XSD文件/ WSDL集并生成类,然后你可以选择多个/单个文件,然后你就可以了

enter image description here

答案 1 :(得分:0)

我不认为xsd.exe有这个选择。

根据我对xsd.exe的使用经验,它是一个很棒的工具,可以帮助您前进,但不应该像T4模板一样使用(例如EF的.tt文件),但只能运行一次。

我发现有一堆Attribute已生成,您不需要这些课程。

所以恕我直言,这是最好的简单:

  • 筛选生成的schema.cs文件
  • 将创建的子类(例如应用程序)手动移动到新文件中
  • 删除不需要的Attribute s
  • 最后,对这些类进行格式化和重命名,以使它们可以为自己维护(以及其他任何需要处理它的人)

这显然可能适用于小型或中型架构。

答案 2 :(得分:0)

即可。 xsd.exe没有从一个xsd文件生成多个类的选项。

您可以尝试以编程方式执行此操作(请参阅Mike Hadlow中的此示例)