xml – 在XSLT函数中处理空序列

我有一个XSLT函数,它检查发送的参数是否是YYYYMMDD格式.在某些情况下,我没有获得该函数的任何值,在这些条件下,SAXON抛出的误差低于此值

“An empty sequence is not allowed as the first argument of cda:isValidDate()”

有什么建议如何处理这种情况?

在XSLT中没有Null值.要表示缺失值,可以使用零长度字符串或空序列.它们不是一回事 – 空序列将从count($x)返回0,但零长度字符串是包含xs:string类型的一个序列,其字符串长度为0(count($x)= 1和字符串长度($x)= 0).

大多数标准XPath函数接受零长度字符串或空序列,但您的自定义函数可能不接受.

如果您正在选择字符序列,则可能会出现此问题.例如,如果您选择包含该节点不存在的字符串的节点的值,您将获得一个空序列 – 但如果该节点存在且值为空,您将获得空字符串.

修改选择值的方式始终为空字符串(或者包装/更改isValidDate函数以接受空序列).以下函数定义将接受空序列并将其转换为零长度字符串:

<xsl:function name="cda:isValidDate" as="xs:boolean">
  <xsl:param name="datestring" as="xs:string?"/>
  <xsl:variable name="reallyastring" select="string($datestring)"/>
  Your code
</xsl:function>

的?在xs:string? param类型允许提供一个或没有项目.字符串(…)函数永远不会返回空字符串,因此会将空序列转换为零长度字符串.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇