In the previous version of castor i was using (0.9.5) if you had an element with a type that did not exist in the schema then the source generation would fail but with 1.1 it simply makes the type a java.lang.Object and procedes happily.
using the following schema (note that there is no declaration of type 'blahblahblah'):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="HOST">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="ID">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="PASSWORD">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:complexType name="FLOWER">
<xs:sequence>
<xs:element name="HOST" type="HOST"/>
<xs:element name="ID" type="blahblahblah" />
<xs:element name="PASSWORD" type="PASSWORD"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
with castor 0.9.x you get the following error:
[javac] FLOWER.java:47: cannot find symbol
[javac] symbol : class ID
[javac] location: package mypackage.common
[javac] private mypacakge.common.ID _ID;
[javac] ^
but with castor 1.1 it happily builds the source setting the property 'ID' to a java.lang.Object in the source file.
attached is the bug template where i've only touched files in srcgen-bug.zip\bugs\xml\srcgen\template\ (i replaced the schema, and added some settings to the SourceGenerator object.
It looks like this is related to an oldish (BugZilla) bug with the number of 1471, where the following code is executed within MemberFactory.createFieldInfo() is the xsType is null.
if (xsType == null) {
{ case Structure.ATTRIBUTE: case Structure.ELEMENT: xsType = new XSClass(SGTypes.OBJECT); break; default: // probably a model-group break; }//-- patch for bug 1471 (No XMLType specified)
//-- treat unspecified type as anyType
switch (component.getAnnotated().getStructureType())
}
Which makes me wonder why we get that far at all ..
.