C# 如何更改xsd生成xml模式的方式?

C# 如何更改xsd生成xml模式的方式?,c#,visual-studio-2010,xsd,C#,Visual Studio 2010,Xsd,我对使用VisualStudioXSD.exe工具从类生成xsd模式非常陌生,这里有一个示例场景,为了简单起见进行了简化 这是我的课程样本 public class quality { .... public List<Application> Applications { get; set; } } public class Application { ... public int LOC { get; set; } public Int3

我对使用VisualStudioXSD.exe工具从类生成xsd模式非常陌生,这里有一个示例场景,为了简单起见进行了简化

这是我的课程样本

public class quality
{
    ....
    public List<Application> Applications { get; set; }
}

public class Application
{
    ...
    public int LOC { get; set; }
    public Int32 DebtInDollars { get; set; }
    public Int32 DebtDensity { get; set; }
    ...
}
公共类质量
{
....
公共列表应用程序{get;set;}
}
公共类应用程序
{
...
公共int LOC{get;set;}
public Int32 DebtInDollars{get;set;}
公共Int32{get;set;}
...
}
xsd生成的模式可以说是“平坦的”。。像这样

<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:complexType name="quality">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Applications" type="ArrayOfApplication" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfApplication">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Application" nillable="true" type="Application" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Application" nillable="true" type="Application" />
  <xs:complexType name="Application">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="LOC" type="xs:int" />
      <xs:element minOccurs="1" maxOccurs="1" name="DebtInDollars" type="xs:int" />
      <xs:element minOccurs="1" maxOccurs="1" name="DebtDensity" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>

我想生成的是更多的层次结构,正如我在下面的其他模式中所看到的,这对我来说更有意义

       <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:complexType name="quality">
    <xs:sequence>
      <xs:element name="Applications">
             <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs="0" maxOccurs="unbounded" name="Application">
                        <xs:complexType>
                             <xs:sequence>
                                      <xs:element minOccurs="1" maxOccurs="1" name="LOC" type="xs:int" />
                                      <xs:element minOccurs="1" maxOccurs="1" name="DebtInDollars" type="xs:int" />
                                      <xs:element minOccurs="1" maxOccurs="1" name="DebtDensity" type="xs:int" />
                            </xs:sequence>
                        </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

有没有办法做到这一点


谢谢

看看您是否可以通过如下MSDN文章中解释的属性来控制XSD的生成。我知道它是用于序列化的,但是XSD中生成的模式定义了System.XML.serialization.XMLSerializator使用的XML格式


我没有试过,但可能值得一试。

谢谢乔治。我将使用注释,看看它是如何工作的。非常感谢。