今天就跟大家聊聊有关Spring中怎么自定义xsd文件操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1 设置html文件的语法格式xsd文件
根据POJO的属性编写xsd文件。
例如
<?xml version="1.0" encoding="UTF-8" ?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.zhangyh.com/schema/user" elementFormDefault="qualified"> <element name="user"> <complexType> <attribute name="id" type="string" /> <attribute name="name" type="string" /> <attribute name="email" type="string" /> </complexType> </element> </schema>
对应的POJO是
public class User { private String name; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
属性的getter和setter方法不可缺少
可以使得User的属性在xml中可以配置,如
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mytest="http://www.zhangyh.com/schema/user" xsi:schemaLocation="http://www.springframework.org/schema/beans classpath:com.zhangyh.xsd/schema/spring-beans-2.0.xsd http://www.zhangyh.com/schema/user http://www.zhangyh.com/schema/user.xsd"> <mytest:user id="testBean" name="aaa" email="bbb"/> </beans>
mytest:是自定义的命名空间名 classpath:是本地xsd文件加载协议
2 实现BeanDefinitionParser接口和扩展类NamespaceHandlerSupport
扩展NamespaceHandlerSupport类:实现XML中的数据的手动加载到BeanDefinitionBuilder中
public class UserBeanDefinitionParser extends AbstractSingleBeanDefinitionParser { protected Class getBeanClass(Element element){ return User.class; } protected void doParse(Element element, BeanDefinitionBuilder bean) { String userName = element.getAttribute("name"); String email = element.getAttribute("email"); if(StringUtils.hasText(userName)) { bean.addPropertyValue("name", userName); } if (StringUtils.hasText(email)) { bean.addPropertyValue("email", email); } } }
实现BeanDefinitionParser接口:手动注册POJO的手动解析结果
public class MyNamespaceHandler extends NamespaceHandlerSupport { public void init() { registerBeanDefinitionParser("user",new UserBeanDefinitionParser()); } }
3 设置Spring.handlers和Spring.schemas文件
配置META-INF/Spring.handlers:
http\://www.zhangyh.com/schema/user=com.zhangyh.xsd.paser.MyNamespaceHandler
当引用http://www.zhangyh.com/schema/user时会使用MyNamespaceHandler解析引用对象
配置META-INF/Spring.schemas
http\://www.zhangyh.com/schema/user.xsd=com.zhangyh.xsd/schema/user.xsd
载入自定义xsd文件
看完上述内容,你们对Spring中怎么自定义xsd文件操作有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。