XML 类型支持实现说明

本主题介绍要注意的一些实现详细信息。

列表映射

IListICollectionIEnumerableType[]String类型用于表示 XML 架构定义语言 (XSD) 列表类型。

联合映射

联合类型使用 XmlAtomicValueString 类型表示。 因此,源类型或目标类型必须始终为或 StringXmlAtomicValue

XmlSchemaDatatype如果对象表示列表类型,则对象将输入字符串值转换为一个或多个对象的列表。 XmlSchemaDatatype如果表示联合类型,则尝试将输入值分析为联合的成员类型。 如果尝试分析失败,将尝试使用联合的下一个成员进行转换,依此类推,直到转换成功,或没有其他成员类型可以尝试,在这种情况下将引发异常。

CLR 和 XML 数据类型之间的差异

下面介绍了 CLR 类型和 XML 数据类型之间可能发生的某些不匹配以及如何处理它们。

注释

xs 前缀映射到 https://www.w3.org/2001/XMLSchema 和命名空间 URL。

System.TimeSpan 和 xs:duration

xs:duration 类型是部分有序的,因为存在某些持续时间值,它们虽然不同但被视为等效。 这意味着,对于类型值如 1 个月(P1M),它小于 32 天(P32D),大于 27 天(P27D),且相当于 28、29 或 30 天。

TimeSpan 类不支持此部分排序。 而是选择 1 年和 1 个月的特定天数;分别 365 天和 30 天。

有关类型的详细信息 xs:duration ,请参阅 W3C XML 架构第 2 部分:数据类型建议

xs:time、公历数据类型和 System.DateTime

xs:time将值映射到DateTime对象时,该MinValue字段用于将对象的日期属性DateTime(例如YearMonthDay)初始化为最小可能DateTime的值。

同样,xs:gMonthxs:gDayxs:gYearxs:gYearMonthxs:gMonthDay的实例也映射到DateTime对象。 对象 DateTime 上的未使用属性初始化为从 MinValue中初始化的属性。

注释

当内容被键入为DateTime.Year时,不能依赖xs:gMonthDay值。 在这种情况下,该值 DateTime.Year 始终设置为 1904。

xs:anyURI 和 System.Uri

当表示相对 URI 的 xs:anyURI 实例映射到某个 Uri对象时,该 Uri 对象没有基 URI。

另请参阅