在ASP.NET窗体中编辑(通过数据绑定)XML

时间:2009-06-04 14:13:23

标签: asp.net xml

这是我的情景。 XML存储在SQL DB中。我需要允许用户编辑该XML的不同部分(无插入,只更新),如果发生了某些变化(以便我可以保存最后一个日期文件或节点被编辑),则会收到通知,然后将更新的XML保存到DB。

什么是最好的&这种情况下最快的方法?我希望将数据绑定表达式与XmlDataSource一起使用。但是,它只支持只读绑定(似乎)。

我是否可以使用内置于ASP.NET中的任何其他替代解决方案,允许数据绑定(为每个控件指定xpath)?还是我需要推出自己的解决方案?

如果推出我自己的解决方案,最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

您无需推出自己的解决方案,因为您可以轻松地让.Net框架为您完成繁重的任务。如果您正在使用数据绑定,则可以使用XSD工具从XML模式中为您生成CLR类(如果存在)。

生成类看起来像这样:

  

xsd / c / language:CS XSDSchemaFile.xsd

获得该对象后,在UI上像往常一样对该对象进行绑定。一旦准备好将这些更改传播到数据库,您就可以对对象进行XML序列化并将结果推送回数据库。

var serializer = new XmlSerializer(typeof (MyCustomType));

var stream = new MemoryStream();
var xw = new XmlTextWriter(stream, encoding);

serializer.Serialize(xw, instanceOfCustomType);

String xml = encoding.GetString(stream.ToArray());