C# 如何更改xsd生成xml模式的方式?
我对使用VisualStudioXSD.exe工具从类生成xsd模式非常陌生,这里有一个示例场景,为了简单起见进行了简化 这是我的课程样本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
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格式
我没有试过,但可能值得一试。谢谢乔治。我将使用注释,看看它是如何工作的。非常感谢。