jaxb 使用 之 marshal

先看 xml schema 约束

post.xsd

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="post" type="postType" /> <xs:complexType name="postType"> <xs:sequence maxOccurs="unbounded"> <xs:element name="id" type="xs:long" minOccurs="0"></xs:element> <xs:element name="tiebaName" type="xs:string" minOccurs="0"></xs:element> <xs:element name="url" type="xs:string" minOccurs="0"></xs:element> <xs:element name="title" type="xs:string" minOccurs="0"></xs:element> <xs:element name="author" type="xs:string" minOccurs="0"></xs:element> </xs:sequence> </xs:complexType> </xs:schema>

然后

static String path = PostMarshall.class.getClassLoader().getResource("com/jaxb/tieba/").getPath(); path = URLDecoder.decode(path, "utf-8"); JAXBContext factory = JAXBContext.newInstance(Post.class); Schema schema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(new File(path,"post.xsd")); Marshaller ms = factory.createMarshaller(); Post post = new Post(); post.setAuthor("taoge"); //设置schema,验证合法性 ms.setSchema(schema); ms.marshal(post, new File(path + "post.xml")); System.out.println(post.getAuthor());

运行java程序

生成的xml如下

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><post><author>taoge</author><id>0</id></post>

创建的 post 对象其 id == 0

所以会出现上述结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值