我无法识别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引用。
答案 0 :(得分:0)
问题是您将日期字段定义为仅xsd:year。允许有4个或更多商定数字的有符号值代表一年(额外允许代表未来或过去的年份)。
不确定为什么这六位数字正在传递,因为你可能没有设置一个2位数的扩展名,但是你应该使用xsd:date来代替你应该用它来表示日期。
类似的问题: XSD validates wrong format of xs:date and xs:dateTime