Im использует инструмент xsd.exe для генерации классов из файла xsd. Файл xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="BAXML">
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Limit" minOccurs="1" maxOccurs="10">
<xs:complexType>
<xs:sequence>
<xs:element name="LimitType">
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="3"/>
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Amount">
<xs:annotation>
<xs:documentation></xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
Вывод:
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public partial class BAXML {
private string counterpartyOrgNrField;
private BAXMLLimit[] limitField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Limit")]
public BAXMLLimit[] Limit {
get {
return this.limitField;
}
set {
this.limitField = value;
}
}}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class BAXMLLimit {
private string limitTypeField;
private int amountField;
/// <remarks/>
public string LimitType {
get {
return this.limitTypeField;
}
set {
this.limitTypeField = value;
}}
/// <remarks/>
public int Amount {
get {
return this.amountField;
}
set {
this.amountField = value;
}
}}
Вместо:
private BAXMLLimit[] limitField;
Я хотел бы, чтобы это было
List<BAXMLLimit> limitField
Есть ли способ в xsd сделать это? Или каким-то другим способом? спасибо!