`javax.xml.validation` 是 Java 标准版(Java SE)中用于 XML 文档验证的核心包 javax.xml.validation是 Java 标准版(Java SE)中用于 XML 文档验证的核心包,自 Java 5(JDK 1.5)引入,属于 JAXP(Java API for XML Processing)的一部分。该包提供了一套面向对象、解耦且可插拔的 API,用于对 XML 文档(如通过SAX,DOM, 或StAX解析的文档)进行模式(Schema)验证,支持 W3C XML Schema(XSD)、RELAX NG(部分实现,依赖底层处理器)以及 DTD(通过SchemaFactory的特定机制或回退到DocumentBuilder配置,但不直接由本包原生支持 DTD 验证)。核心类与接口:SchemaFactory:工厂类,用于加载和编译模式(如 XSD 文件),生成Schema对象。支持通过newInstance(String schemaLanguage)指定语言(如XMLConstants.W3C_XML_SCHEMA_NS_URI)。Schema:编译后的模式对象,是线程安全的,可被多个Validator共享。Validator:执行实际验证的类,通过Schema.newValidator()获取;可设置ErrorHandler处理验证错误/警告,并支持将Source(如StreamSource)验证为Result(如SAXResult,DOMResult,或忽略结果仅校验)。ValidatorHandler(较少用):ContentHandler的包装器,用于在 SAX 解析过程中嵌入验证逻辑。典型使用流程:创建SchemaFactory;加载 XSD 构建Schema;从Schema创建Validator;调用validator.validate(source)执行验证(抛出SAXException表示验证失败)。⚠️ 注意:自 Java 14 起,javax.xml.*包(包括javax.xml.validation)被标记为deprecated for removal;自 Java 17(LTS)起,这些 API 仍存在但处于strongly discouraged状态;计划在未来的 JDK 版本(如 JDK 22+)中移除,推荐迁移到模块化、现代替代方案,如:使用org.xml.sax+ 第三方验证器(如 Apache Xerces-J,需显式引入);基于 Jakarta EE 的jakarta.xml.validation(Java EE 8+ / Jakarta EE 9+ 迁移后的新命名空间,需添加 Jakarta EE 依赖);或采用更轻量、函数式 XML 库(如 jOOX、vtd-xml)配合自定义校验逻辑。// 示例:使用 javax.xml.validation 验证 XML 是否符合 XSDimportjavax.xml.XMLConstants;importjavax.