对于SOAP ui中的类型xsd:gYear类型,日期字段验证失败

时间:2016-09-22 13:25:37

标签: xml soap xsd wsdl soapui

我无法识别SoapUI实现的验证逻辑。

在WSDL中使用的本地XSD中定义了一个日期字段,类型为xsd:gYear。当我验证价值" 20161411"它在SoapUI中失败了,但同样的字段是通过传入java框架,我有相同的XSD和相同的wsdl。

Field Is:

 <date>20171210</date>

它的类型是xsd:gYear,如我的XSD中所定义,如下所示: -

 <xsd:simpleType name="Date_NoID">
     <xsd:union memberTypes="xsd:gYear"/>
 </xsd:simpleType>

当我提供的值为20171210(8位数)时,它在SOAPUI中抛出错误,我正在通过右键单击 - &gt;验证。

错误消息是

  

&#34;工会价值&#39; 20171210&#39;与命名空间http://www.ACORD.org/standards/PC_Surety/ACORD1/xml/&#39;&#34;&#34;中的日期的任何成员都不匹配。

如果我们将价值作为&#34; 201615&#34;这是六位数,它通过了SOAPUI中的验证。

所以我想了解SOAPUI如何设置Feild的最大长度,即类型xsd:gYear

相同的字段在JAVA中传递,使用Schema Validator具有相同的XSD引用。

1 个答案:

答案 0 :(得分:0)

问题是您将日期字段定义为仅xsd:year。允许有4个或更多商定数字的有符号值代表一年(额外允许代表未来或过去的年份)。

不确定为什么这六位数字正在传递,因为你可能没有设置一个2位数的扩展名,但是你应该使用xsd:date来代替你应该用它来表示日期。

类似的问题: XSD validates wrong format of xs:date and xs:dateTime