我有一个方案来验证来自传入的xml文件的日期,该文件将effectiveTime作为元素,该元素的格式可以是其中之一,如下所示
1)
<effectiveTime value="YYYYMMDD"/>
或
2)
<effectiveTime>
<low value="YYYYMMDD"/>
<high value="YYYYMMDD"/>
</effectiveTime>
如果传入文件的格式指定为第1点(如上所述),那么我需要验证@value
是否在YYYYMMDD中,如果它是其他格式(第二个),我需要验证低@value
日期小于或等于高@value
或不高。
我在传入的XML文件中的几个地方有这个元素(<effectiveTime>
),我想写一个xsl:function,它可以验证这个场景,我想发送节点(这里是effectiveTime)作为xsl:function的参数。
<xsl:function name="util:validateEffectiveTime" as="xs:boolean">
<!-- I would like to know xml schema data type for the param -->
<xsl:param name="effectiveTimeP" as="****"/>
</xsl:function>
我可以继续创建任何xsl:function(util:validateEffectiveTime),接受节点作为xsl:function的参数,还让我知道我需要分配给param(effectiveTimeP)的xml架构数据类型吗? / p>
谢谢!
答案 0 :(得分:0)
如果要将<effectiveTime>
元素本身传递给函数,则函数将始终在effectiveTimeP
参数中接收元素。虽然如果有疑问,参数类型是可选的,所以你可以完全不用它们。
对于日期验证,我可能会把它放在它自己的函数中(因为它有必要在三个不同的地方,因为有三个位置可能会出现日期)。但在第二种情况下,由于日期是最重要的 - 部分 - 第一顺序(年,月,日),您可以通过简单的数字比较确保一个在另一个之前。