Actually, didn't know about this .. ;-). Which indicates that this should be documented somewhere ... e.g. XML HOW-TOs. And on top of that, maybe a setParser(SAXParser) method should be added to Unmarshaller.
Werner Stephen Bash wrote: > Werner and Saladin- > > Sorry to jump in at the end here, but there might be an easy way > around this issue. If all you need is a custom configured parser you > can instantiate your own parser and have Castor use it: > > 1) Instantiate/configure a SAX parser (specify the > external-schema-location feature) > 2) Instantiate/configure an Unmarshaller instance > 3) Call createHandler() on the Unmarshaller object to get an > UnmarshalHandler which implements ContentHandler and ErrorHandler > 4) Set the parser's content handler to the UnmarshalHandler object > 5) Set the parser's error handler to the UnmarshalHandler object > 6) Parse the document > 7) Call getObject on the UnmarshalHandler to retrieve the root object > > Feel free to ignore me if I've completely missed the mark, but I hope > that helps. > > Stephen > > > On 3/14/07, Werner Guttmann <[EMAIL PROTECTED]> wrote: >> Okay, I don't think that what you want to achieve is possible without >> a small code change to the Unmarshaller. I just had a look at the JAXP >> API, and it looks like I have to provide you with an option to specify >> the >> >> http://apache.org/xml/properties/schema/external-schemaLocation" >> >> feature of the JAXP Parser instance used internally by Castor. If this >> is an option for you, please create a new Jira issue at >> >> http://jira.codehaus.org/browse/CASTOR >> >> and attach the relevant fragments of this email conversation. >> >> Werner >> >> > -----Ursprüngliche Nachricht----- >> > Von: S. Sharif [mailto:[EMAIL PROTECTED] >> > Gesendet: Dienstag, 13. März 2007 21:00 >> > An: [email protected] >> > Betreff: Re: AW: AW: [castor-user] How to do XSD validation when the >> code >> > was not generated by the Castor code generator >> > >> > >> > Yes it has a namespace declaration. The following is >> > an example of how the input xml looks like: >> > >> > <?xml version="1.0" encoding="UTF-8"?> >> > <Document >> > xmlns="http://www.nproj.com/japps/AcceptRunRequest"> >> > <CRITERIAINPUT_LIST> >> > <CRITERIAINPUT> >> > <CRITERIAID>1</CRITERIAID> >> > </CRITERIAINPUT> >> > </CRITERIAINPUT_LIST> >> > >> > [ ... remaining xml was omitted for brevity ...] >> > >> > </Document> >> > >> > >> > In my project each Java service has one XSD schema >> > file for the input xml that it is expecting. So the >> > above is an example for one input xml for one >> > particular service. The input xml for the other Java >> > services have a very similar structure with the >> > namespace decalred in the root tag as in the example >> > above. >> > -Saladin >> > >> > --- Werner Guttmann <[EMAIL PROTECTED]> wrote: >> > >> > > Well, let's do a few things first. Can you show me >> > > what the XML that >> > > needs to be validated looks like ? Does it have >> > > namespace declarations, >> > > etc ? >> > > >> > > Werner >> > > >> > > S. Sharif wrote: >> > > > I am not sure I understand what you mean. Do you >> > > have >> > > > any basic or short code example that can give me >> > > the >> > > > basic idea of what you mean? >> > > > Thanks. >> > > > >> > > > >> > > > --- Werner Guttmann <[EMAIL PROTECTED]> >> > > > wrote: >> > > > >> > > >> You can always use an EntityResolver and repoint >> > > a >> > > >> request for a 'global' XML schema identifier to >> > > any >> > > >> file or InputSource convenient to you. >> > > >> >> > > >> Werner >> > > >> >> > > >>> -----Ursprüngliche Nachricht----- >> > > >>> Von: S. Sharif [mailto:[EMAIL PROTECTED] >> > > >>> Gesendet: Dienstag, 13. März 2007 17:27 >> > > >>> An: [email protected] >> > > >>> Betreff: Re: AW: [castor-user] How to do XSD >> > > >> validation when the code was >> > > >>> not generated by the Castor code generator >> > > >>> >> > > >>> >> > > >>> Thank for the link. But the problem is that in >> > > >> the >> > > >>> example it validates an xml document against the >> > > >> XSD >> > > >>> file specified in xsi:schemaLocation attribute >> > > of >> > > >> the >> > > >>> root xml tag. >> > > >>> >> > > >>> The xml documents that get submitted to my Java >> > > >>> service do not have the XSD schemaLocation >> > > >> attribute >> > > >>> specified. When I receive the XML document, my >> > > >> Java >> > > >>> code then needs to perform XSD validation based >> > > on >> > > >> a >> > > >>> predefined path for the XSD file. So I need to >> > > >> set >> > > >>> the XSD file location programmatically, if you >> > > >> know >> > > >>> what i mean. >> > > >>> >> > > >>> I mean I need to do something like this: >> > > >>> >> > > >>> >> > > >>> Mapping myMap = new Mapping(); >> > > >>> myMap.loadMapping( "po1Map.xml" ); >> > > >>> >> > > >>> Unmarshaller um1 = new Unmarshaller( myMap ); >> > > >>> >> > > um1.setSchemaLocation("http://www.example.com/PO1 >> > > >>> /project/schema/po1.xsd"); >> > > >>> PurchaseOrder po1 = >> > > >> (PurchaseOrder)um1.unmarshal(new >> > > >>> FileReader(filename)); >> > > >>> >> > > >>> >> > > >>> Note: this assumes that the xsd file po1.xsd is >> > > >>> located in the /project/schema/ folder. >> > > >>> >> > > >>> >> > > >>> The problem is that there is no >> > > >> setSchemaLocation() >> > > >>> method in the Unmarshaller class. So is there >> > > any >> > > >>> other way to do this? >> > > >>> >> > > >>> Thanks. >> > > >>> >> > > >>> >> > > >>> --- Werner Guttmann <[EMAIL PROTECTED]> >> > > >>> wrote: >> > > >>> >> > > > >> > > >> > http://www.castor.org/how-to-enable-xml-validation.html >> > > >>>> should provide you with answers to your >> > > >> question. >> > > >>>> Werner >> > > >>>> >> > > >>>>> -----Ursprüngliche Nachricht----- >> > > >>>>> Von: S. Sharif [mailto:[EMAIL PROTECTED] >> > > >>>>> Gesendet: Dienstag, 13. März 2007 02:23 >> > > >>>>> An: [email protected] >> > > >>>>> Betreff: [castor-user] How to do XSD >> > > >> validation >> > > >>>> when the code was not >> > > >>>>> generated by the Castor code generator >> > > >>>>> >> > > >>>>> >> > > >>>>> Hi, >> > > >>>>> >> > > >>>>> I am not using the Castor code generator to >> > > >>>> generate >> > > >>>>> my Java classes. Instead I have my own java >> > > >>>> classes >> > > >>>>> that I am marshalling and unmarshalling >> > > >> to/from >> > > >>>> them >> > > >>>>> using a Castor mapping file. >> > > >>>>> >> > > >>>>> But now I am faced with the problem of how to >> > > >>>> perform >> > > >>>>> the XSD validation. I know that the Castor >> > > >> code >> > > >>>>> generator generates each Java class with the >> > > >>>> following >> > > >>>>> code: >> > > >>>>> >> > > >>>>> /** >> > > >>>>> * >> > > >>>>> * >> > > >>>>> * @throws >> > > >>>> org.exolab.castor.xml.ValidationException >> > > >>>>> if this >> > > >>>>> * object is an invalid instance according to >> > > >> the >> > > >>>>> schema >> > > >>>>> */ >> > > >>>>> public void validate() >> > > >>>>> throws >> > > >> org.exolab.castor.xml.ValidationException { >> > > >>>>> org.exolab.castor.xml.Validator validator >> > > >> = >> > > >>>> new >> > > >>>>> org.exolab.castor.xml.Validator(); >> > > >>>>> validator.validate(this); >> > > >>>>> } >> > > >>>>> >> > > >>>>> >> > > >>>>> and that this code performs the XSD validation >> > > >> on >> > > >>>> the >> > > >>>>> Java object using the ClassDescriptors and >> > > >>>>> FieldDescriptors that were generated for that >> > > >>>> object. >> > > >>>>> But now how do I perform XSD validation when I >> > > >>>> have my >> > > >>>>> own Java classes (that were not generated by >> > > >>>> Castor). >> > > >>>>> Is there some Castor API that I can call and >> > > >> pass >> > > >>>> to >> > > >>>>> it the path to the XSD file, the Java object >> > > >> that >> > > >>>> I >> > > >>>>> want to validate, and also the Castor mapping >> > > >>>> file, >> > > >>>>> and then it performs the validation? >> > > >>>>> Or how should I go about doing this? >> > > >>>>> >> > > >>>>> Thanks. >> > > >>>>> >> > > >>>>> -Saladin >> > > >>>>> >> > > >>>>> >> > > >>>>> >> > > > >> > > >> > ********************************************************** >> > > >>>>> * Saladin Sharif >> > > >>>>> * e-mail: [EMAIL PROTECTED] >> > > >>>>> * Visit homepage @ >> > > >>>> http://gaia.ecs.csus.edu/~sharifs >> > > > >> > > >> > ********************************************************** >> > > >>>>> >> > > >>>>> >> > > >>>>> >> > > > >> > > >> > >> __________________________________________________________________________ >> >> > > >>>>> __________ >> > > >>>>> Don't pick lemons. >> > > >>>>> See all the new 2007 cars at Yahoo! Autos. >> > > >>>>> http://autos.yahoo.com/new_cars.html >> > > >>>>> >> > > >>>>> >> > > > >> > > >> > --------------------------------------------------------------------- >> > > >>>>> To unsubscribe from this list please visit: >> > > >>>>> >> > > >>>>> http://xircles.codehaus.org/manage_email >> > > >>>> >> > > >>>> >> > > > >> > > >> > --------------------------------------------------------------------- >> > > >>>> To unsubscribe from this list please visit: >> > > >>>> >> > > >>>> http://xircles.codehaus.org/manage_email >> > > >>>> >> > > >>>> >> > > >>> >> > > >>> >> > > >>> >> > > >>> >> > > > >> > > >> > >> __________________________________________________________________________ >> >> > > >>> __________ >> > > >>> Expecting? Get great news right away with email >> > > >> Auto-Check. >> > > >>> Try the Yahoo! Mail Beta. >> > > >>> >> > > > >> > > >> > http://advision.webevents.yahoo.com/mailbeta/newmail_tools.html >> > > >>> >> > > > >> > > >> > --------------------------------------------------------------------- >> > > >>> To unsubscribe from this list please visit: >> > > >>> >> > > >>> http://xircles.codehaus.org/manage_email >> > > >> >> > > >> >> > > > >> > > >> > --------------------------------------------------------------------- >> > > >> To unsubscribe from this list please visit: >> > > >> >> > > >> http://xircles.codehaus.org/manage_email >> > > >> >> > > >> >> > > > >> > > > >> > > > >> > > > >> > > > >> > > >> > >> __________________________________________________________________________ >> >> > __________ >> > > > Finding fabulous fares is fun. >> > > > Let Yahoo! FareChase search your favorite travel >> > > sites to find flight and hotel bargains. >> > > > http://farechase.yahoo.com/promo-generic-14795097 >> > > > >> > > > >> > > >> > --------------------------------------------------------------------- >> > > > To unsubscribe from this list please visit: >> > > > >> > > > http://xircles.codehaus.org/manage_email >> > > > >> > > >> > > >> > > >> > --------------------------------------------------------------------- >> > > To unsubscribe from this list please visit: >> > > >> > > http://xircles.codehaus.org/manage_email >> > > >> > > >> > >> > >> > >> > >> > >> __________________________________________________________________________ >> >> > __________ >> > The fish are biting. >> > Get more visitors on your site using Yahoo! Search Marketing. >> > http://searchmarketing.yahoo.com/arp/sponsoredsearch_v2.php >> > >> > --------------------------------------------------------------------- >> > To unsubscribe from this list please visit: >> > >> > http://xircles.codehaus.org/manage_email >> >> >> --------------------------------------------------------------------- >> To unsubscribe from this list please visit: >> >> http://xircles.codehaus.org/manage_email >> >> --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email

