接上文 JAXB:使用annotation绑定XML(xmlns)
在使用JAXB解析XML文件的时候我们有时候可能会需要通过schema文件验证XML的格式,接上文的XMLParser.java
示例代码如下:
public static Object unmarshal(InputStream xml, Class<?> clazz) throws SAXException {
Object obj = null;
ValidationEventCollector vec = new ValidationEventCollector();
try {
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("C:\\eclipse\\workspace1\\STAF\\test\\employees.xsd"));
JAXBContext jc = JAXBContext.newInstance(clazz.getPackage().getName());
Unmarshaller u = jc.createUnmarshaller();
u.setSchema(schema);
u.setEventHandler(vec);
obj = u.unmarshal(xml);
} catch (JAXBException e) {
throw new RuntimeException("Can't unmarshal the XML file, error message: " + e.getMessage());
} finally {
if(vec != null && vec.hasEvents()) {
for(ValidationEvent ve : vec.getEvents()) {
String msg = ve.getMessage();
ValidationEventLocator vel = ve.getLocator();
int line = vel.getLineNumber();
int column = vel.getColumnNumber();
System.out.println();
System.err.println("At line " + line + ", column " + column + ": " + msg);
}
}
}
return obj;
}
该代码段适用于单一schema,或者在classpath中的多schema验证,如果是classpath外的多schema验证,请结合参考该文:XML validation for multiple schemas 验证使用多个XSD schema的XML文件
分享到:
相关推荐
XML Schema 教程 XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 描述 XML 文档的结构。 XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用程序中读取和...
JAXB注解 java 关于xml的注解,自动生成xml文件
在android 6.0下,应用JAXB jar包根据XML Schema解析XML文件。
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。JAXB与xml相互转换实例。
用JAXB生成一个XML文档,一个XML 模式(Schema)用XML语法表达了一个XML文档的结构。J2EE的开发者也许会需要一个符合XML模式的XML文档。Java XML绑定架构(JAXB)提供了一个绑定编译器,xjc,来从一个XML模式中生成Java类...
使用 JAXB 从 XML Schema 生成 Java 类 此存储库包含可从网站获得的教程的项目文件
使用jaxb根据xsd生成xml文档,不要积分的,赶快下载
标签:javax、xml、bind、jaxb、api、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准...
JAXB:用于 XML 绑定的 Java 架构 关于 这演示了如何使用 JRuby 来控制 JAXB 类。 它的灵感来自 Jason Gilman 此示例代码侧重于构建和编组以及 XML 文档 JAXB JAXB 是源自 Java Architecture for XML Binding 的首...
JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例...
使用jaxb生成XML例子,含有例子和注解解析
解决maven仓库jab1-impl.jar jabl-api.jar jsr173_1.0_api.jar等jar包不存在问题
JAXB工具类 xml转为java对象 java对象转为xml ,本人亲测,可以使用!!!
赠送Maven依赖信息文件:jaxb-api-2.3.1.pom; 包含翻译后的API文档:jaxb-api-2.3.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:javax.xml.bind:jaxb-api:2.3.1; 标签:bind、javax、xml、api、jar包、java、...
教你使用jaxb解析xml,介绍了主要的注解,以及核心api
THE Java™Architecture for XML Binding (JAXB) provides a fast and convenient way to bind between XML schemas and Java representations, making it easy for Java developers to incorporate XML data and ...
jdk升级之后出现异常:java.lang.NoClassDefFoundError: javax/xml/ws/Service 1、解决方案jdk降级至1.8之前 2、由于JDK9以后,去除了javax.xml包需要引入对应的jar包 <groupId>javax.activation <artifactId>...
使用woodstax+jaxb进行xml的流解析,包括解析类,解析文件,所需jar包,带注解的实体类。提高了解析效率,减少了内存消耗。
JAXBDemo 的代码库。 JAXB 代表 Java Architecture for XML Binding,它允许在 XML 和 java 类之间轻松转换。
jaxb解析生成xml例子