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

