如何处理正则表达式的不同方言(java与xsd)?

tan*_*ens 9 java regex xsd

当我尝试针对Java中的XSD验证XML文件时(请参阅此示例),XSD文件中给出的正则表达式与java中的正则表达式之间存在一些不兼容性.

如果有一个像"[ab-]"XSD中的正则表达式(意思是任何字符"a","b"或" - ",则java会抱怨表达式中存在语法错误.

这是自2005年3月28日以来的已知错误,请参阅Sun bug数据库.

我该怎么做才能解决这个错误?到目前为止,我尝试通过替换"[ab-]"by 来"纠正"XSD文件"[ab\-]",但有时这不是一个选项.


如果你也遇到这个bug的问题,请在Sun bug数据库中投票!

Kal*_*son 3

由于错误已经提交,我建议您尝试不同的 XML 架构处理器。你对此无能为力。

如果您可以预处理 XSD 进入的流,那么您可以创建一个解析器,它理解基本的正则表达式结构,并可以修复任何看起来像 [.*-] 形式的内容(其中 .star 不是中的文字)这个案例)。