• (转) 使用jdk的xjc命令由schema文件生成相应的实体类


    背景:在webservice的开发过程中涉及到这一知识点,又必要来学习一下。

    1 根据编写的schema来生成对应的java实体

    1.1 实战

    xcj命令有schema文件生成Java实体类

    1、使用方法
       xjc fileName.xsd -d 生成java实体类的目录 -p 生成的包名

    2. eg: xjc catalog.xsd -d d: est -p com.xjc.bean

    xjc szfs.tws.biz.info.billchange.xsd -d E:Work直连接口改造文档接口直连接口schemainfo -p szfs.tws.biz.entity.info.billchange

    xjc szfs.tws.biz.info.billchange.xsd:

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="szfs.tws.info.billchange"
        targetNamespace="szfs.tws.info.billchange" elementFormDefault="qualified">
        <xs:element name="BillChange" type="BillChange" />
        <xs:complexType name="BillChange">
            <xs:sequence>
                <xs:element name="subdate" type="Exact8Text"/>
                <xs:element name="outid" type="OutId"/>
                <xs:element name="chgtype" type="chgtypeEnum" />
                <xs:element name="corpno" type="OrgCode" />
                <xs:element name="billperiod" type="Exact6NumericText" minOccurs="0"/>
                
                <xs:element name="billno" type="Max32Text" />
                <xs:element name="feeitem" type="Exact5Text" />
                <xs:element name="currency" type="Exact3Text" />
                <xs:element name="billmoney" type="Max13MoneyGt0Text" minOccurs="0"/>
                <xs:element name="feemoney" type="Max13MoneyGe0Text" minOccurs="0"/>
                
                <xs:element name="effectdate" type="Exact8Text" />
                <xs:element name="duedate" type="Exact8Text" />
                <xs:element name="custno" type="Max32Text" minOccurs="0"/>
                <xs:element name="custname" type="Max60Text" minOccurs="0"/>
                <xs:element name="tel" type="Max30Text" minOccurs="0"/>
                
                <xs:element name="memo" type="Max127Text" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
        
        <xs:simpleType name="OutId">
            <xs:restriction base="xs:string">
                <xs:minLength value="1" />
                <xs:maxLength value="64"/>
                <xs:pattern value="[a-zA-Z0-9_-]{1,64}"/>
            </xs:restriction>
        </xs:simpleType>
        
        
        <xs:simpleType name="Exact6NumericText">
            <xs:restriction base="xs:string">
                <xs:minLength value="6"/>
                <xs:maxLength value="6"/>
                <xs:pattern value="[0-9]{1,6}"/>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="OrgCode">
            <xs:restriction base="xs:string">
                <xs:minLength value="8" />
                <xs:maxLength value="14"/>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="Exact3Text">
            <xs:restriction base="xs:string">
                <xs:minLength value="3"/>
                <xs:maxLength value="3"/>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="Exact5Text">
            <xs:restriction base="xs:string">
                <xs:minLength value="5"/>
                <xs:maxLength value="5"/>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="Exact8Text">
            <xs:restriction base="xs:string">
                <xs:minLength value="8"/>
                <xs:maxLength value="8"/>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="Max13MoneyGe0Text">
            <xs:restriction base="xs:decimal">
                <xs:fractionDigits value="2" />
                <xs:totalDigits value="15" />
                <xs:minInclusive value="0" />
                <xs:pattern value="[0-9]{1,13}(.[0-9]{1,2})?"></xs:pattern>
            </xs:restriction>
        </xs:simpleType>    
    
        <xs:simpleType name="Max13MoneyGt0Text">
            <xs:restriction base="xs:decimal">
                <xs:fractionDigits value="2" />
                <xs:totalDigits value="15" />
                <xs:minExclusive value="0" />
                <xs:pattern value="[0-9]{1,13}(.[0-9]{1,2})?"></xs:pattern>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="chgtypeEnum">
            <xs:restriction base="xs:string">
                <xs:enumeration value="0"/>
                <xs:enumeration value="1"/>
                <xs:enumeration value="2"/>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="Max8NumericText">
            <xs:restriction base="xs:string">
                <xs:minLength value="1"/>
                <xs:maxLength value="8"/>
                <xs:pattern value="[0-9]{1,8}"/>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="Max6NumericText">
            <xs:restriction base="xs:string">
                <xs:minLength value="1"/>
                <xs:maxLength value="6"/>
                <xs:pattern value="[0-9]{1,6}"/>
            </xs:restriction>
        </xs:simpleType>    
    
        <xs:simpleType name="Max30Text">
            <xs:restriction base="xs:string">
                <xs:minLength value="1"/>
                <xs:maxLength value="30"/>
                <xs:pattern value="[0-9a-zA-Z_-]{1,30}"/>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="Max32Text">
            <xs:restriction base="xs:string">
                <xs:minLength value="1"/>
                <xs:maxLength value="32"/>
                <xs:pattern value="[a-zA-Z0-9.,()/=&apos;+?!&quot;%&amp;*&lt;&gt;;@# -_]{1,32}"/>
            </xs:restriction>
        </xs:simpleType>
        
        <xs:simpleType name="Max60Text">
            <xs:restriction base="xs:string">
                <xs:minLength value="1" />
                <xs:maxLength value="60"/>
            </xs:restriction>
        </xs:simpleType>
    
        <xs:simpleType name="Max64Text">
            <xs:restriction base="xs:string">
                <xs:minLength value="1" />
                <xs:maxLength value="64"/>
            </xs:restriction>
        </xs:simpleType>
            
        <xs:simpleType name="Max127Text">
            <xs:restriction base="xs:string">
                <xs:minLength value="1" />
                <xs:maxLength value="127"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:schema>
    View Code

    BillChange.java:

    //
    // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 
    // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
    // Any modifications to this file will be lost upon recompilation of the source schema. 
    // Generated on: 2017.07.10 at 10:35:20 AM CST 
    //
    
    
    package szfs.tws.biz.entity.info.billchange;
    
    import java.math.BigDecimal;
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlType;
    
    
    /**
     * <p>Java class for BillChange complex type.
     * 
     * <p>The following schema fragment specifies the expected content contained within this class.
     * 
     * <pre>
     * &lt;complexType name="BillChange">
     *   &lt;complexContent>
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
     *       &lt;sequence>
     *         &lt;element name="subdate" type="{szfs.tws.info.billchange}Exact8Text"/>
     *         &lt;element name="outid" type="{szfs.tws.info.billchange}OutId"/>
     *         &lt;element name="chgtype" type="{szfs.tws.info.billchange}chgtypeEnum"/>
     *         &lt;element name="corpno" type="{szfs.tws.info.billchange}OrgCode"/>
     *         &lt;element name="billperiod" type="{szfs.tws.info.billchange}Exact6NumericText" minOccurs="0"/>
     *         &lt;element name="billno" type="{szfs.tws.info.billchange}Max32Text"/>
     *         &lt;element name="feeitem" type="{szfs.tws.info.billchange}Exact5Text"/>
     *         &lt;element name="currency" type="{szfs.tws.info.billchange}Exact3Text"/>
     *         &lt;element name="billmoney" type="{szfs.tws.info.billchange}Max13MoneyGt0Text" minOccurs="0"/>
     *         &lt;element name="feemoney" type="{szfs.tws.info.billchange}Max13MoneyGe0Text" minOccurs="0"/>
     *         &lt;element name="effectdate" type="{szfs.tws.info.billchange}Exact8Text"/>
     *         &lt;element name="duedate" type="{szfs.tws.info.billchange}Exact8Text"/>
     *         &lt;element name="custno" type="{szfs.tws.info.billchange}Max32Text" minOccurs="0"/>
     *         &lt;element name="custname" type="{szfs.tws.info.billchange}Max60Text" minOccurs="0"/>
     *         &lt;element name="tel" type="{szfs.tws.info.billchange}Max30Text" minOccurs="0"/>
     *         &lt;element name="memo" type="{szfs.tws.info.billchange}Max127Text" minOccurs="0"/>
     *       &lt;/sequence>
     *     &lt;/restriction>
     *   &lt;/complexContent>
     * &lt;/complexType>
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "BillChange", propOrder = {
        "subdate",
        "outid",
        "chgtype",
        "corpno",
        "billperiod",
        "billno",
        "feeitem",
        "currency",
        "billmoney",
        "feemoney",
        "effectdate",
        "duedate",
        "custno",
        "custname",
        "tel",
        "memo"
    })
    public class BillChange {
    
        @XmlElement(required = true)
        protected String subdate;
        @XmlElement(required = true)
        protected String outid;
        @XmlElement(required = true)
        protected String chgtype;
        @XmlElement(required = true)
        protected String corpno;
        protected String billperiod;
        @XmlElement(required = true)
        protected String billno;
        @XmlElement(required = true)
        protected String feeitem;
        @XmlElement(required = true)
        protected String currency;
        protected BigDecimal billmoney;
        protected BigDecimal feemoney;
        @XmlElement(required = true)
        protected String effectdate;
        @XmlElement(required = true)
        protected String duedate;
        protected String custno;
        protected String custname;
        protected String tel;
        protected String memo;
    
       //省略get/set

    1.2 扩展

    首先确保计算机已经安装了jdk,且在环境变量中配置了jdk路径。

    我的计算机安装的是1.7,就以这个为例吧!

    1.进入dos窗口

    1.指定某一个xsd文件生成指定名称的Java

    进入xsd文件所在目录,我的在D盘,所以我 D:进入D盘

    然后开始执行下面语法(xxxxx.xsd 为要生成的xsd文件 xxxxx为目录)

    xjc xxxxx.xsd -p xxxxx.bean;

    2.将所有的xsd文件生成,并指定生成目录

    xjc *.xsd -p com.cpp.interconnection.bean

    然后完毕后,目录和类已经全部生成,大功搞成。

    1

  • 相关阅读:
    checkbox radio select 选中总结
    vue-cli3总结
    数组总结
    Object 总结
    ajax总结
    canvas
    移动端事件
    微服务架构 SpringBoot(一)
    spring+activemq实战之配置监听多队列实现不同队列消息消费
    Integer 数值比较
  • 原文地址:https://www.cnblogs.com/lixuwu/p/7144712.html
Copyright © 2020-2023  润新知