C# 向XElement添加xsl:nil

C# 向XElement添加xsl:nil,c#,xml,null,xelement,C#,Xml,Null,Xelement,这真的让我发火了。我试着用它在网上搜索,但人们似乎只想使用XML文件,而不想构建它们:S。我正在构建一个XML文件,它需要与引用的.xsd兼容http://www.w3.org/2001/XMLSchema名称空间 XSD中的一个元素是datetime,不幸的是,它可能有值,也可能没有值。 据我所知,实现这一点的正确方法是使用nil属性,但无论我做什么,验证都会对我抱怨,说 “”不是类型“date”的有效值 我试过: elementName.SetAttributeValue(xmlNamesp

这真的让我发火了。我试着用它在网上搜索,但人们似乎只想使用XML文件,而不想构建它们:S。我正在构建一个XML文件,它需要与引用
的.xsd兼容http://www.w3.org/2001/XMLSchema
名称空间

XSD中的一个元素是datetime,不幸的是,它可能有值,也可能没有值。 据我所知,实现这一点的正确方法是使用
nil
属性,但无论我做什么,验证都会对我抱怨,说

“”不是类型“date”的有效值

我试过:

elementName.SetAttributeValue(xmlNamespace + "nil", "true"); //(xmlNamespace = pre-declared NS)

除了我能想到的其他东西,我就是无法让它得到验证。 不幸的是,我也不能忽略它,因为元素在XSD中也没有
minOccurs=0


有什么想法吗?

谢谢编辑dymanoid,我永远无法让代码格式正常工作。上周我与同一问题斗争了好几个小时。然后我发现我不需要名称空间。命名空间已在父级中设置。当我没有在子元素中使用名称空间时,我自动得到了没有名称空间的子元素。元素的XSD是什么?它是否有
nillable=“true”
?hi Canton-也许我完全误解了这一点,但名称空间不允许日期为nil吗?@Adamski343当且仅当XSD有
nillable=“true”
IIRC。如果您使用
xsi:nil=“true”
并且您的XSD没有
nillable=“true”
,那么验证将失败
elementName.SetAttributeValue("nil", "true");