如何识别 gYear 值?

How to recognize a gYear value?

众所周知,每个 xml 数据类型都有特定的格式。 例如:

xs:gYearMonth => 2001-10 or 2001-10+02:00 or 2001-10Z ... xs:dateTime => 2001-10-26T21:32:52 or 2001-10-26T21:32:52+02:00 or 2001-10-26T19:32:52Z ...

在 xs:gYear 的情况下 => 这些是所有可能性:

2001, 2001+02:00, 2001Z, 2001+00:00, -2001, -20000

和数据类型 xs:Decimal :

123, 123.456, +1234.456, -1234.456, -.456, -456

所以有一个小交集(值 2001、123),我如何知道该值是 gYear 还是 Decimal 数据类型?

你不能。

或者至少,您不能总是仅从词汇表示中分辨出来。

因此,您无法仅凭这一点就知道 2016 是指当前年份还是 9 维立方体中 5 维立方体的数量。

您需要根据上下文或其他信息(模式注释)进行推断。