如何正确使用XSD持续时间?

时间:2013-02-17 20:38:38

标签: xml xsd

我正在尝试在XML中存储一个时间间隔,该时间间隔由我的XSD定义为我的XSD文件中的持续时间。我不知道如何使用它,以下是我正在尝试的内容:

<duration>PT5H30M</duration>

这相当于5小时30分钟。我在想当XSLT文件将XML转换为HTML时,它会将持续时间转换为时间格式吗?

是否应该像这样使用?:

<duration duration="PT5H30M"></duration>

这是我在XSLT文件中获取持续时间的地方:

<tr>
<td><xsl:attribute name="class">lside</xsl:attribute>Duration</td>
<td colspan="2"><xsl:attribute name="class">rside</xsl:attribute><xsl:value-of select="/flights/flight/route[routename/. = $code]/duration"/></td>
</tr>

任何建议都值得赞赏,XSD文档根本没有帮助我。

2 个答案:

答案 0 :(得分:1)

好吧,如果您使用XSLT 2.0,您可以轻松地将持续时间转换为如下所示的时间:

<xsl:template match="duration">
  <xsl:value-of select="xs:dayTimeDuration(@duration) + xs:time('00:00:00')"/>
</xsl:template>

但是XSLT处理器不会这样做,除非它是样式表请求的内容。

答案 1 :(得分:1)

如果没有看到您的架构,我不知道

是否(或两者兼而有之)
<duration>PT5H30M</duration>

<duration duration="PT5H30M"></duration>

是有效的实例,但前者似乎更有可能。

但是,我根据第二种形式提供了答案,我认为这个问题在我回答的时候看起来很像 - 后来经过编辑。