使用JAXB限制从XML Schema生成Java类

时间:2013-07-11 14:20:43

标签: xml-parsing jaxb xsd xjc

通过使用命令行工具'xjc',可以从现有的XML Schema创建Java类。

我之前尝试过一个简单的XML Schema:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name="employee" type="employee"/>

 <xs:complexType name="employee">
  <xs:sequence>
    <xs:element name="name" type="xs:string" minOccurs="0"/>
    <xs:element name="salary" type="xs:double"/>
    <xs:element name="designation" type="xs:string" minOccurs="0"/>
    <xs:element name="address" type="address" minOccurs="0"/>
  </xs:sequence>
  <xs:attribute name="id" type="xs:int" use="required"/>
 </xs:complexType>

 <xs:complexType name="address">
  <xs:sequence>
    <xs:element name="city" type="xs:string" minOccurs="0"/>
    <xs:element name="line1" type="xs:string" minOccurs="0"/>
    <xs:element name="line2" type="xs:string" minOccurs="0"/>
    <xs:element name="state" type="xs:string" minOccurs="0"/>
    <xs:element name="zipcode" type="xs:long"/>
  </xs:sequence>
 </xs:complexType> 
</xs:schema>

但是当我添加一个有一些限制的定义时,这些限制将被忽略。例如:

<xs:element name="Temperature" type="myTemperature"/>
<xs:simpleType name="myTemperature">
 <xs:restriction base="xs:double">
  <xs:minExclusive value="-273.15"/>
 </xs:restriction>
</xs:simpleType>

<xs:element name="age">
 <xs:simpleType>
  <xs:restriction base="xs:integer">
   <xs:minInclusive value="0"/>
   <xs:maxInclusive value="100"/>
  </xs:restriction>
 </xs:simpleType>
</xs:element> 

将忽略minInclusive,maxInclusive,maxLength,totalDigits等所有限制。有没有办法在XML Schema中创建Java类时包含这些限制?

0 个答案:

没有答案