Hi Werner, I am sorry and it seems I haven't conveyed my idea well.
This is what I was trying to do. The Java2WSDL tool was looking at a set of java classes and building the memory model using Apache WS Commons XmlSchema model. I was trying to use the same logic, that were written in that project, and build the object model using classes found in org.exolab.castor.schema package. That is why I asked whether there are samples on using Castor schema model. Sorry if my poor english conveyed something else. This is how I will approach the problem as you wanted see a design. I will use JAM library to look at a set of java classes, and build the schema model (no I won't write the schema writer). My first phase is to ignore all the annotations for the time being and only look at classes, methods and the parameters. Every class will be a complex type in the schema. All the parameters and the faults of the methods will be processed accordingly to generate schema for them too. So only the bean classes will get Complex types and the others will be simple types. The second phase will be to incorporate JAXB2 annotations to this process to make it JAXB2 compliant. Those are the thoughts that I have in my mind now. Please let me know your comments and suggestions. Thanks, SD On 6/4/07, Werner Guttmann <[EMAIL PROTECTED]> wrote:
Sachith, it's a shame you've wasted so much time on trying to port something to Castor when most of the base classes you are going to need is already in place. As already pointed out a few times, Castor has already a set of classes that model an XML schema in form of Java classes. Take a look at Castor's source code in the SVN repository, and in src/main/java you are going to find a package named org.exolab.castor.schema which has plenty of classes you will be required to use, incl. e.g. a Schema class in that very package. Once you've built an instance of this class (and all its children objects, representing element definitions, complex type definitions, etc.), you'll use the SchemaWriter to serialize that in-memory Schema instance to an actual schema file. What you've to come up with is a *design* first that showcases your ideas how you go about creating such an in-memory Schema object instance from a given set of Java classes (considering JAXB annotations as well). In other words, no coding for the time being, just some general thoughts that showcase your ideas and design. Thanks Werner Sachith Dhanushka wrote: > Thanks Werner for the helpful hints. > > I was looking at Java2WSDL in a open source web services project. They > were trying to create a schema out of a given set of java classes, in > the process of creating the WSDL file. I took their code and was trying > to port that to Schema model in Castor. I did this for about 2 weeks now > and > now I feel like I am wasting my time as that code is bit complicated than requried. > > > So now I am changing my approach completely and I am starting to write > it from the scratch, dumping all the code and just taking some > experience from it. > > I will be able to come up with a small working version by the end of > this week. > > Just updating on the progress and what I am doing :) > > Thanks, > SD > > On 6/1/07, *Werner Guttmann* < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Sachith, > > please see inline. > > Werner > > Sachith Dhanushka wrote: > > Hi, > > > > I am now digging in to Schema model to populate information from the > > JAXB classes. I am writing code to look at the JAXB generated > classes, > > using JAM, and create a schema model. In the first pass I will not > look > > at the annotations. First pass will be to look at only the java > object > > and dedude the schema. In the second phase, I will look at JAXB > > annotations and employ those information also to build the model. > I have > > few questions in doing that. > > > > 1. Is there a code which already looks at a set of java classes and > > building a schema model? I am asking this as I do not want to > re-invent > > the same thing. > Not to my knowledge. What is in place is classes like the Introspector > or the XMLMappingLoader that build Castor-internal descriptor classes > from a class file and/or a class mapping. Especially the Introspector > should be worthwhile to analyse. You might remember Joachim's email a > few days ago where he pointed out that it might be an option to create a > new kind of Introspector (specific to JAXB) that will be capable to > analyse Java code plus JAXB annotations and create an internal > descriptor from it (similar to what the current Introspector does). > > In a second step, it should be pretty straight-forward to come up with > code that creates a hierarchy of objects from the schema package before > serializing this to a XML schema file. > > > 2. Is there any aid like a document to learn a bit about schema model? > In pure therory, yes. Google for the XML schema primer. Castor-specific, > no, not really. But having worked on the code generation side myself > for > quite some months now, it should be pretty straight-forward to map the > existing classes in the schema package to actual XML schema constructs. > > > So far the only help was to look at the code in Marshallers and > > Un-Marshallers. I just want to know just the basics to make sure > the way I am using it correct. > Odd. I don't think that the (Un-)Marshaller uses any of these classes > (schema package). Those classes (such as ElementDecl and Schema) are - > to my knowledge - used in ... > > a) the XML code gernator (aka source generator) to read an actual XML > schema fiel into a hierarchy of object instances of this package. > > b) the XMLInstance2Schema tool that creates an XML schema from an > actual > XML document instance. > > Whilst none of these two use cases represent a full 'solution' to your > problem, both should clearly highlight the usage of these schema.* > classes. > > > > > 3. When I was coding with JAM, I found same set of classes appearing > > inside castor also. What are these? Does that mean > > there is a similar code already in the code base? > Sorry, your question is not really clear to me. > > > > 4. Where will be my code go? Any suggestions for the module and java > > package name? > Any suggestions wrt to the package name ? There's alraedy an existing > SVN module, details of which I'll post in a few hours. > > > Please help me to find answers to the above questions. > > > > Thanks, > > SD > > > --------------------------------------------------------------------- > 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