使用XSD.EXE生成具有Minoccurs = 1的不可用的字段,以进行参考类型



我有以下类:

[Serializable]
[XmlType(TypeName = "CoreAccount")]
public abstract class Account
{
    [XmlElement(IsNullable = true)]
    public string AccountNumber { get; set; }
    public decimal Balance { get; set; }
    public DateTime OpenDate { get; set; }
}

我正在使用Microsoft的XSD.EXE生成类XML模式。XSD中正在生成" AccountNumber"属性,如下所示:

<xs:element minOccurs="1" maxOccurs="1" name="AccountNumber" type="xs:string" />

我很高兴此元素是必需的,但我不是想要接受一个空的(可nillable)值。

我知道,简单的选择是手动更新XSD以包括:

nillable="false"

,但我希望能够以编程方式执行此操作,以便XSD.EXE工具会生成此功能。有人有任何建议吗?我在其他地方读到这是.net的限制,但想知道其他人是否有任何想法。

预先感谢

给定类

[Serializable]
[XmlType(TypeName = "CoreAccount")]
public abstract class Account
{
    [XmlElement(IsNullable = false)]
    public string AccountNumber { get; set; }
    public decimal Balance { get; set; }
    public DateTime OpenDate { get; set; }
}

将始终产生带有以下元素的XSD

<xs:element minOccurs="1" maxOccurs="1" name="AccountNumber" type="xs:string" />

这是因为nillable属性的默认值是false参见-http://www.w3schools.com/xml/el_element.asp

可尼尔 选修的。指定是否可以将明确的空值分配给元素。True使该元素的实例将NULL属性设置为true。NULL属性定义为实例XML模式名称空间的一部分。默认为false

通过查看XSD.exe的文档,没有一种明确生成XSD(https://msdn.microsoft.com/en-us/library/x6c1kb0s(v = vs.110).110 .aspx)

最新更新