XML Schema Object Model (XSOM) is a Java library that allows applications to easily parse XML Schema documents and inspect information in them. It is expected to be useful for applications that need to take XML Schema as an input.

The library is a straight-forward implement of "schema components" as defined in the XML Schema spec part 1. Refer to this specification of how this object model works. In particular, this diagram might be helpful.


User's Guide
Learn how to use XSOM
Implementor's Guide
Learn the limitations and internals of XSOM
API Javadoc
Javadoc of the interfaces. Also take a look at schema components diagram to understand the overall model.


XSOM comes in two versions. xsom.jar is built for JDK 5.0, but offers generified version. xsom14.jar is the version that works for earlier versions of JDK.

Both flavors of xsom.jar depends on relaxngDatatype.jar and JAXP 1.1. Make sure you have at least xsom.jar and relaxngDatatype.jar when you distribute your application that uses XSOM.


XSOM is covered by a dual license under CDDL (which basically allows you free use and redistribution with your application — but please do check the license for details) and GPL v2 with classpath exception (see the license.) relaxngDatatype.jar is covered by a BSD-like license. XSOM internally uses an URI class, which is copyrighted by Thai Open Source Center. Its license is here.