2012-09-19 94 views
0

我正在使用现有的Xsd模式验证Xml文件。如果验证失败,是否可以用xsd文件更新Xml?使用Xsd验证Xml并更新Xml

+0

您可以通过定制的XSLT该份有效节点,修复了错误的数据传递,排除了未知节点,并添加缺少的节点。或者你的意思是完全一般地这样做,对于任何XSD? – StuartLC

+0

嗨,背后的故事是,我有本地存储的Xml配置文件。当我想更新我的配置文件时,我只需要更改我项目中的Xsd文件并发布它。在程序启动时,我的代码使用新的Xsd文件验证xml文件,如果出现错误,xml文件将被更新。或者有更好的解决方案吗? – Rawukal

回答

1

错误后,您可以执行该代码

var schemaSet = new XmlSchemaSet(); 
schemaSet.Add(null, "schema1.xsd"); 
// add further schemas as needed 
schemaSet.Compile(); 

var xmlSampleGenerator= new XmlSampleGenerator(schemaSet, new XmlQualifiedName("Test")); 

var doc = new XmlDocument(); 
using (XmlWriter writer = doc.CreateNavigator().AppendChild()) 
{ 
    xmlSampleGenerator.WriteXml(writer); 
} 

链接:http://msdn.microsoft.com/en-us/library/aa302296.aspx

+0

所以这里唯一的方法是从xsd创建一个新的xml文件?用一些已保存的值编辑旧的是不可能的? – Rawukal

+0

是的,你可以是可能的,但你必须按行比较文件行,我建议你保存文件的新版本的日志信息 –

+0

好的,谢谢你的帮助。 – Rawukal