C# 序列化XSD文件中的布尔数组列

C# 序列化XSD文件中的布尔数组列,c#,xml,xsd,xsd-validation,xml-validation,C#,Xml,Xsd,Xsd Validation,Xml Validation,我的数据集是在XSD文件中定义的,我不是从代码生成它。只有1个表正在使用System.Boolean[]类型的数据列,并且只有此列在我使用table.WriteXmlSchema()时出现异常 布尔[]是复杂类型。无法序列化复杂类型的值 作为属性 我正在使用以下网站的代码。 我的目标是:根据模式验证我的XML(在加载XML本身之前)。验证架构将为我提供准确的错误详细信息 我的方法是:生成XSD->使用XSD验证XML->如果一切正常,那么继续->如果出现问题,然后向用户显示正确的错误,以便用户

我的数据集是在XSD文件中定义的,我不是从代码生成它。只有1个表正在使用System.Boolean[]类型的数据列,并且只有此列在我使用table.WriteXmlSchema()时出现异常

布尔[]是复杂类型。无法序列化复杂类型的值 作为属性

我正在使用以下网站的代码。

我的目标是:根据模式验证我的XML(在加载XML本身之前)。验证架构将为我提供准确的错误详细信息

我的方法是:生成XSD->使用XSD验证XML->如果一切正常,那么继续->如果出现问题,然后向用户显示正确的错误,以便用户可以手动修复XML


任何帮助都将非常感谢。

根据XSD,属性只能是一个简单的内容。由于Boolean[]是复杂类型,因此无法将其序列化为属性。尝试在bool[]属性上使用[XmlElement]而不是[XmlAttribute]。

是否使用
Boolean
bool
作为类型?如果您使用的是
Boolean
,请尝试切换
bool
。我必须看看如何设置数据源和xsd,使其更有帮助。虽然
boolean
是可序列化的。我正在使用bool[](boolean数组),而boolean数组导致了这个问题。我相信下面的答案看起来是最正确的。您不可能真正拥有一个没有附加XmlElement属性的复杂类型。也许试试吧?请参阅:我实际上签入了代码。该列已包含XMLElement:(.但我将在周四访问办公室,并再次检查,然后会让您知道。您好,很抱歉延迟响应。布尔[]设置为XMLElement。我尝试了很多次,但尚未找到答案。
StreamWriter writer = new StreamWriter("c:\\abc.xsd");
String test = currentDataset.GetXmlSchema(); //exception
currentDataset.WriteXmlSchema(writer);