AndroMDA Configuration Schema

The AndroMDA Configuration must comply with the following XSD Schema:

<xs:schema 
   
xmlns:xs="http://www.w3.org/2001/XMLSchema"
   
elementFormDefault="qualified">
   
<xs:element name="andromda">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="properties" minOccurs="0"/>
               
<xs:element ref="server" minOccurs="0"/>
               
<xs:element ref="repositories"/>
               
<xs:element ref="mappingsSearchLocations" minOccurs="0"/>
               
<xs:element ref="namespaces"/>
           
</xs:sequence>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="host" type="xs:string"/>
   
<xs:element name="loadInterval" type="xs:integer"/>
   
<xs:element name="location">
       
<xs:complexType>
           
<xs:simpleContent>
               
<xs:extension base="xs:string">
                   
<xs:attribute name="patterns" type="xs:string" use="optional"/>
               
</xs:extension>
           
</xs:simpleContent>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="moduleSearchLocations">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="location" maxOccurs="unbounded"/>
           
</xs:sequence>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="mappingsSearchLocations">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="location" maxOccurs="unbounded"/>
           
</xs:sequence>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="maximumFailedLoadAttempts" type="xs:integer"/>
   
<xs:element name="model">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="uri" minOccurs="1" maxOccurs="unbounded"/>
               
<xs:element ref="transformations" minOccurs="0"/>
               
<xs:element ref="moduleSearchLocations" minOccurs="0"/>
               
<xs:element ref="modelPackages" minOccurs="0"/>
               
<xs:element ref="constraints" minOccurs="0">
                   
<xs:annotation>
                       
<xs:documentation>
                            These control the way model validation is handled, it is possible to filter
                            out certain constraints so that they are not applied to your model(s).
                       
</xs:documentation>
                   
</xs:annotation>
               
</xs:element>
           
</xs:sequence>
           
<xs:attribute name="lastModifiedCheck" type="xs:boolean" use="optional"/>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="modelPackage">
       
<xs:complexType>
           
<xs:simpleContent>
               
<xs:extension base="xs:string">
                   
<xs:attribute name="process" type="xs:boolean" use="optional"/>
               
</xs:extension>
           
</xs:simpleContent>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="modelPackages">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="modelPackage" minOccurs="0" maxOccurs="unbounded"/>
           
</xs:sequence>
           
<xs:attribute name="processAll" type="xs:boolean" use="optional"/>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="constraint">
       
<xs:complexType>
           
<xs:simpleContent>
               
<xs:extension base="xs:string">
                   
<xs:attribute name="enforce" type="xs:boolean" use="optional"/>
               
</xs:extension>
           
</xs:simpleContent>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="constraints">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="constraint" minOccurs="0" maxOccurs="unbounded"/>
           
</xs:sequence>
           
<xs:attribute name="enforceAll" type="xs:boolean" use="optional"/>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="models">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="model" maxOccurs="unbounded"/>
           
</xs:sequence>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="namespace">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="properties"/>
           
</xs:sequence>
           
<xs:attribute name="name" type="xs:string" use="required"/>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="namespaces">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="namespace" maxOccurs="unbounded"/>
           
</xs:sequence>
       
</xs:complexType>
       
<xs:unique name="uniqueNamespaceName">
           
<xs:selector xpath="namespace"/>
           
<xs:field xpath="@name"/>
       
</xs:unique>
   
</xs:element>
   
<xs:element name="port" type="xs:integer"/>
   
<xs:element name="properties">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="property" maxOccurs="unbounded"/>
           
</xs:sequence>
       
</xs:complexType>
       
<xs:unique name="uniquePropertyName">
           
<xs:selector xpath="property"/>
           
<xs:field xpath="@name"/>
       
</xs:unique>
   
</xs:element>
   
<xs:element name="property">
       
<xs:complexType>
           
<xs:simpleContent>
               
<xs:extension base="xs:string">
                   
<xs:attribute name="name" type="xs:string" use="required"/>
                   
<xs:attribute name="ignore" type="xs:boolean" use="optional"/>
               
</xs:extension>
           
</xs:simpleContent>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="repository">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="models" minOccurs="1" maxOccurs="1"/>
           
</xs:sequence>
           
<xs:attribute name="name" type="xs:string" use="required">
               
<xs:annotation>
                   
<xs:documentation>
                        The unique name of the repository.
                   
</xs:documentation>
               
</xs:annotation>
           
</xs:attribute>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="repositories">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="repository" maxOccurs="unbounded"/>
           
</xs:sequence>
       
</xs:complexType>
       
<xs:unique name="uniqueRepositoryName">
           
<xs:selector xpath="repository"/>
           
<xs:field xpath="@name"/>
       
</xs:unique>
   
</xs:element>
   
<xs:element name="server">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="host"/>
               
<xs:element ref="port"/>
               
<xs:element ref="loadInterval" minOccurs="0"/>
               
<xs:element ref="maximumFailedLoadAttempts" minOccurs="0"/>
           
</xs:sequence>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="transformation">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="uri" minOccurs="1"/>
               
<xs:element ref="moduleSearchLocations" minOccurs="0"/>
               
<xs:element ref="modelPackages" minOccurs="0"/>
           
</xs:sequence>
           
<xs:attribute name="output" type="xs:string" use="optional"/>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="transformations">
       
<xs:complexType>
           
<xs:sequence>
               
<xs:element ref="transformation" maxOccurs="unbounded"/>
           
</xs:sequence>
       
</xs:complexType>
   
</xs:element>
   
<xs:element name="uri" type="xs:string"/>
</xs:schema>