使用 XDocument 创建 XML,或使用 xsd.exe 和 XmlSerializer 从 XSD 架构创建 XML?

问题描述 投票:0回答:1

当您可以使用 XDocument 时,为什么要使用 xsd.exe 工具为 XSD 架构创建类,然后使用序列化程序创建 XML 文件。

我是否应该始终使用

XDocument
并通过嵌套
XElement
元素手动创建 XML 文档,还是有一些我没有看到的东西可以使使用 XSD 模式和
XmlSerializer
变得更好。

c# xml xsd linq-to-xml xmlserializer
1个回答
0
投票

XDocument
XmlSerializer
/
xsd.exe
对于不同类型的事物很有用。

当您处理大型 XML 文档时,您确实应该有一个 XSD 架构。这是各方就 XML 文档的结构应该是什么、它具有哪些属性/子项/数据类型等达成的协议。

如果您有 XSD,那么您不妨使用它来生成 C# 类。您可以手写

XDocument
代码,但随后您需要不断参考XSD以查看您应该访问哪些属性/子项,以及它们的数据类型是什么。如果 XSD 发生更改,您必须手动搜索
XDocument
代码以查找需要更改的内容。

如果您生成 C# 类,那么您可以访问的属性及其数据类型就位于类型系统中。如果 XSD 发生更改,您可以重新生成 C# 类,并在需要更改的地方获取编译器错误。

如果您有 XSD,您还应该验证您收到的 XML 文档是否与该 XSD 匹配,请参阅例如这个答案

但是,有时您需要使用其他人的 XML 文档,并且要么没有 XSD,要么生成的 C# 类比您需要的复杂得多。或者有时您只是做一些非常简单的事情,不值得编写 XSD。或者有时 XML 会做一些非常烦人的事情,不能很好地映射到 C# 类。在这些情况下,使用

XDocument
通常是更好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.