我的数据集是在XSD文件中定义的,我没有从代码中生成它。只有一个表使用类型为System.Boolean []的数据列,当我使用table.WriteXmlSchema()时,只有这一列给出异常。
Boolean []是一个复杂类型.Cannot序列化复杂类型的值 作为属性。
我正在使用以下网站的代码。 http://blogs.msdn.com/b/marcelolr/archive/2010/04/02/dataset-does-not-validate-xml-schema-xsd.aspx
StreamWriter writer = new StreamWriter("c:\\abc.xsd");
String test = currentDataset.GetXmlSchema(); //exception
currentDataset.WriteXmlSchema(writer);
我的目标:根据Schema验证我的XML(在我加载XML之前)。验证架构将为我提供确切的错误详细信息。
我的方法:生成XSD - >使用XSD验证XML - >如果一切顺利,那么继续 - >如果问题然后向用户显示正确的错误,以便他可以手动修复XML。
任何帮助都会有很大帮助。
答案 0 :(得分:1)
根据XSD,属性只能是简单内容。由于Boolean []是一个复杂类型,因此无法将其序列化为属性。尝试在bool []属性中使用[XmlElement]而不是[XmlAttribute]。