我在C#代码中使用的XML文件很少。
到目前为止,我一直在使用XPATH来访问XML节点/属性
问题是如果我将XML转换为类文件(XSD.EXE)并在可维护性和代码可读性方面使用它,我将获得什么样的优势。
在这两种情况下,我知道如果添加或删除某些节点,则需要更改代码
在我的情况下,DLL进入GAC。
我只是想了解你的意见
干杯, KARTHIK
答案 0 :(得分:1)
将XML转换为XSD然后转换为C#类的好处是可以轻松获取另一个文件。您的代码将类似于:
XmlSerializer ser = new XmlSerializer(typeof(MyClass));
FileStream fstm = new FileStream(@"C:\mysample.xml", FileMode.Open, FileAccess.Read);
MyClass result = ser.Deserialize(fstm) as MyClass;
if(result != null)
{
// do whatever you want with your new class instance!
}
使用这几行,您现在拥有一个对象,它正好代表您的XML所包含的内容,并且您可以在对象实例上访问其属性作为属性 - 比在XML中执行大量复杂的XPath查询要容易得多
此外,由于您现在拥有XSD,您还可以轻松验证传入的XML文件,以确保它们确实与定义的合同相对应 - 这会导致更少的不断错误检查你的代码(你不必在每个XPath之后检查是否有任何实际匹配该表达式的节点等。)。