validation java包_软件包 javax.xml.validation 的描述

软件包 javax.xml.validation

此包提供了用于 XML 文档验证的 API。

请参见:

描述

软件包 javax.xml.validation 的描述

此包提供了用于 XML 文档验证的 API。Validation 是验证 XML 文档是否为指定 XML schema 的实例的过程。XML 模式定义了其实例文档将表示的内容模式(也称为 grammar 或 vocabulary)。

有多种流行的技术用于创建 XML 模式。最流行的技术包括:

Document Type Definition (DTD) -- XML 的内置模式语言。

World Wide Web Consortium (W3C) 维护,它是 W3C Recommendation(即公认的 W3C 标准规范)。

以前的 JAXP 版本支持作为 XML 解析器的功能的验证,要么通过 SAXParser 实例,要么通过 DocumentBuilder 实例来表示。

JAXP 验证 API 从 XML 文档解析中分离出实例文档的验证。这具有几种优点,一些原因包括:

支持额外的模式语言。 从 JDK 1.5 开始,两种最流行的 JAXP 解析器实现(Crimson 和 Xerces)仅支持可用的 XML 模式语言的子集。Validation API 提供了标准的机制,应用程序通过此机制可利用支持额外模式语言的规范验证库。

简单的 XML 实例与模式的运行时耦合。 指定要用于通过 JAXP 解析器验证的模式位置可能易于混淆。Validation API 使此过程变得简单(参见以下示例)。

用例。以下示例演示了通过 Validation API 验证 XML 文档(为了方便阅读,此例未显示某些异常处理):

// parse an XML document into a DOM tree

DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();

Document document = parser.parse(new File("instance.xml"));

// create a SchemaFactory capable of understanding WXS schemas

SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

// load a WXS schema, represented by a Schema instance

Source schemaFile = new StreamSource(new File("mySchema.xsd"));

Schema schema = factory.newSchema(schemaFile);

// create a Validator instance, which can be used to validate an instance document

Validator validator = schema.newValidator();

// validate the DOM tree

try {

validator.validate(new DOMSource(document));

} catch (SAXException e) {

// instance document is invalid!

}

JAXP 解析 API 已经与验证 API 进行了集成。应用程序可以通过验证 API 创建 Schema,并通过使用 DocumentBuilderFactory.setSchema(Schema) 和 SAXParserFactory.setSchema(Schema) 方法将其与 DocumentBuilderFactory 或 SAXParserFactory 实例进行关联。您不能既设置模式,又调用解析器工厂上的 setValidating(true)。前者的技术将导致解析器使用新的验证 API,后者将导致解析器使用它们自己的内部验证工具。同时调整这两个选项将导致冗余行为或错误条件。

posted on 2008-03-07 11:03 周锐 阅读(490) 评论(1)  编辑  收藏 所属分类: Apache 、Java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值