How to quickly generate an XSD (XML Schema Definition) based on a Java Class Model using JDeveloper 11g

Lucas Jellema 3
0 0
Read Time:1 Minute, 29 Second

In the course of my current studies into XSD (XML Schema Definition) and how to convert from XSD to Java Class and vice versa as well as to Database Design vv. I ran into a very simple way of creating an XSD document based on Java Class definitions. With a very simple piece of code, you can generate the XSD document in no time at all, using JDeveloper 11g and its JAXB libraries. Note: the code presented in this article will work in any environment that has the JAXB libraries available.....

In my example, I have a small class model:

I ensure that two libraries are associated with the JDeveloper project: JAXB and JEE 1.5:

 

Now the following class can be used to generate the XSD document derived from this class model:

package euro2008;

import java.io.File;
import java.io.IOException;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.SchemaOutputResolver;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;


public class XSDGenerator {
public XSDGenerator() {
}

public static void main(String[] args) throws JAXBException, IOException {

class MySchemaOutputResolver extends SchemaOutputResolver {
File baseDir = new File(".");

public Result createOutput(String namespaceUri,
String suggestedFileName) throws IOException {
return new StreamResult(new File(baseDir, suggestedFileName));
}
}

JAXBContext context = JAXBContext.newInstance(Country.class, Match.class);
context.generateSchema(new MySchemaOutputResolver());
}
}
 

When I run this class, a file called schema1.xsd is generated into the root directory of the project. When I refresh the project in JDeveloper, it will show up as a new resource: 

 

Resources

I just noted that Edwin Biemond wrote a very useful blog article on JAXB in JDeveloper 10g and 11g. So please look here: http://biemond.blogspot.com/2008/02/jaxb-20-in-jdeveloper-10g-and-11g.html .

About Post Author

Lucas Jellema

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director and Oracle Developer Champion. Solution architect and developer on diverse areas including SQL, JavaScript, Kubernetes & Docker, Machine Learning, Java, SOA and microservices, events in various shapes and forms and many other things. Author of the Oracle Press book Oracle SOA Suite 12c Handbook. Frequent presenter on user groups and community events and conferences such as JavaOne, Oracle Code, CodeOne, NLJUG JFall and Oracle OpenWorld.
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

3 thoughts on “How to quickly generate an XSD (XML Schema Definition) based on a Java Class Model using JDeveloper 11g

  1. Hi Halil, No you do not. I merely wanted to show how you can do this when using JDeveloper 11g. Not suggest that the only way to generate an XSD is using JDeveloper 11g. best regards, Lucas

  2. Hey Lucas,

    This is great stuff, I’m still looking for a declarative way to perform this step, but an automated way as you’ve blogged is awsome already!

    Thanks,
    Nathalie

Comments are closed.

Next Post

Introducing Dynamic favicons in JSF applications

Being in New Orleans for a festive conference like ODTUG brings me in a mood to write about something colorful – even if not very useful. And perhaps every now and again you may find it useful after all. You probably know of favicons – if not the word itself. […]
%d bloggers like this: