如何使用XSLT验证XML中的日期格式?
我想验证某个日期在某些XML中的格式是否正确,例如:如何使用XSLT验证XML中的日期格式?,xml,xslt,Xml,Xslt,我想验证某个日期在某些XML中的格式是否正确,例如: <Student> <Name>Test</Name> <DOB>14121992</DOB> </Student> 试验 14121992 我需要使用XSLT检查DOB是否为日期格式YYMMDD?这样做有什么功能吗?我看到很多代码只转换日期/时间,而不验证它 是否可以使用模式进行此验证?模式和XSLT 2.0都可以对照格式为YYYY-MM-DD的xs:date类型
<Student>
<Name>Test</Name>
<DOB>14121992</DOB>
</Student>
试验
14121992
我需要使用XSLT检查DOB是否为日期格式YYMMDD
?这样做有什么功能吗?我看到很多代码只转换日期/时间,而不验证它
是否可以使用模式进行此验证?模式和XSLT 2.0都可以对照格式为
YYYY-MM-DD
的xs:date
类型进行检查。由于格式不同,您需要尝试从输入数据的组件构造一个xs:date
,然后在XSLT 2.0中执行$var castable As xs:date
。可能需要进行更多的检查以确保XML中没有其他数据,例如,在您的示例中,您有很多数字。XSLT并不真正关心验证(尽管如果文档未验证,可能会使用支持模式的处理器导致失败)。正如在另一条注释中所述,XML模式语言可以用来验证这一点,RELAXNG(带有数据类型模块)或Schematron也可以。您还可以编写一个模板,在日期与格式不匹配的情况下使用
输出消息,但您必须注意消息。