OWL2XS - OWL 2 ontology based XML Schema generation tool.

The distinct feature of the tool is the usage of Description Logics Reasoner (HermiT) that makes indifferent the way information is stored within an ontology.

The tool provides a translation of OWL 2 axioms into XML Schema elements as defined in the table:

OWL 2 Entity XML Schema Construct Comments
owl:Class xs:complexType Only single class inheritance is supported. Generated complex type may be either extended or restricted depending on its properties.
owl:Datatype xs:simpleType Multiple inheritance is supported through a union variety.
owl:ObjectProperty xs:element Wherever it is possible local elements are used. Otherwise global elements with substitutions are created.
owl:DataProperty xs:attribute, xs:element For single properties (restricted to max = 1) attributes may be used.

The first stage of processing is an ontology analysis with a closed world assumption. The objective is to extract all Universal and Existential Quantification axioms for any defined ontology class. This is done through a set of negations taking into account both properties and range hierarchies. The hierarchies are used to restrict a number of negations to be performed (if some property is not an xs:string, it makes no sense to check whether it is an xs:Name). In general negations look like:

Class and property some not Range

Because properties are generally inherited (a general source of confusion is, for instance, Open Word assumption where properties are also "inherited" from children) some post-processing is still needed.

A second stage is the generation of the XML Schema, which can be divided into two steps: