本文介紹了XSD:使用 Visual Studio xsd.exe 不生成 Array[] 而不是 List<>的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
限時送ChatGPT賬號..
我正在使用 xsd.exe 工具從 xsd 文件生成類.xsd 文件:
Im using the xsd.exe tool to generate classes from a xsd file. The xsd file:
<?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 中有沒有辦法做到這一點?還是其他方式?謝謝!
Is there a way in the xsd todo this? Or some other way? Thx!
推薦答案
嘗試使用 xsd2code.這比 xsd.exe 效果更好.您還可以通過設(shè)置 CollectionObjectType 屬性來指定您希望您的集合如何成為一個選項.列表或數(shù)組.
Try using xsd2code. This works better than xsd.exe. You can also specify as an option how you want your collections to be.. List or an Array by setting the CollectionObjectType property.
這篇關(guān)于XSD:使用 Visual Studio xsd.exe 不生成 Array[] 而不是 List<>的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!
【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!