Java:是否有可能使用Java根据XML模式中的SimpleType检查字符串?

Java:是否有可能使用Java根据XML模式中的SimpleType检查字符串?,java,validation,xsd,Java,Validation,Xsd,我有一个非常复杂的XML模式(它是由Swift设计的:-)声明了许多SimpleType,它们将在模式验证中使用 现在在我的JavaWeb应用程序中,我有一些输入字段,它们应该具有与XML模式中描述的相同的验证规则。对于每个输入字段,我都知道模式中对应的SimpleType。那么,是否有可能根据模式中定义的规则检查我从输入字段获得的字符串 我不想使用Jaxb从模式生成Java对象模型,因为模式非常复杂,GenCreation只为一个模式定义生成了近100个Java类。您可以利用API验证内存中生

我有一个非常复杂的XML模式(它是由Swift设计的:-)声明了许多SimpleType,它们将在模式验证中使用

现在在我的JavaWeb应用程序中,我有一些输入字段,它们应该具有与XML模式中描述的相同的验证规则。对于每个输入字段,我都知道模式中对应的SimpleType。那么,是否有可能根据模式中定义的规则检查我从输入字段获得的字符串


我不想使用Jaxb从模式生成Java对象模型,因为模式非常复杂,GenCreation只为一个模式定义生成了近100个Java类。

您可以利用API验证内存中生成的、保存简单类型的小XML片段

您可以找到一些API使用示例。您将从诸如ByteArrayInputStream之类的流式传输XML源文件,而不是从磁盘加载XML源文件

也许您需要生成另一个模式,该模式依赖于Swift中的XSD,以便为每个简单类型提供一个元素,从而更容易生成XML片段


编辑:另一种可能性是使用与SWIFT一起使用的Java库之一。在这个问题中给出了一些概述:

我不知道有任何由XSD简单类型自动生成的Java验证模型。即使使用JAXB或XMLBeans,诸如XSD模式之类的限制也不适用于生成的Java代码(您可以看到播放字符串对象的getter/setter)


因为您不想使用JAXB模型,所以可以使用XML处理器的XSD验证作为示例。因此,为了检查值,您需要创建一个有效(最小)的XML,并通过支持XSD验证的XML处理器(Xerces DOM)对其进行处理。如果验证通过,您就知道输入数据是正确的。

似乎只有通过更多的编码工作才能解决这个问题。谢谢你的深思熟虑!