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

Reply via email to