当前位置: 首页 > article >正文

XML多子元素、多属性及XSD数据格式验证 Java

========xsd文件,文件名bean.xsd,放在当前java文件目录下

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="beans">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="bean" minOccurs="0"
					maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="name" type="xs:string" />
							<xs:element name="address" type="xs:string" />
						</xs:sequence>
						<xs:attribute name="smallrainIdIn" type="xs:string" use="required"/>
            <xs:attribute name="smallrainAttributeIn" type="xs:string" use="optional"/>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="smallrainId" type="xs:string" use="required"/>
            <xs:attribute name="smallrainAttribute" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
</xs:schema>

========被验证xml文件,文件名bean.xml,放在当前java文件目录下

<?xml version="1.0" encoding="UTF-8"?>
<beans smallrainId="01">
	<bean smallrainIdIn="11">
		<name>rain </name>
		<address>中国</address>
	</bean>
	<bean smallrainIdIn="12">
		<name>rain one</name>
		<address>中国 one</address>
	</bean>
</beans>

=========java文件

package org.rain.xml;
import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.xml.sax.SAXException;
import java.io.File;
import java.io.IOException;

public class SmallRainXML {
    public static void main(String[] args) {
    	SmallRainXML smallrainXML=new SmallRainXML();
    	
    	String smallrainBeanXSD=smallrainXML.getClass().getResource("bean.xsd").getFile();
    	String smallrainBeanXML=smallrainXML.getClass().getResource("bean.xml").getFile();
    	
        try {
            SchemaFactory smallrainSchemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Source smallrainSchemaSource = new StreamSource(new File(smallrainBeanXSD));
            Schema smallrainSchema = smallrainSchemaFactory.newSchema(smallrainSchemaSource);

            Validator smallrainValidator = smallrainSchema.newValidator();
            Source smallrainXMLSource = new StreamSource(new File(smallrainBeanXML));

            smallrainValidator.validate(smallrainXMLSource);
            System.out.println("XML格式正确");
        } catch (SAXException e) {
            System.out.println("XML格式错误" + e.getMessage());
        } catch (IOException e) {
            System.out.println("读文件出错" + e.getMessage());
        }
    }
}


http://www.kler.cn/a/579146.html

相关文章:

  • QTS单元测试框架
  • 大语言模型从理论到实践(第二版)-学习笔记(一)transformer理论与实践
  • 基于C语言的控制台小游戏——打砖块
  • JavaScript系列06-深入理解 JavaScript 事件系统:从原生事件到 React 合成事件
  • Vue3 路由标签的三种写法 子路由 路由传递参数的两种写法 接收参数 解构赋值
  • 【Python】Django 中的算法应用与实现
  • 【SpringBoot3】使用Easy-Trans做字典翻译
  • 使用STM32CubeMX实现LED灯每秒闪烁一次(STM32G070CBT6单片机)
  • 雷池WAF的为什么选择基于Docker
  • 密码学(终极版)
  • neo4j-解决neo4j网页版打不开
  • 011---UART协议的基本知识(一)
  • 车载网络测试-DBC文件解读【创建修改DBC】
  • 深入理解JavaScript中的深拷贝与浅拷贝
  • 人工智能里的深度学习指的是什么?
  • Android Framework 常见面试题
  • Python 文件和异常(写入文件)
  • clickhouse修改和删除数据
  • 特征表示深度解析:颜色、纹理、形状与编码
  • linux学习(五)(服务器审查,正常运行时间负载,身份验证日志,正在运行的服务,评估可用内存)