XmlSchemaType / XmlQualifiedName类有什么区别

时间:2012-04-21 13:19:37

标签: wcf

有人能告诉我 XmlSchemaType XmlQualifiedName 类之间的区别。我有点困惑何时选择哪个班级。实际上我正在为我的类使用 IXmlSerializable 接口并为此指定模式我使用 XmlSchemaProviderAttribute 并指定可以返回 XmlSchemaType 的函数或者的 XmlQualifiedName 即可。两者都工作正常,我成功生成代理。但无法找到合并的分析,哪个是在哪个条件下使用。

根据微软

XmlSchemaType类: 所有简单类型和复杂类型的基类。

XmlQualifiedName类: 表示XML限定名称。

但我无法理解这两者之间的确切区别。

1 个答案:

答案 0 :(得分:0)

在谷歌和阅读一些文章后,我终于找到了这两者之间的区别,并了解在哪里选择什么?

有3种不同类型可以实现 IXmlSerializable接口

  • 内容类型
  • 元素类型
  • 旧版数据集类型

对于内容类型,我们需要使用XmlQualifiedName类作为返回参数(在XmlSchemaProvider中指定方法名称),这将要求XSD的主根元素是复杂类型。

对于元素类型,我们需要使用XmlSchemaType类。您可以在此处指定XSD中的任何根元素。

对于Legacy DataSet类型,我们不使用XmlSchemaProvider属性。相反,它们依赖于GetSchema方法生成Schema。

我从以下MSDN链接中找到了所有这些有用的信息。必须阅读一篇文章,以便更好地理解Xml序列化在WCF中的工作原理。

Using the XmlSerializer Class