使用xmlbeans构造符合相应Schema格式的xml文件

接着上例的 automobile-policy.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="automobile-policy">  <xs:complexType>   <xs:sequence>
    <xs:element name="insurance-date" type="xs:dateTime" />
    <xs:element name="policyholder-information" type="policyholder-information"
     minOccurs="1" />
    <xs:element name="insured-vehicle" type="insured-vehicle"
     minOccurs="1" />
    <xs:element name="liability-coverage" type="liability-coverage"
     minOccurs="1" />
    <xs:element name="third-party-coverage" type="third-party-coverage" />
   </xs:sequence>  </xs:complexType> </xs:element>
 <xs:complexType name="policyholder-information">  <xs:sequence>
   <xs:element name="name" type="xs:string" />
   <xs:element name="social-security-number" type="xs:string" />
   <xs:element name="address" type="xs:string" />  </xs:sequence>
 </xs:complexType> <xs:complexType name="insured-vehicle">  <xs:sequence>
   <xs:element name="year-of-manufacture" type="xs:string" />
   <xs:element name="make" type="xs:string" />
   <xs:element name="model" type="xs:string" />
   <xs:element name="price" type="xs:double" />  </xs:sequence>
 </xs:complexType> <xs:complexType name="liability-coverage">  <xs:sequence>
   <xs:element name="coverage-limit" type="xs:double" />
   <xs:element name="coverage-premium" type="xs:double" />  </xs:sequence>
 </xs:complexType> <xs:complexType name="third-party-coverage">  <xs:sequence>
   <xs:element name="coverage-limit" type="xs:double" />
   <xs:element name="coverage-premium" type="xs:double" />  </xs:sequence>
 </xs:complexType></xs:schema>



 

确保该schema文件已经使用scomp编译过,并将生成的jar包导入到了工程中,且工程中加入了xmlbeans的jar文件

新建源文件:

import java.io.File;
import java.util.Calendar;
import java.util.Date;
import org.apache.xmlbeans.XmlOptions;
import noNamespace.*;
public class createXml {
 public static void main(String args[]){
  File out=new File("src/out.xml");
  Calendar date=Calendar.getInstance();
  date.setTime(new Date());
  
  AutomobilePolicyDocument autoPolicyDoc=AutomobilePolicyDocument.Factory.newInstance();
  autoPolicyDoc.addNewAutomobilePolicy();
  AutomobilePolicyDocument.AutomobilePolicy autoPolicyElement=autoPolicyDoc.getAutomobilePolicy();
  
  autoPolicyElement.setInsuranceDate(date);
  
  autoPolicyElement.addNewInsuredVehicle();
  InsuredVehicle insuredVehile=InsuredVehicle.Factory.newInstance();
  insuredVehile.setYearOfManufacture("2011");
  insuredVehile.setMake("XUPT");
  insuredVehile.setModel("Optra");
  insuredVehile.setPrice(1234);
  autoPolicyElement.setInsuredVehicle(insuredVehile);
  
  autoPolicyElement.addNewLiabilityCoverage();
  LiabilityCoverage liabilityCoverage=LiabilityCoverage.Factory.newInstance();
  liabilityCoverage.setCoverageLimit(123456);
  liabilityCoverage.setCoveragePremium(654321);
  autoPolicyElement.setLiabilityCoverage(liabilityCoverage);
  
  autoPolicyElement.addNewPolicyholderInformation();
  PolicyholderInformation policyholderInformation=PolicyholderInformation.Factory.newInstance();
  policyholderInformation.setName("Adam");
  policyholderInformation.setSocialSecurityNumber("1GBL7D1G3GV100770");
  policyholderInformation.setAddress("Bell's Tower");
  autoPolicyElement.setPolicyholderInformation(policyholderInformation);
  
  autoPolicyElement.addNewThirdPartyCoverage();
  ThirdPartyCoverage thirdPartyCoverage=ThirdPartyCoverage.Factory.newInstance();
  thirdPartyCoverage.setCoverageLimit(2222);
  thirdPartyCoverage.setCoveragePremium(3333);
  autoPolicyElement.setThirdPartyCoverage(thirdPartyCoverage);
  
  
  autoPolicyDoc.documentProperties().setEncoding("UTF-8");
  autoPolicyDoc.documentProperties().setVersion("1.0");
  
  System.out.print(autoPolicyDoc.xmlText(new XmlOptions().setSavePrettyPrint()));
  try{
   autoPolicyDoc.save(out, new XmlOptions().setSavePrettyPrint());
  }catch(Exception e){
   e.printStackTrace();
  }
 }
}


 

这样就按照指定的xsd文件生成了一个out.xml文件其内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<automobile-policy>
  <insurance-date>2011-10-24T16:03:18.546+08:00</insurance-date>
  <policyholder-information>
    <name>Adam</name>
    <social-security-number>1GBL7D1G3GV100770</social-security-number>
    <address>Bell's Tower</address>
  </policyholder-information>
  <insured-vehicle>
    <year-of-manufacture>2011</year-of-manufacture>
    <make>XUPT</make>
    <model>Optra</model>
    <price>1234.0</price>
  </insured-vehicle>
  <liability-coverage>
    <coverage-limit>123456.0</coverage-limit>
    <coverage-premium>654321.0</coverage-premium>
  </liability-coverage>
  <third-party-coverage>
    <coverage-limit>2222.0</coverage-limit>
    <coverage-premium>3333.0</coverage-premium>
  </third-party-coverage>
</automobile-policy>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值