下面是一个XSD文件。我想知道是否有办法让另一个元素“PreviousYear”是“CurrentYear - 1”

时间:2013-07-02 01:01:02

标签: xsd

这是一个XSD文件,我想添加一个元素PreviousYear,它是CurrentYear-1
                                                                      

<xsd:complexType name="ConstantsType">
<xsd:sequence>
    <xsd:element name="CurrentYear" type="xsd:string" fixed="2013" />
</xsd:sequence>
</xsd:complexType>

1 个答案:

答案 0 :(得分:1)

鉴于您使用字符串文字修正了2013年的CurrentYear值,似乎没有任何理由不定义

<xsd:element name="PreviousYear" type="xsd:string" fixed="2012"/>

当您更改一个时,您需要更改它们。

然而,这并不是一个特别方便的设计:1月1日,除非您修改架构中的固定值,否则名称CurrentYear将会产生误导;如果您修改了固定值,则包含CurrentYear元素的所有现有有效文档将变为无效。 (另外,当它显然意图具有xsd:gYear的含义时,将类型CurrentYear键入为xsd:string似乎有悖常理。)

当然,你可能需要定义一些这样的基本信息,以便用于这种或那种程序;在这种情况下,一个说今年是2013年的元素可能有意义。我对这个想法唯一的问题是我无法想到这样的信息可能有用而不涉及编程语言的任何情况,我想不出任何编程语言本来就没有获得更好的方法来找出它在运行时的年份。