JBoss metadata is split into several projects (the split happened after version 1.0.X and started with 2.0.0-SNAPSHOT): common project + one project per specific technology. The current list of the projects is:
The common one contains basic classes, resources and tests that are used by other projects. In addition to that, it also contains common Java EE metadata, common JBoss metadata and WS metadata. These could further be extracted to their own projects if needed.
All technology-specific projects declare dependency on the common project.
The main location is https://svn.jboss.org/repos/jbossas/projects/metadata/. Under which each project's trunk is located under project_name/trunk, e.g. common/trunk, ejb/trunk, etc.
The groupId for all the projects is org.jboss.metadata.
The artifactId format is jboss-metadata-project_name, e.g. jboss-metadata-common, jboss-metadata-ejb, etc.
All metadata projects follow the same rule as to where the schemas are located. This is to make sure each metadata project's schemas can be successfully resolved after the integration into the AS. All the XSDs and DTDs should be in main\resources\schema or main\resources\dtd.
Schema/class binding in testsuite
An implementation of org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver is responsible for schema/class binding resolution. Most of the current tests use org.jboss.test.metadata.common.MetaDataSchemaResolverFactory.createSchemaResolver() (which is in the common project) to create an instance of MutableSchemaResolver to run the tests.
Instead of configuring schema resolver programatically, you can provide mappings between schemas and classes in test/resources/schema2class.properties file.
The format is: schema_name class_name [, class_name].
jboss-ds_5_0.xsd org.jboss.metadata.rar.jboss.mcf.ManagedConnectionFactoryDeploymentGroup, org.jboss.metadata.rar.jboss.mcf.ConnectionFactoryDeploymentGroup