XSD:使用 Visual Studio xsd.exe 不生成 Array[] 而不是 List<&am

XSD: Using Visual studio xsd.exe not generating Array[] instead of Listlt;gt;(XSD:使用 Visual Studio xsd.exe 不生成 Array[] 而不是 Listlt;gt;)
本文介绍了XSD:使用 Visual Studio xsd.exe 不生成 Array[] 而不是 List<>的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在使用 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&lt;&gt;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Custom Error Queue Name when using EasyNetQ for RabbitMQ?(使用 EasyNetQ for RabbitMQ 时自定义错误队列名称?)
How to generate password_hash for RabbitMQ Management HTTP API(如何为 RabbitMQ 管理 HTTP API 生成密码哈希)
Rabbitmq Ack or Nack, leaving messages on the queue(Rabbitmq Ack 或 Nack,将消息留在队列中)
Setup RabbitMQ consumer in ASP.NET Core application(在 ASP.NET Core 应用程序中设置 RabbitMQ 消费者)
Specify Publish timeouts in mass transit(指定公共交通中的发布超时)
RabbitMQ asynchronous support(RabbitMQ 异步支持)