Hi,
I have a couple of problems with source code generation. Using
version 0.9.3.19.
1 - The following schema throws an
exception during source generation.
Schema:
<xs:complexType
name="Field19">
<xs:sequence>
<xs:element
name="c"
minOccurs="0">
<xs:simpleType>
<xs:list
itemType="EmergRadioEquip"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType
name="EmergRadioEquip">
<xs:restriction
base="xs:string">
<xs:enumeration
value="U"/>
<xs:enumeration
value="V"/>
<xs:enumeration
value="E"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Exception:
Exception in thread "main"
java.lang.IllegalArgumentException: 'null' is
n
at
org.exolab.javasource.JClass.<init>(Unknown
Source)
at
org.exolab.castor.builder.TypeConversion.convertType(Unknown
So
at
org.exolab.castor.builder.MemberFactory.createFieldInfo(Unknown
at
org.exolab.castor.builder.SourceFactory.processContentModel(Unk
at
org.exolab.castor.builder.SourceFactory.processContentModel(Unk
at
org.exolab.castor.builder.SourceFactory.processComplexType(Unkn
at
org.exolab.castor.builder.SourceFactory.createSourceCode(Unknow
at
org.exolab.castor.builder.SourceGenerator.processComplexType(Un
at
org.exolab.castor.builder.SourceGenerator.createClasses(Unknown
at
org.exolab.castor.builder.SourceGenerator.generateSource(Unknow
at
org.exolab.castor.builder.SourceGenerator.generateSource(Unknow
at
org.exolab.castor.builder.SourceGenerator.generateSource(Unknow
at org.exolab.castor.builder.SourceGenerator.main(Unknown
Source)
2 - The following schema generates classes for 'Test' and 'VFR' but
not 'Level' and 'LevelOrVFR'. No error is reported during generation.
javaclassmapping=type.
Compilation fails because class 'Test' has references to the
non-existent class 'LevelOrVFR'.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="
http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:complexType
name="Test">
<xs:sequence>
<xs:element
name="level"
type="LevelOrVFR"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType
name="Level">
<xs:restriction
base="xs:string">
<xs:pattern
value="(A|F)[0-9]{3}"/>
<xs:pattern
value="(S|M)[0-9]{4}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType
name="VFR">
<xs:restriction
base="xs:string">
<xs:enumeration
value="VFR"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType
name="LevelOrVFR">
<xs:union memberTypes="Level
VFR"/>
</xs:simpleType>
</xs:schema>
Thanks,
Paul