【问题标题】:XSD .Net nillable attributeXSD .Net 可空属性
【发布时间】:2015-02-24 13:37:31
【问题描述】:

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="true" 的元素。

即之间

<Body></Body> 

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

谢谢

【问题讨论】:

    标签: .net xsd.exe


    【解决方案1】:

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

    使用一种特殊的模式来创建一个由 XmlSerializer 识别的布尔字段,并将 XmlIgnoreAttribute 应用于该字段。该模式以 propertyNameSpecified 的形式创建。例如,如果有一个名为“MyFirstName”的字段,您还将创建一个名为“MyFirstNameSpecified”的字段,指示 XmlSerializer 是否生成名为“MyFirstName”的 XML 元素

    查看示例:https://dotnetfiddle.net/lEGeGv

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-30
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多