Java中XSD 1.1含断言XML验证问题及解决方案咨询
问题解答
1. 解决com.ibm.icu.text.UTF16类缺失问题
这个类属于ICU4J国际化文本处理库,org.opengis.cite.xerces:xercesImpl-xsd11依赖该库但未自动引入,需手动添加依赖:
- Maven项目:在
pom.xml中加入
<dependency> <groupId>com.ibm.icu</groupId> <artifactId>icu4j</artifactId> <version>74.2</version> <!-- 可选用最新稳定版本 --> </dependency>
- Gradle项目:在
build.gradle中加入
implementation 'com.ibm.icu:icu4j:74.2'
添加后重新构建项目,类缺失错误即可解决,之后可重新验证姓名长度断言是否正常触发。
2. 2024年支持XSD 1.1断言验证的其他开源库
除了你当前使用的库,还有以下成熟开源选项:
- Saxon HE:开源免费版本就支持XSD 1.1核心特性(包括断言),是应用广泛的XML处理库,API易用性与兼容性表现出色。
- Apache Xerces2 Java XSD 1.1官方分支:与你用的第三方维护版本不同,Apache官方维护的Xerces2 XSD1.1分支原生支持断言,可尝试切换到该依赖以规避第三方版本的潜在依赖问题。
- Apache XMLBeans:支持XSD 1.1验证及断言,同时能根据XSD生成Java绑定类,适合需要XML与Java对象映射的场景。
内容的提问来源于stack exchange,提问作者Rokko_11
相关产品推荐
相关产品推荐

