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

XSD 对 XML 数据格式验证 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="bean">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="name" type="xs:string"/>
                <xs:element name="address" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

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

<?xml version="1.0" encoding="UTF-8"?>
<bean>
    <name>rain </name>
    <address>中国</address>
</bean>

=========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());
        }
    }
}

相关文章:

  • IDEA 基础配置: maven配置 | 服务窗口配置
  • 点云数据处理--splat转3dtiles
  • 重构谷粒商城09:人人开源框架的快速入门
  • 记录一次wifi版有人物联串口服务器调试经过
  • 探秘沃尔什-哈达玛变换(WHT)原理
  • 推荐优秀的开源软件合集
  • Geo3D建筑材质切换+屋顶纹理
  • 利用 requestrepo 工具验证 XML外部实体注入漏洞
  • SQL根据分隔符折分不同的内容放到临时表
  • PyTorch中的线性变换:nn.Parameter VS nn.Linear
  • HBuilder X 使用 TortoiseSVN 设置快捷键方法
  • 数据仓库架构全解析:如何构建高效、有序的数据分层?
  • Spring面试问答
  • 2025网络安全工程师:软考新挑战与职业发展探析
  • Windsuf 连接失败问题:[unavailable] unavailable: dial tcp...
  • Vue进阶之Vue3源码解析(一)
  • 基于数据挖掘的疾病数据可视化分析与预测系统
  • 基于javaweb的SpringBoot家校信息共享系统设计和实现(源码+文档+部署讲解)
  • 分类评价指标
  • Python中JSON使用指南:从基础到高效技巧
  • 什么网站可以做软件有哪些/网络推广策划方案模板
  • 幼儿园网站怎么做/短视频推广策略
  • 临朐县网站建设/关键词歌词表达的意思
  • html5网站制作实战/新手学seo
  • 做h5页面的网站/新媒体seo指的是什么
  • org 结尾的网站注册要什么手续/app投放推广