XSD 中的限制不起作用

Restrictions in XSD not working

我对使用 WSDL 和 XSDs 进行 XML 处理有疑问。

例如:下面是XSD

中提到的字段
<xs:element minOccurs="0" name="VALDATE">
  <xs:simpleType>
    <xs:restriction base="xs:string">
       <xs:pattern value="\d{1,4}-?/?\d{1,4}-?/?\d{1,4}" />
    </xs:restriction>
  </xs:simpleType>
</xs:element>

在这里,我所做的是期望读取与上述模式匹配的字符串格式的日期值。

问题是,如果我传递值 12-12-1212,它会通过,如果我传递值 1212:12:12,它也会通过。我的意思是,如果 XML 处理器没有根据模式匹配字符串,那么它是什么意思?

另一个例子是:

<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>

现在,在这个字段中,如果我给出超过 10 个字符,那么它也会在不应该通过的情况下通过。

系统不应该根据提到的参数抛出任何错误吗?

提前致谢!

//编辑开始

实际情况是:我希望日期以不同的格式出现。因此,在 wsdl 文件中,我提到元素作为日期类型没有任何限制。现在,当请求到来时,如果日期是 YYYY-MM-DD 格式,系统就会接受,否则系统会忽略该值并继续进行。我进一步的意思是,当 xml 到达 Java 时,日期字段没有标签。

为此,我将元素数据类型更改为字符串(如上所述)。现在,系统正在接受所有值,并且在 Java 中可用,并且我正在为该字段进行模式匹配。系统现在运行正常。

但是为什么系统不执行 XSD 验证?有旗帜吗?

此外,我使用 JDK 的 wsimport 实用程序生成了带有 wsdl 和 xsds 的 Java 文件。

//编辑结束

你的问题的关键是:

But why system is not performing XSD validations?

答案是,因为你没有要求它。

要了解在何处请求模式验证是合适的,我们需要更多地了解您的应用程序的设计。