Hi Tim, You do create your own reader and do all the configuration as you have done below and then you can do the following:
UnmarshalHandler handler = myUnmarshaller.createHandler(); This will return a DocumentHandler which can then be passed to the parser/reader: parser.setDocumentHandler(handler); If you need to use a ContentHandler instead of a DocumentHandler you can do: reader.setContentHandler(myUnmarshaller.getContentHandler(handler)); Then once you finish you parsing... reader.parse(inputSource); ... You can get the object that was unmarshalled by the following: Object myObject = handler.getObject(); Hope that helps, --Keith "Bardzil, Timothy J (Timothy)" wrote: > > Keith, > > Hmm... So this will tell the SAX parser to use validation but I need some way to > tell the parser where the schema lives. All I have in my XML document is a > namespace. This is how I currently do it using a XMLReader. > > XMLReader reader = XMLReaderFactory.createXMLReader(); > reader.setFeature("http://xml.org/sax/features/validation", true); > reader.setFeature("http://apache.org/xml/features/validation/schema", true); > reader.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation", > "http://avaya.com/namespace" > + > getClass().getClassLoader().getResource("name-of-schema-file.xsd").toString());' > > It appears the features can be configured via the castor.properties file. In fact > it looks like the first validation feature is added by default. > > However, the setting of the property is the problem. This mapping of a namespace > URI to a schema location URI needs to happen at runtime. So I can't specify this in > a properties file. What I really need is a what to get a handle to the SAXParser / > XMLReader instance that will be used by the unmarshaller. > > Something like: > > SAXParser parser = unmarshaller.getParser(); > XMLReader reader = parser.getXMLReader(); > reader.setProperty(...); // same as above > > then call > > Object obj = unmarshaller.unmarshal(...) > > Please let me know if I'm way off here but I can't figure out any other way to do it. > > Thanks, > Tim > > -----Original Message----- > From: Keith Visco [mailto:[EMAIL PROTECTED] > Sent: Tuesday, June 24, 2003 12:52 PM > To: [EMAIL PROTECTED] > Subject: Re: [castor-dev] Unmarshalling - XML schema validation > > Hi Tim, > > It should work properly. Try setting the parser validation property in > the castor.properties file. > > --Keith > > "Bardzil, Timothy J (Timothy)" wrote: > > > > I am attempting to unmarshall and XML document that is defined by an XML schema. > > I have chosen to use a mapping file rather than code generated directly from the > > schema for a number of reasons that I won't get into. However, I would like to > > use the schema for validation purposes when unmarshalling the document into > > objects. Is this possible? > > > > I can currently do this with a regular SAX parser by setting the > > http://apache.org/xml/properties/schema/external-schemaLocation property on the > > underlying XMLReader. I believe that Castor uses SAX so would something similar > > work? > > > > Thanks, > > Tim Bardzil > > > > ----------------------------------------------------------- > > If you wish to unsubscribe from this mailing, send mail to > > [EMAIL PROTECTED] with a subject of: > > unsubscribe castor-dev > > ----------------------------------------------------------- > If you wish to unsubscribe from this mailing, send mail to > [EMAIL PROTECTED] with a subject of: > unsubscribe castor-dev > > ----------------------------------------------------------- > If you wish to unsubscribe from this mailing, send mail to > [EMAIL PROTECTED] with a subject of: > unsubscribe castor-dev ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev