我有一个有趣的和Wiard的问题。当我使用EclipseIDE以编程方式运行XSLT转换时,我得到了如下所需的输出:
<Schedule>
<Date>10/13/2013</Date>
<Amount>2000</Amount>
</Schedule>
而在我的Solaris盒子中使用相同的XSLT,转换结果是:
<Schedule>
<Amount>2000.0</Amount>
</Schedule>
神秘的是现在
<Date>10/13/2013</Date>
块在UNIX中不可见。此外,与我在Eclipse输出中得到的2000相比,现在的数量是2000.0。我非常确信,两个操作系统都采用了相同的XSLT。我真的很困惑,为什么Windows(理想)和Solaris(不理想)中的转换输出会有所不同。期待着解开所有大师的神秘面纱。
好的。我终于弄清了原因。在Unix中,xslt是根据XSD进行验证的,XSD要求Date字段为DateType,即YYYY-MM-DD,而我传递的日期为MM/DD/YYYY。具有讽刺意味的是,当我在eclipse IDE中运行它时,它毫无怨言地获得了MM/DD/YYYY值。不管怎样,现在,我的问题已经解决了,感谢大家的关注。