XML属性double值

时间:2015-12-19 17:11:39

标签: java xml dbunit

我尝试使用 DBUnit 来测试我的存储库服务。 我有这个显示预期结果的xml:

<?xml version="1.0" encoding="UTF-8"?>
<dataset>
    <product id="1" description="Printer" price="75.0" />
</dataset>
id= String , description = String , price = double.

问题是我已经习惯,而不是,因此我不知道如何将属性格式化为double类型。

我试过了:price="75.0" , price=75.0 , price=75

之后我无法将其强制转换为因为我让DBUnit进行解析:

IDataSet expectedDataset = new FlatXmlDataSetBuilder().build(expectedDataSetFile);

目前,我的断言因为这个问题而失败,使用调试器我看到数据被正确放入。

截图

expected enter image description here

2 个答案:

答案 0 :(得分:1)

默认情况下,XML都是一个字符串。您可以使用XML Schema Definition对您的数据及其结构实施规则,这样就可以说明价格是双倍的。

但是,我不了解DBUnit,但我希望它能提供另一种更简单的方式来陈述您的数据格式。

答案 1 :(得分:0)

在XML中,一切都是字符串。您可以在模式中将属性定义为float,但这不会使解析器将其作为浮点值传递给应用程序。它仍然会以字符串形式提供。

在XML中将属性值定义为类型时,实际上是在定义必须遵守的字符串模式。换句话说,您要说字符串必须包含一个遵循浮点值的字符串表示模式的值。验证器会将其标记为错误,因为字符串与此模式不匹配,但解析器仍会将其作为字符串传递。

下游应用程序(例如XSLT脚本)可能会查看架构并使用它包含的信息将值解释为float,但解析器不会。换句话说,你需要自己施展。