I have a JAXB schema where one class contains a list of another class. The schema is given below.
But whenever I create the java classes from this schema , the method is not using generics so I have to use the casts just like pre java 5 way.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:common="glodas.research">
<xs:import namespace="glodas.research" schemaLocation="../common.xsd" />
<!-- Dashboard Level -->
<xs:complexType name="DashboardStatType">
<xs:complexContent>
<xs:extension base="common:IndustryRegionType">
<xs:sequence>
<xs:element name="ModuleStat" type="ModuleStatType"
minOccurs="0" maxOccurs="unbounded" />
<xs:element name="BitsCount" type="BitsCount"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="AgeLimitViolation" type="AgeLimitViolation"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ModuleViolation" type="ModuleViolation"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="BrCode" type="xs:string" />
<xs:attribute name="RegionDescription" type="xs:string" />
<xs:attribute name="AverageAgeOfBits" type="xs:int" use="required"/>
<xs:attribute name="NewestBitDate" type="xs:date" use="required"/>
<xs:attribute name="OldestBitDate" type="xs:date" use="required"/>
<xs:attribute name="ChapterCount" type="xs:int" use="required"/>
<xs:attribute name="TriggerRulesCount" type="xs:int" use="required"/>
<xs:attribute name="TriggerEventsCount" type="xs:int" use="required"/>
<xs:attribute name="UnpublishedCount" type="xs:int" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Module Level -->
<xs:complexType name="ModuleStatType">
<xs:sequence>
<xs:element name="ChapterStat" type="ChapterStatType"
minOccurs="0" maxOccurs="unbounded" />
<xs:element name="BitsCount" type="BitsCount"
minOccurs="0" maxOccurs="unbounded" />
<xs:element name="AgeLimitViolation" type="AgeLimitViolation"
minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ChapterCountViolation" type="ChapterCountViolation"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="ModuleDescription" type="xs:string" />
<xs:attribute name="ModuleNumber" type="xs:int" use="required" />
<xs:attribute name="AverageAgeOfBits" type="xs:int" use="required"/>
<xs:attribute name="NewestBitDate" type="xs:date" use="required"/>
<xs:attribute name="OldestBitDate" type="xs:date" use="required"/>
<xs:attribute name="TriggerRulesCount" type="xs:int" use="required"/>
<xs:attribute name="TriggerEventsCount" type="xs:int" use="required"/>
<xs:attribute name="UnpublishedCount" type="xs:int" use="required"/>
</xs:complexType>
<!-- Chapter Level -->
<xs:complexType name="ChapterStatType">
<xs:sequence>
<xs:element name="BitStat" type="BitStatType" minOccurs="0"
maxOccurs="unbounded" />
<xs:element name="BitsCount" type="BitsCount"
minOccurs="0" maxOccurs="unbounded" />
<xs:element name="AgeLimitViolation" type="AgeLimitViolation"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="ChapterId" type="xs:int" use="required"/>
<xs:attribute name="ChapterTitle" type="xs:string" use="required"/>
<xs:attribute name="AverageAgeOfBits" type="xs:int" use="required"/>
<xs:attribute name="NewestBitDate" type="xs:date" use="required"/>
<xs:attribute name="OldestBitDate" type="xs:date" use="required"/>
<xs:attribute name="TriggerRulesCount" type="xs:int" use="required"/>
<xs:attribute name="TriggerEventsCount" type="xs:int" use="required"/>
</xs:complexType>
<!-- Bit Level -->
<xs:complexType name="BitStatType">
<xs:sequence>
<xs:element name="BitStat" type="BitStatType" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="BitAge" type="BitAge" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="WiId" type="xs:int" use="required"/>
<xs:attribute name="Title" type="xs:string" use="required"/>
<xs:attribute name="TriggerRulesCount" type="xs:int" use="required"/>
<xs:attribute name="TriggerEventsCount" type="xs:int" use="required"/>
<xs:attribute name="LastPublishedDate" type="xs:date" use="required"/>
</xs:complexType>
<xs:complexType name="ValidationMessage">
<xs:attribute name="Text" type="xs:string" use="required"/>
<xs:attribute name="Severity" type="xs:int" use="optional"/>
</xs:complexType>
<xs:complexType name="BitAge">
<xs:sequence>
<xs:element name="ValidationMessage" type="ValidationMessage"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Age" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="BitsCount">
<xs:sequence>
<xs:element name="ValidationMessage" type="ValidationMessage"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Count" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="AgeLimitViolation">
<xs:sequence>
<xs:element name="ValidationMessage" type="ValidationMessage"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Count" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="ChapterCountViolation">
<xs:sequence>
<xs:element name="ValidationMessage" type="ValidationMessage"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Count" type="xs:int" use="required" />
</xs:complexType>
<xs:complexType name="ModuleViolation">
<xs:sequence>
<xs:element name="ValidationMessage" type="ValidationMessage"
minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Count" type="xs:int" use="required" />
</xs:complexType>
<xs:element name="GetDashboardMonitorResponse">
<xs:annotation>
<xs:documentation>Response for DashboardMonitor.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element type="DashboardStatType" name="DashboardStat" minOccurs="1"
maxOccurs="unbounded"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
… The method is generated like this
java.util.List getBitAge();
I want the java method to be generated like this
java.util.List<BitAge> getBitAge();
Can you provide more details about your XML schema? I have attempted to reproduce you issue with the following
nov30.xsd
I made a smaill change to the XML schema you provided since I do not have the source for common.xsd:
XJC Call
BitStatType
The resulting list property still uses generics as expected: