Jaxb 为什么这个XSD元素要通过默认的ValidationEventHandler?

Jaxb 为什么这个XSD元素要通过默认的ValidationEventHandler?,jaxb,xsd,wsdl,cxf,xsd-validation,Jaxb,Xsd,Wsdl,Cxf,Xsd Validation,我使用CXF(2.7.1)和WSDL&XSD实现了一个工作的web服务,其中包括以下类型: <xs:simpleType name="SimpleIdType"> <xs:restriction base="xs:string"> <xs:pattern value="[A-Za-z0-9:\.\-]{20}"/> </xs:restriction> </xs:simpleType> 我的解释是:只接受20个只包含

我使用CXF(2.7.1)和WSDL&XSD实现了一个工作的web服务,其中包括以下类型:

<xs:simpleType name="SimpleIdType">
  <xs:restriction base="xs:string">
    <xs:pattern value="[A-Za-z0-9:\.\-]{20}"/>
  </xs:restriction>
</xs:simpleType>

我的解释是:只接受20个只包含字母数字字符和“:”、“.”和“-”的字符串

当我使用包含
faaaaaaaaa
的相应元素向我的web服务发送SOAP消息时,服务当然会正确地接受,不会出现任何错误

但是,如果我用
而不是
F
(即
#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

为什么?

ValidationEventHandler不是应该通过抛出“解组错误””来处理这个问题吗?

JAXB模型(生成的或手工编码的)的注释中不包含XML模式中的所有元数据。如果要针对架构的所有方面进行验证,可以通过在
解组器
上指定
架构
的实例来启用此功能

JAXB模型(生成的或手工编码的)的注释中并不包含XML模式中的所有元数据。如果要针对架构的所有方面进行验证,可以通过在
解组器
上指定
架构
的实例来启用此功能


我终于找到了这个基于CXF的案例的正确答案


CXF已经内置了运行时架构验证。它被命名了,我的代码中唯一缺少的是启用它的XML,在已经存在的
中,我终于找到了这个基于CXF的案例的正确答案


CXF已经内置了运行时架构验证。它是命名的,我的代码中唯一缺少的就是启用它的XML,在已经存在的
Wow中+1已经。我将彻底阅读你的文章,并让你知道这是否对我有效。我是否正确理解这也意味着设置我自己的解决方案?好的,我尝试实现您的解决方案,但我没有
main()
。我是否钩住了模式和解组器代码?看起来我处理这个问题的方式不对(因为涉及到CXF):根据,类路径上的CXF.xml配置文件(及其内容)改变了CXF的默认行为,即消息参数不会被验证。这是令人困惑的,因为如果我发送一个“?”而不是
xs:timestamp
,我肯定会得到一个“解组错误”(默认!)。。。我错过了什么?哇+1已经。我将彻底阅读你的文章,并让你知道这是否对我有效。我是否正确理解这也意味着设置我自己的解决方案?好的,我尝试实现您的解决方案,但我没有
main()
。我是否钩住了模式和解组器代码?看起来我处理这个问题的方式不对(因为涉及到CXF):根据,类路径上的CXF.xml配置文件(及其内容)改变了CXF的默认行为,即消息参数不会被验证。这是令人困惑的,因为如果我发送一个“?”而不是
xs:timestamp
,我肯定会得到一个“解组错误”(默认!)。。。我错过了什么?
<jaxws:properties>
    <entry key="schema-validation-enabled" value="true" />
</jaxws:properties>