The AndroMDA Profile must comply with the following XSD Schema:
<xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"elementFormDefault="qualified"> <xs:elementname="allowedValues"> <xs:annotation> <xs:documentation> The values that are allowed for a given profile element. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:elementname="value"minOccurs="1"maxOccurs="unbounded"> <xs:annotation> <xs:documentation> Defines an allowed value. The default flag can only be set on one of the values. </xs:documentation> </xs:annotation> <xs:complexType> <xs:simpleContent> <xs:extensionbase="xs:string"> <xs:attributename="default"type="xs:boolean"use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:elementname="appliedOnElement"type="xs:anyType"> <xs:annotation> <xs:documentation> The model element on which the profile element can be applied. </xs:documentation> </xs:annotation> </xs:element> <xs:elementname="documentation"type="xs:anyType"/> <xs:elementname="element"> <xs:annotation> <xs:documentation> Represents a <em>profile element</em>. This are used to define profile element names and values. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:elementref="documentation"minOccurs="0"maxOccurs="1"> <xs:annotation> <xs:documentation> Defines any documentation about this element. </xs:documentation> </xs:annotation> </xs:element> <xs:elementname="value"type="xs:string"minOccurs="0"maxOccurs="1"> <xs:annotation> <xs:documentation> The actual value of the profile element, such as <em>Entity</em>. </xs:documentation> </xs:annotation> </xs:element> <xs:elementref="appliedOnElement"minOccurs="0"maxOccurs="1"/> <xs:elementref="allowedValues"minOccurs="0"maxOccurs="1"/> </xs:sequence> <xs:attributename="name"type="xs:string"use="required"> <xs:annotation> <xs:documentation> The logical name of the profile element. </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> <xs:elementname="elementGroup"> <xs:annotation> <xs:documentation> Groups profile elements logical by some common aspect (such as 'Stereotypes' for example). </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:elementref="documentation"minOccurs="0"maxOccurs="1"> <xs:annotation> <xs:documentation> Any documentation about this <em>group</em> of elements. </xs:documentation> </xs:annotation> </xs:element> <xs:elementref="element"minOccurs="1"maxOccurs="unbounded"/> </xs:sequence> <xs:attributename="name"type="xs:string"use="required"> <xs:annotation> <xs:documentation> The name of this element group such as "Stereotypes". </xs:documentation> </xs:annotation> </xs:attribute> </xs:complexType> </xs:element> <xs:elementname="elements"> <xs:annotation> <xs:documentation> Groups all elements for this profile. </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:elementref="elementGroup"minOccurs="1"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:uniquename="uniqueElementGroupName"> <xs:selectorxpath="elementGroup"/> <xs:fieldxpath="@name"/> </xs:unique> <xs:uniquename="uniqueElementName"> <xs:selectorxpath="elementGroup/element"/> <xs:fieldxpath="@name"/> </xs:unique> </xs:element> <xs:elementname="profile"> <xs:complexType> <xs:sequence> <xs:elementref="documentation"minOccurs="0"maxOccurs="1"/> <xs:elementref="elements"minOccurs="0"maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>