TranslationTest Schema

Each Translator Test (TranslationTest-*.xml file) must comply with the following XSD Schema:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <!-- The expression element consisting of 'from' and 'to' elements -->
    <xs:element name="expression">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="from"/>
                <xs:element ref="to"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <!-- the orginial expression we are translating from -->
    <xs:element name="from" type="xs:string"/>
    <!-- what we expect the translated expression to look like after translation -->
    <xs:element name="to" type="xs:string"/>
    <xs:element name="translation">
        <xs:complexType>
            <!-- the name of the translation to lookup and test, this is the name registered
                 when the PluginDiscoverer finds and registers the Translation-Library.
                 (i.e. to test the query Translation-Library's EJB-QL translation,
                 this name would be specified as 'query.EJB-QL', which says the
                 name of the Translation-Library is 'query' and the translation
                 to use is 'EJB-QL' -->
            <xs:attribute name="name" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    <!-- the root element, each TranslationTest file must begin
         with this element -->
    <xs:element name="translator-test">
        <xs:complexType>
            <xs:sequence>
                <!-- only one translation can be tested per TranslationTest file -->
                <xs:element ref="translation" maxOccurs="1"/>
                <!-- We can have as many expression elements defined as we like -->
                <xs:element ref="expression" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>