The AndroMDA Configuration must comply with the following XSD Schema:
<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"elementFormDefault="qualified"> <xs:elementname="andromda"> <xs:complexType> <xs:sequence> <xs:elementref="properties"minOccurs="0"/> <xs:elementref="server"minOccurs="0"/> <xs:elementref="repositories"/> <xs:elementref="mappingsSearchLocations"minOccurs="0"/> <xs:elementref="namespaces"/> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="host"type="xs:string"/> <xs:elementname="loadInterval"type="xs:integer"/> <xs:elementname="location"> <xs:complexType> <xs:simpleContent> <xs:extensionbase="xs:string"> <xs:attributename="patterns"type="xs:string"use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:elementname="moduleSearchLocations"> <xs:complexType> <xs:sequence> <xs:elementref="location"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="mappingsSearchLocations"> <xs:complexType> <xs:sequence> <xs:elementref="location"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="maximumFailedLoadAttempts"type="xs:integer"/> <xs:elementname="model"> <xs:complexType> <xs:sequence> <xs:elementref="uri"minOccurs="1"maxOccurs="unbounded"/> <xs:elementref="transformations"minOccurs="0"/> <xs:elementref="moduleSearchLocations"minOccurs="0"/> <xs:elementref="modelPackages"minOccurs="0"/> <xs:elementref="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:attributename="lastModifiedCheck"type="xs:boolean"use="optional"/> </xs:complexType> </xs:element> <xs:elementname="modelPackage"> <xs:complexType> <xs:simpleContent> <xs:extensionbase="xs:string"> <xs:attributename="process"type="xs:boolean"use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:elementname="modelPackages"> <xs:complexType> <xs:sequence> <xs:elementref="modelPackage"minOccurs="0"maxOccurs="unbounded"/> </xs:sequence> <xs:attributename="processAll"type="xs:boolean"use="optional"/> </xs:complexType> </xs:element> <xs:elementname="constraint"> <xs:complexType> <xs:simpleContent> <xs:extensionbase="xs:string"> <xs:attributename="enforce"type="xs:boolean"use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:elementname="constraints"> <xs:complexType> <xs:sequence> <xs:elementref="constraint"minOccurs="0"maxOccurs="unbounded"/> </xs:sequence> <xs:attributename="enforceAll"type="xs:boolean"use="optional"/> </xs:complexType> </xs:element> <xs:elementname="models"> <xs:complexType> <xs:sequence> <xs:elementref="model"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="namespace"> <xs:complexType> <xs:sequence> <xs:elementref="properties"/> </xs:sequence> <xs:attributename="name"type="xs:string"use="required"/> </xs:complexType> </xs:element> <xs:elementname="namespaces"> <xs:complexType> <xs:sequence> <xs:elementref="namespace"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:uniquename="uniqueNamespaceName"> <xs:selectorxpath="namespace"/> <xs:fieldxpath="@name"/> </xs:unique> </xs:element> <xs:elementname="port"type="xs:integer"/> <xs:elementname="properties"> <xs:complexType> <xs:sequence> <xs:elementref="property"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:uniquename="uniquePropertyName"> <xs:selectorxpath="property"/> <xs:fieldxpath="@name"/> </xs:unique> </xs:element> <xs:elementname="property"> <xs:complexType> <xs:simpleContent> <xs:extensionbase="xs:string"> <xs:attributename="name"type="xs:string"use="required"/> <xs:attributename="ignore"type="xs:boolean"use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:elementname="repository"> <xs:complexType> <xs:sequence> <xs:elementref="models"minOccurs="1"maxOccurs="1"/> </xs:sequence> <xs:attributename="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:elementname="repositories"> <xs:complexType> <xs:sequence> <xs:elementref="repository"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:uniquename="uniqueRepositoryName"> <xs:selectorxpath="repository"/> <xs:fieldxpath="@name"/> </xs:unique> </xs:element> <xs:elementname="server"> <xs:complexType> <xs:sequence> <xs:elementref="host"/> <xs:elementref="port"/> <xs:elementref="loadInterval"minOccurs="0"/> <xs:elementref="maximumFailedLoadAttempts"minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="transformation"> <xs:complexType> <xs:sequence> <xs:elementref="uri"minOccurs="1"/> <xs:elementref="moduleSearchLocations"minOccurs="0"/> <xs:elementref="modelPackages"minOccurs="0"/> </xs:sequence> <xs:attributename="output"type="xs:string"use="optional"/> </xs:complexType> </xs:element> <xs:elementname="transformations"> <xs:complexType> <xs:sequence> <xs:elementref="transformation"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="uri"type="xs:string"/> </xs:schema>