У меня есть следующий класс:Использования Xsd.exe для создания не-nillable поля с 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; }
}
Я использую Xsd.exe от Microsoft для создания XML-схемы из класса. Свойство «ACCOUNTNUMBER» генерируется в XSD следующим образом:
<xs:element minOccurs="1" maxOccurs="1" name="AccountNumber" type="xs:string" />
Я рад, что требуется этот элемент, но я не хочу принять пустое (nillable) значение.
Я знаю, что простой вариант, чтобы вручную обновить XSD включать:
nillable="false"
Но я хочу, чтобы быть в состоянии сделать это программно, так что инструмент XSD.exe будет генерировать это. Есть ли у кого-нибудь предложения? Я читал в другом месте, что это ограничение .NET, но мне интересно, есть ли у кого-нибудь идеи.
Заранее спасибо
Что произойдет, если вы установите 'IsNullable' ложь? – cjk
Настройка IsNullable на false приводит к изменению minOccurs на 0. – Lee
Ваш класс не соответствует выходу xsd, вы должны изменить атрибут вашего класса на '[XmlElement (IsNullable = false)]' –