XSD .Net nillable属性

时间:2015-02-24 13:37:31

标签: .net xsd.exe

XSD元素定义是:

<xs:complexType name="Body">
        <xs:all>
           <xs:element name="Name" nillable="true" minOccurs="0" maxOccurs="1" />
        </xs:all>
</xs:complexType>

我使用.Net自动生成的类来访问.Net代码中的元素。无论如何要区分xml中元素的不存在和元素的存在与nillable =&#34; true&#34;。

即。之间

<Body></Body> 

<Body><Name xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/></Body>

由于

1 个答案:

答案 0 :(得分:0)

你可以(https://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx):

  

使用特殊模式创建XmlSerializer可识别的布尔字段,并将XmlIgnoreAttribute应用于该字段。该模式以propertyNameSpecified的形式创建。例如,如果有一个名为&#34; MyFirstName&#34;你还可以创建一个名为&#34; MyFirstNameSpecified&#34;的字段。指示XmlSerializer是否生成名为&#34; MyFirstName&#34;

的XML元素

请参阅以下示例:https://dotnetfiddle.net/lEGeGv