rackspace/atlas-lb — pull request #18 by vijayvenkat (2012-01-26 15:56:05+00:00)
Title: xsd 1.1 changes as suggested by Jorge Williams

1. Split RaxApi.xsd into 2 XSD files as described by Jorge Williams:
a. RaxTypes.xsd which contains definition of all extensions elements, attributes and types.
This file “imports” CoreApi.xsd
b. RaxApi.xsd now “includes” RaxTypes.xsd, and uses a XSD-1.1 to redefine
loadBalancer XSD type.
c. CoreApi.xsd is not changed with this regard and keeps its and extensions.

2. Use an XSLT file in RAX extension to generate an XSD which can be used for JAXB that
doesn’t contain the XSD 1.1 redefine (since JAXB can only work with XSD 1.0) as
discussed with JorgeW. This required:
a. Adding a new directory: extensions/rax/data-model/src/main/resources/META-INF/xslt
b. Added the xslt file xsd.vc.xsl under this directory
c. Changed the extensions/rax/data-model/pom.xml accordingly.

3. The following changes are minor and concerned the fact that JAXB in the extension was
generating an IpVersion class even though we don’t need to since this class is
generated in core.
a. Changed CoreApi.xsd to remove the jaxb annotation out of the element,
and instead defined the JAXB annotation in an external file called IPVersionBinding.xjb
(under directory core-data-model/src/resources/META-INF/xsd/)
b. Fixed the CoreApiBindings.xjb file used by JAXB in RAX extension to instruct it
to not generate IpVersion class again.
c. Fixed the test in the RAX API extension
(org.openstack.atlas.rax.api.mapper.dozer.converter.ExtensionObjectMapperTest),
so that it refers to the core IpVersion class and not the extension.