I'm in the processing of upgrading from Castor 1.0.5 to Castor 1.3.1 and am 
running into a problem with unmarshalling.
 
I've cut down the xsd that we are using quite substantially (it's originally a 
Microsoft Project xsd). I generate code with the attached XSD and binding file.
 
(Most of the binding file can be ignored because it refers to elements in the 
original xsd).
 
When I try to test using the simple test class (test1.java), I get errors about 
SaveVersion not being in the xml file (see errors.txt attached).
 
When I set DEBUG in log4j.xml, I see a number of errors like what is listed 
below. 
 
Can someone please explain what is happening here and what we would need to do 
to fix it? The class SaveVersionDescriptor is not being generated anywhere 
during code generation, so it doesn't seem like it's just a classpath problem.
 
We aren't doing anything with a mapping file, since we're doing code 
generation. I'm hoping that the answer isn't going to involve having to add 
additional descriptive information for each of the element in the xsd in a 
binding file or mapping file, since the file is quite large. We previously used 
Castor 1.0.5 without additional descriptive information for each element and 
did not have any trouble.
 
Thanks,
Andy
 
 
 
[DEBUG] 19:02 (XMLClassDescriptorResolverImpl.java:getDescriptor:569)
Get descriptor for: SaveVersion found: null
[DEBUG] 19:02 (AbstractResolverClassCommand.java:resolve:50)
Now in method: org.exolab.castor.xml.util.resolvers.ByDescriptorClass 
resolving: SaveVersion
[DEBUG] 19:02 (ResolveHelpers.java:loadClass:143)
Ignored problem at loading class: SaveVersionDescriptor through class loader: 
sun.misc.launcher$appclassloa...@11b86e7, exception: 
java.lang.ClassNotFoundException: SaveVersionDescriptor
[DEBUG] 19:02 (XMLClassDescriptorResolverImpl.java:addAllDescriptors:643)
Called addAllDescriptors with null or empty descriptor map
[DEBUG] 19:02 (XMLClassDescriptorResolverImpl.java:getDescriptor:569)
Get descriptor for: SaveVersion found: null
[DEBUG] 19:02 (AbstractResolverClassCommand.java:resolve:50)
Now in method: org.exolab.castor.xml.util.resolvers.ByIntrospection resolving: 
SaveVersion
[DEBUG] 19:02 (ResolveHelpers.java:loadClass:143)
Ignored problem at loading class: SaveVersion through class loader: 
sun.misc.launcher$appclassloa...@11b86e7, exception: 
java.lang.ClassNotFoundException: SaveVersion
[DEBUG] 19:02 (XMLClassDescriptorResolverImpl.java:addAllDescriptors:643)
Called addAllDescriptors with null or empty descriptor map
[DEBUG] 19:02 (XMLClassDescriptorResolverImpl.java:getDescriptor:569)
Get descriptor for: SaveVersion found: null
[DEBUG] 19:02 (XMLClassDescriptorResolverImpl.java:addDescriptor:509)
Adding class name to missing classes: SaveVersion
[DEBUG] 19:02 (UnmarshalHandler.java:startElement:2006)
unable to find FieldDescriptor for 'SaveVersion' in ClassDescriptor of Project 
- ignoring extra element.
 
                                          

Attachment: mspdi_pj14.xsd
Description: Binary data


Attachment: binding.xsd
Description: Binary data

import java.io.FileReader;
import java.io.FileWriter;
import org.apache.log4j.Logger;
import org.exolab.castor.xml.Unmarshaller;



public class Test1 {
public static void main(String[] args) {
Logger log = Logger.getLogger("Test1");

Project2010 prj = null;

try {
Unmarshaller um = new Unmarshaller(Project2010.class);
prj = (Project2010) um.unmarshal(new FileReader("Project1.xml"));

}
catch (Throwable e) {
        e.printStackTrace();
        }
}
}
org.exolab.castor.xml.MarshalException: The field '_saveVersion' (whose xml name
 is 'SaveVersion') is a required field of class 'Project2010{File: [not availabl
e]; line: 6; column: 11}
        at org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalExcept
ion(Unmarshaller.java:794)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:760)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:626)
        at Test1.main(Test1.java:16)
Caused by: ValidationException: The field '_saveVersion' (whose xml name is 'Sav
eVersion') is a required field of class 'Project2010;
   - location of error: XPATH: /Project/SaveVersion
        at org.exolab.castor.xml.FieldValidator.validate(FieldValidator.java:211
)
        at org.exolab.castor.xml.util.XMLClassDescriptorImpl.validateField(XMLCl
assDescriptorImpl.java:1050)
        at org.exolab.castor.xml.util.XMLClassDescriptorImpl.validate(XMLClassDe
scriptorImpl.java:1020)
        at org.exolab.castor.xml.Validator.validate(Validator.java:135)
        at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.ja
va:933)
        at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.ja
va:1177)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endEleme
nt(AbstractSAXParser.java:601)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(X
MLDocumentScannerImpl.java:648)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
ML11Configuration.java:807)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
ML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.
java:107)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Ab
stractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.p
arse(SAXParserImpl.java:522)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:748)
        ... 2 more
Caused by: ValidationException: The field '_saveVersion' (whose xml name is 'Sav
eVersion') is a required field of class 'Project2010;
   - location of error: XPATH: /Project/SaveVersion
        at org.exolab.castor.xml.FieldValidator.validate(FieldValidator.java:211
)
        at org.exolab.castor.xml.util.XMLClassDescriptorImpl.validateField(XMLCl
assDescriptorImpl.java:1050)
        at org.exolab.castor.xml.util.XMLClassDescriptorImpl.validate(XMLClassDe
scriptorImpl.java:1020)
        at org.exolab.castor.xml.Validator.validate(Validator.java:135)
        at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.ja
va:933)
        at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.ja
va:1177)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endEleme
nt(AbstractSAXParser.java:601)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(X
MLDocumentScannerImpl.java:648)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
ML11Configuration.java:807)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
ML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.
java:107)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Ab
stractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.p
arse(SAXParserImpl.java:522)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:748)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:626)
        at Test1.main(Test1.java:16)
Caused by: ValidationException: The field '_saveVersion' (whose xml name is 'Sav
eVersion') is a required field of class 'Project2010;
   - location of error: XPATH: /Project/SaveVersion
        at org.exolab.castor.xml.FieldValidator.validate(FieldValidator.java:211
)
        at org.exolab.castor.xml.util.XMLClassDescriptorImpl.validateField(XMLCl
assDescriptorImpl.java:1050)
        at org.exolab.castor.xml.util.XMLClassDescriptorImpl.validate(XMLClassDe
scriptorImpl.java:1020)
        at org.exolab.castor.xml.Validator.validate(Validator.java:135)
        at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.ja
va:933)
        at org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.ja
va:1177)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endEleme
nt(AbstractSAXParser.java:601)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(X
MLDocumentScannerImpl.java:648)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImp
l.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
ML11Configuration.java:807)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(X
ML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.
java:107)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Ab
stractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.p
arse(SAXParserImpl.java:522)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:748)
        at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:626)
        at Test1.main(Test1.java:16)
---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to