JAX-WS - 通過xjc命令把Schema生成Java
一、說明
1、使用示例
D:\Works\WebServices\TestXml\src>xjc -d D:\Works\WebServices\TestXml\src -verbose user.xsd
2、常用引數
-d dirName : 指定生成的檔案的存放路徑
-p pkgName : 指定目標包
-xmlschema : 指定輸入的是一個Schema文件(預設)
-verbose : 指定是否顯示生成過程中的訊息
schemaFile : 指定需要轉換的Schema文件
二、示例
1、編寫user.xsd如下:
<?xml version="1.0" encoding="UTF-8"?>
<!--
xmlns:xs="http://www.w3.org/2001/XMLSchema" :schema必須有的名稱空間,這裡別名為xs
targetNamespace="http://www.xilen.com/user" :當前schema的名稱空間
xmlns:tns="http://www.xilen.com/user" :引入的名稱空間,這裡表示引入當前這個schema,這裡別名為tns
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://www.xilen.com/user" xmlns:tns="http://www.xilen.com/user">
<xs:element name="user" type="tns:userType"/> <!-- 定義根元素user -->
<xs:complexType name="userType"> <!-- 定義user的資料型別 -->
<xs:sequence>
<xs:element name="name" type="tns:nameType"/> <!-- 定義user的name子元素,資料型別引用nameType的定義 -->
<xs:element name="age" type="tns:ageType" /> <!-- 定義user的age元素,資料型別引用ageType的定義 -->
<xs:element name="sex" type="tns:sexType" /> <!-- 定義user的sex子元素,資料型別引用sexType的定義 -->
<xs:element name="roles" type="tns:rolesType" /> <!-- 定義user的roles子元素,資料型別引用rolesType的定義 -->
</xs:sequence>
<xs:attribute name="id" type="tns:idType"/> <!-- 定義user的屬性,資料型別引用idType的定義 -->
</xs:complexType>
<xs:complexType name="rolesType"> <!-- 定義roles的資料型別 -->
<xs:sequence maxOccurs="unbounded" minOccurs="0"> <!-- 定義roles的子元素的容量 -->
<xs:element name="role" type="tns:roleType" /> <!-- 定義roles的子元素,資料型別引用roleType的定義 -->
</xs:sequence>
</xs:complexType>
<xs:complexType name="roleType"> <!-- 定義role的資料型別 -->
<xs:sequence>
<xs:element name="name" type="tns:nameType" /> <!-- 定義role的name子元素,資料型別重用用nameType的定義 -->
<xs:element name="note" type="tns:noteType"/> <!-- 定義role的note子元素,資料型別引用noteType的定義 -->
</xs:sequence>
<xs:attribute name="id" type="tns:idType"/><!-- 定義role的id屬性,資料型別重用IdType的定義 -->
</xs:complexType>
<xs:simpleType name="idType"> <!-- 定義ID型別 -->
<xs:restriction base="xs:int"> <!-- 定義限定條件,基於int的型別 -->
<xs:minInclusive value="1" /> <!-- 最小值 -->
<xs:maxInclusive value="999999999" /> <!-- 最大值 -->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="nameType"> <!-- 定義Name -->
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][_a-zA-Z0-9]*" /> <!-- 定義正則來規範名稱 -->
<xs:minLength value="3" /> <!-- 定義最小長度 -->
<xs:maxLength value="18" /> <!-- 定義最大長度 -->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ageType"> <!-- 定義age的型別 -->
<xs:restriction base="xs:int"> <!-- 定義限定條件,基於int的型別 -->
<xs:minInclusive value="0" /><!-- 最小包含0 -->
<xs:maxExclusive value="150" /><!-- 最大不包含150 -->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sexType"> <!-- 定義sex的型別 -->
<xs:restriction base="xs:string"> <!-- 定義限定條件,基於string的型別 -->
<xs:enumeration value="MAN" /> <!-- 定義sex為列舉,只可以選擇其一 -->
<xs:enumeration value="WOMAN" />
<xs:enumeration value="OTHER" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="noteType" > <!-- 定義note的型別 -->
<xs:restriction base="xs:string"> <!-- 定義限定條件,基於string的型別 -->
<xs:minLength value="0"/> <!-- 定義最小長度 -->
<xs:maxLength value="255"/> <!-- 定義最大長度 -->
</xs:restriction>
</xs:simpleType>
</xs:schema>
2、使用xjc命令生成java
(1)在user.xsd當前路勁下執行命令:
xjc -verbose user.xsd
(2)生成Java如下:
相關文章
- java通過schema校驗xmlJavaXML
- C#通過java生成的RSA公鑰加密和解密C#Java加密解密
- PostgreSQL_通過schema控制使用者許可權SQL
- 通過shell解析dump生成parfile
- 給客戶通過streams配置了schema級別的同步
- 通過命令curl 操作ElasticSearch指南Elasticsearch
- 通過truss命令trace問題
- 通過類名動態生成物件物件
- mysql通過ssl的方式生成祕鑰MySql
- Oracle 通過儲存過程來生成CSV檔案Oracle儲存過程
- 通過例項學習 tcpdump 命令TCP
- Maven通過命令建立web專案MavenWeb
- java通過JXL寫ExcelJavaExcel
- Kitex原始碼閱讀——腳手架程式碼是如何通過命令列生成的(二)原始碼命令列
- Kitex原始碼閱讀——腳手架程式碼是如何通過命令列生成的(一)原始碼命令列
- MySQL通過performance_schema定位未提交事務所執行的SQLMySqlORM
- Mybatis 通過掃描 自動生成別名MyBatis
- Oracle通過SQL Plus生成CSV、Excel檔案OracleSQLExcel
- windows 通過cmd命令(netsh wlan命令)連線wifiWindowsWiFi
- 通過redis的monitor命令排除故障Redis
- Roundcube 1.2.2:通過郵件執行命令
- 通過API執行AutoCAD命令來…API
- Intellij IDEA 通過資料庫生成 POJOIntelliJIdea資料庫POJO
- Linux下如何通過命令連線wifiLinuxWiFi
- 如何通過Linux 命令測量磁碟活動Linux
- docker通過commit命令提交一個映象DockerMIT
- uni-app 通過命令列編譯打包APP命令列編譯
- 通過PowerShell命令給Azure VM新增CustomScriptExtension
- Linux 通過命令列解析JSON字串Linux命令列JSON字串
- 通過top命令抓取cpu高消耗的sqlSQL
- 10g可以通過命令使index unusable!Index
- 通過JVMTI和JNI對JAVA加密JVMJava加密
- 詳解Dart中如何通過註解生成程式碼Dart
- 通過實體類生成 mysql 的建表語句MySql
- 生成帶二維碼圖片並通過微信分享
- 使用json通過telegraf生成metrics(摘自telegraf github文件)JSONGithub
- 通過shell指令碼定位效能sql和生成報告指令碼SQL
- 在Gradle中使用jaxb的xjc外掛Gradle