如何在java中跳过xsd中的几个元素验证

如何在java中跳过xsd中的几个元素验证,java,xsd,Java,Xsd,我试图用java中的xsd验证xml。 在XSD中,一个字段(tax_id)被定义为manadatory元素。 但在我的场景中,我将一个xml传递给另一个组件,该组件将填充管理库 字段(税号)。 在将该xml发送到下一个组件之前,我必须根据xsd验证该xml。 因为XSD元素tax_id被定义为必填元素,所以我得到了不填充必填元素(tax_id)的例外。 我可以通过将tax_id设置为可选字段来创建一个新的xsd,但这样我们就有了2个xsd 在java中验证时有没有跳过/忽略几个元素的方法?一般

我试图用java中的xsd验证xml。 在XSD中,一个字段(tax_id)被定义为manadatory元素。 但在我的场景中,我将一个xml传递给另一个组件,该组件将填充管理库 字段(税号)。 在将该xml发送到下一个组件之前,我必须根据xsd验证该xml。 因为XSD元素tax_id被定义为必填元素,所以我得到了不填充必填元素(tax_id)的例外。 我可以通过将tax_id设置为可选字段来创建一个新的xsd,但这样我们就有了2个xsd


在java中验证时有没有跳过/忽略几个元素的方法?

一般来说,没有。XSD的目的是指定文档必须满足的规则,以便有效。你不能忽略或跳过其中的一些规则。如果可以,你可能会有其他问题。例如,如果必需的元素确实是可选的(或者可以是可选的),那么在更宽松的验证条件下,从技术上讲,任何应该包含一组其他元素的元素都可能是空的(并且仍然有效)

在您的情况下,您可能有两种选择:

  • 更改您的工作流程-确保第一个组件使用空的
    tax\u id
    填充XML。然后它将验证
  • 引入第二个模式-在处理的“管道”中较早的一个,它不需要
    tax\u id
    。然后验证它