OpenXSD is a schema analysis library implemented in java and based on the xsd library from the Eclipse XSD project.
Its aim is to simplify the anaysis of schemas (and therefore elements and their properties) to a simple lookup using the element path. It builds a model of the schema which can be stored in memory (and serialized) or stored in a database. This model can then be used to lookup element definitions and type defintions. It also has a number of utilities to facilitate the creation of conformant empty xml instances and to create an empty xml fragments from anywhere in the xml structure. Imports, includes and redefines are also implemented. All paths in the schema are also indexed and elements can subsequently be retrieved (together with all relevant constraints, i.e. min, max occurs, length, patterns, attributes, enumerations etc.) based on that path. It also understands whether the element is truly mandatory or has an optional parent and hence is only 'locally mandatory'.
The purpose of the project was to step away from the existing modelling of an xml schema and to create a fully inclusive simplifed representation of a schema, optimised for path-based querying.
OpenXSD is used as the schema analysis component in the Curriculum Online Tagging Tool.
incorporated in the Curriculum Online Tagging Tool