我有以下类:
[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)