XML基础知识——使用schema校验XML文件合法性(四)

倍加福(P+F)R2000修改雷达IP 在调试车子的时候,用到了倍加福R2000的一款雷达,设备启动建图时发现建不了图,于是查看/scan发现话题无数据,尝试ping雷达接口发现ping不通,应该是IP地址与上位机端口的IP地址不对。首先查看雷达的IP地址,这个在雷达上有两个按键,按下后可以显示IP: 按两下右边的键再按一下左边的键雷达上会显示出IP号,这里拍的不是很清楚。查看到开始时雷达IP地址为192.168.111.10,而上位机ping的IP地址为192.168.188.50.与实际不同,所以需要对雷达进行配置。一台windows笔记本 阅读详情

一、源代码如下

(1)、第一种方式

	/**
	 * 使用Schema验证XML的合法性<br>
	 * 
	 * @param xmlDocument 要验证的XML文件
	 * @param xsdFilename Schema文件名
	 * @return 如果验证通过,则返回true,否则返回false。
	 */
	@SuppressWarnings("unchecked")
	public static boolean validateXmlBySchema(Document xmlDocument, String xsdFilename) {
		try {
			SAXParserFactory factory = SAXParserFactory.newInstance();
			factory.setValidating(true);
			factory.setNamespaceAware(true);
			
			SAXParser parser = factory.newSAXParser();
		parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage", "http://www.w3.org/2001/XMLSchema");
			parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource", "file:" + xsdFilename);
			
			SAXValidator validator = new SAXValidator(parser.getXMLReader());
			// 错误处理器,存放验证过程中的错误信息
			XMLErrorHandler errorHandler = new XMLErrorHandler();
			validator.setErrorHandler(errorHandler);
			// 验证XML文件的合法性
			validator.validate(xmlDocument);
			
			if (errorHandler.getErrors().hasContent()) {
				LogUtil.error("XML合法性验证失败,错误信息如下:");
				List<Element> elements = errorHandler.getErrors().elements();
				for (Element element : elements) {
			LogUtil.error("(line " + (Integer.parseInt(element.attributeValue("line")) + 1) + ") " + element.getText());
				}
				/*
				StringWriter writer = new StringWriter();
				XMLWriter xmlWriter = new XMLWriter(writer, OutputFormat.createPrettyPrint());
				xmlWriter.write(errorHandler.getErrors());
				logger.error(writer.toString());
				writer.close();
				xmlWriter.close();
				*/
				return false;
			} else {
				LogUtil.debug("XML合法性验证成功");
				return true;
			}
		} catch (ParserConfigurationException e) {
			UtilException pe = new UtilException("XML合法性验证出错:" + e.getMessage(), e);
			LogUtil.exception(pe);
			throw pe;
		} catch (SAXException e) {
			UtilException pe = new UtilException("XML合法性验证出错:" + e.getMessage(), e);
			LogUtil.exception(pe);
			throw pe;
		}
	}
(2)、第二种方式

	/**
	 * 使用Schema验证XML的合法性<br>
	 * 
	 * @param xmlFile 要验证的XML文件
	 * @param xsdFilename Schema文件名
	 * @return 如果验证通过,则返回true,否则返回false。
	 */
	public static boolean validateXmlBySchema(File xmlFile, String xsdFilename) {
		try {
			SAXReader reader = new SAXReader();
			Document xmlDocument = reader.read(xmlFile);
			return validateXmlBySchema(xmlDocument, xsdFilename);
		} catch (DocumentException e) {
			UtilException pe = new UtilException("XML合法性验证出错:" + e.getMessage(), e);
			LogUtil.exception(pe);
			throw pe;
		}
	}

(3)、第三种方式

	/**
	 * 使用Schema验证XML的合法性<br>
	 * 
	 * @param xmlString 要验证的XML文件
	 * @param xsdFilename Schema文件名
	 * @return 如果验证通过,则返回true,否则返回false。
	 */
	public static boolean validateXmlBySchema(String xmlString, String xsdFilename) {
		try {
			SAXReader reader = new SAXReader();
			Document xmlDocument = reader.read(new StringReader(xmlString));
			return validateXmlBySchema(xmlDocument, xsdFilename);
		} catch (DocumentException e) {
			UtilException pe = new UtilException("XML合法性验证出错:" + e.getMessage(), e);
			LogUtil.exception(pe);
			throw pe;
		}
	}

Diffix3D+复现 上下载模型,将其放在一个目录中,并将目录名填在demo代码中from_pretrained的cache_dir参数里。目录结构应该是"<PATH>/nvidia/difix/…给的requirements文件中pytorch和xformers的版本没有指定,这里测试过以下版本,可以成功运行。将readme中的demo代码新建一个python脚本复制进去,然后将脚本放在src目录中运行。如果遇到网络问题无法加载huggingface上的预训练模型,可以手动从。如果出现,以下错误重新。 阅读详情

相关推荐

使用SAXParser(SAXParserFactory.newInstance())验证XML文件格式---XSD

NULL 博文链接:https://wenhai.iteye.com/blog/563416

如何用schema验证xml(MSXML),简单VC代码

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE

crybird的C/C++ 4212

2025宁夏省建筑物轮廓矢量shp数据-银川市、石嘴山市等建筑物数据带高度下载

2025宁夏省建筑物轮廓矢量shp数据,包含银川市、石嘴山市、吴忠市、固原市、中卫市,全省范围建筑物矢量数据,几百万个面,带高度属性

XML解析 验证之XSD和DTD验证以及 SpringXML验证源码分析

1.DTD(Documnet Type Definition) DTD即文档类型定义,是一种XML约束模式语言,是XML文件验证机制,属于XML文件组成的一部分。 DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。 一个 DTD文档包含: 元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规...

大佛拈花的博客 1182

种方式对XML的操作

在平时工作中,难免会遇到把XML作为数据存储格式。面对目前种类繁多的解决方案,哪个最适合我们呢?在这篇文章中,对这种主流方案 做一个不完全评测,仅仅针对遍历XML这块来测试,因为遍历XML是工作中使用最多的。   XML文件格式如下:   <?xml version="1.0" encoding="GB2312"?> <RESULT> <VALUE> ...

生活在爪洼岛上 870

SAX轻松入门(二)--带验证的SAX解析

 /*java and xml 3nd学习笔记SAX轻松入门(二)--带验证的SAX解析author:shine*/继续SAX轻松入门(一)中的例子Test1,本文中主要只解决一个问题:1)SAX轻松入门(一)中简单的介绍了不带验证的SAX解析,那么带验证的呢?NO1.SAX中的验证不像JAXP中有setValidation()方法,也不是用一个专门的类(javax.xml.validatio

mynameisshine的专栏 1871

Java实现xml文件的xsd校验schema校验

JDK中的javax.xml包中有能进行schema校验的类库,但只能返回true或false,无法给出确切的错误信息。 Dom4j中给出了几种schema校验的思路,本文实现其中一种。 Dom4j在github上的文档地址是:https://github.com/dom4j/dom4j/wiki/Cookbook 校验时,能够记录schema中所有不匹配的错误,但首先要保证xmL格式正确,否...

念牧童的专栏 8191

XMl Schema校验

1.Schema概要 XML是可扩展标记语言,也就是说其中的节点标记设置由用户定义生成。如果没有有效的办法来校验XML合法性,往往会导致很多问题。因此xml通过校验达到合法性规范性,同时也可以对xml节点中的数据校验。 这次学习中,运用的XML校验是通过XML Schema(XSD)。其本身是一个XML文档,所以必须满足XML文档结构。在每个Schema文档中必须包含一个根元素。

BERRYL_weibo的博客 6856

使用schema.xsd校验xml文件案例

一、导入jar包二、编写MainTest.javapackage com.avicit.test; import java.io.File; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.dom4j.Document; import org.dom4j.io.O...

Java学习 2431

Java通过XSD(XML Schema校验XML

1.准备好正确的XML文件a.xml <?xml version="1.0"?> <note> <name>Tom</name> <gender>male</gender> <age>16</age> <address>changjiang road&...

谦虚使人发胖的博客 5302

使用schema校验xml

一、背景  在大型的项目开发中,我们往往要是用xml进行一些规范化的处理。这时候就需要有高手先做好上层的一些规则。这时候往往就会用到schemaxml进行一个规范化的校验  二、代码实践  我们以公司和员工为例来实践一下。  1、创建公司校验schema:CompanySchema.xsd  Xml代码  xml version="1.0" enc

gxsenjoy的博客 2612

JAXP 利用xml schema 验证xml合法性

xml  schema  注意:注意 schema文件只写xmlns 就可以了 ,配置其他的有问题(本人对xml schema 命名空间啥的很不熟, 不太会配哦)

天下无双 2060

通过XML Schema校验XML

Java通过XML Schema校验XML   XML校验XML处理中非常常见,如果没有有效的办法来校验XML合法性,往往会导致很多问题。   XML校验是通过XML Schema(XSD) 或DTD文件的语法规范来校验的。DTD现在越来越不受欢迎了,在此选用XSD来校验。   Java校验XML是件和扯淡的事情,因为Sun的XML相关软件包会令你云里雾里。 W...

SpallationMetamorph的专栏 266

java实现xml的xsd验证_Java通过XML Schema校验XML

首页>编程语言> 文章详细Java通过XML Schema校验XML2020-03-28 10:51:10阅读:77来源:互联网Java通过XML Schema校验XMLXML校验XML处理中非常常见,如果没有有效的办法来校验XML合法性,往往会导致很多问题。XML校验是通过XML Schema(XSD) 或DTD文件的语法规范来校验的。DTD现在越来越不受欢迎了,在此选用...

weixin_34182361的博客 1006

java校验xml_Java通过XML Schema校验XML

Java通过XML Schema校验XMLJava通过XML Schema校验XMLXML校验XML处理中非常常见,如果没有有效的办法来校验XML合法性,往往会导致很多问题。XML校验是通过XML Schema(XSD) 或DTD文件的语法规范来校验的。DTD现在越来越不受欢迎了,在此选用XSD来校验。Java校验XML是件和扯淡的事情,因为Sun的XML相关软件包会令你云里雾里。W3C这...

weixin_39643679的博客 358

Java&Xml教程(九)Java中通过XSD校验XML合法性

Java XML校验API可以通过XSD(XML Schema Definition)校验XML文件内容的合法性。在以下的案例中使用javax.xml.validation.Validator 类通过一个xsd文件来鉴定XML内容合法性。 以下是我们将要用于校验的xsd文件xml文件的内容。 Employee.xsd <?xml version="1...

aodiyi6351的博客 241

schema校验xml

最近一段时间研究schema校验xml,很不熟悉,在这里做个记录。 schema:用于校验xml的完整性。数据的形态都可以进行校验。 下面我们来看一个schemaschema的后缀名是.xsd. 1.xsd: &lt;schema&gt; 元素可包含属性。一个 schema 声明往往看上去类似这样: &lt;?xml version="1.0"?&gt; &lt;xs:sc...

jhhuang4836的专栏 406

用xerces-c来进行xml schema校验

在xerces-c的官方网站上有文章指引说明是如何进行xml schema校验。http://xerces.apache.org/xerces-c/schema-3.html 给出的例子代码: // Instantiate the DOM parser. XercesDOMParser parser; parser.setDoNamespaces(true); parser.setDoSche

debugeeker的专栏 4666

Java通过XML Schema校验XML

Java通过XML Schema校验XML   XML校验XML处理中非常常见,如果没有有效的办法来校验XML合法性,往往会导致很多问题。XML校验是通过XML Schema(XSD) 或DTD文件的语法规范来校验的。原理是通过读取解析XML的时候设置校验的XSD和校验错误处理器,顺便校验的。 DOM4j结合javaxml api使用XSD来校验一个xml 例子如下: XML文件...

贾世鑫的博客 3018

xml Schemaxml进行校验(Xerces-j版本)

本来这是件很简单的事情,主要代码如下:       SAXBuilder    builder   = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true);      // set entity resolver to ignore the DTD specified in the template      builder.

javaguru 1423
上一篇: XML基础知识——写入数据到XML文件(二)
下一篇: tomcat基础知识——jsp访问错误(一)
spring_model
博客等级 码龄11年 36粉丝 47原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值