栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java针对XSD文件验证XML文件的最佳方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java针对XSD文件验证XML文件的最佳方法是什么?

Java运行时库支持验证。上次我检查的是幕后的Apache Xerces解析器。你可能应该使用

javax.xml.validation.Validator

import javax.xml.XMLConstants;import javax.xml.transform.Source;import javax.xml.transform.stream.StreamSource;import javax.xml.validation.*;import java.net.URL;import org.xml.sax.SAXException;//import java.io.File; // if you use Fileimport java.io.IOException;...URL schemaFile = new URL("http://host:port/filename.xsd");// webapp example xsd: // URL schemaFile = new URL("http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd");// local file example:// File schemaFile = new File("/location/to/localfile.xsd"); // etc.Source xmlFile = new StreamSource(new File("web.xml"));SchemaFactory schemaFactory = SchemaFactory    .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);try {  Schema schema = schemaFactory.newSchema(schemaFile);  Validator validator = schema.newValidator();  validator.validate(xmlFile);  System.out.println(xmlFile.getSystemId() + " is valid");} catch (SAXException e) {  System.out.println(xmlFile.getSystemId() + " is NOT valid reason:" + e);} catch (IOException e) {}

模式工厂常量是http://www.w3.org/2001/XMLSchema定义XSD 的字符串。上面的代码针对URL验证了WAR部署描述符,http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd但你同样可以针对本地文件进行验证。

你不应使用DOMParser来验证文档(除非你的目标仍然是创建文档对象模型)。这将在解析文档时开始创建DOM对象-如果你不打算使用它们,那将很浪费。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/375897.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号