XSD: Using Visual studio xsd.exe not generating Array[] instead of Listlt;gt;(XSD:使用 Visual Studio xsd.exe 不生成 Array[] 而不是 Listlt;gt;)
问题描述
我正在使用 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 效果更好.您还可以通过设置 CollectionObjectType 属性来指定您希望您的集合如何成为一个选项.列表或数组.
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.
这篇关于XSD:使用 Visual Studio xsd.exe 不生成 Array[] 而不是 List<>的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:XSD:使用 Visual Studio xsd.exe 不生成 Array[] 而不是
基础教程推荐
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 如何激活MC67中的红灯 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01