Exchange format for AOM based design tools.
February 24, 2008
| Syntax | Description | Constraints |
<!ELEMENT aom (description?, layout?, defaultNamespace, namespacePrefix*, scope*, defaultTypeSystem?, typeSystemPrefix*, defaultSubjectOntology?, subjectOntologyPrefix*, defaultConstraintLanguage?, constraintLanguagePrefix*, defaultOperationVocabulary?, operationVocabularyPrefix*, annotation*, apply*, include*, process? typeDef*, ( level2 | asset )*, appInfo*, modelInfo* )> <!ATTLIST aom
xmlns CDATA #FIXED
"http://www.aomodeling.org/2002/AOM"
name NMTOKEN #REQUIRED
id ID #REQUIRED
>
|
The aom element describes a
complete model.
The name attribute specifies the model name. |
|
<!ELEMENT description ANY> |
Contains an informal description | The description element must contain valid XHTML content of namespace http://www.w3.org/1999/xhtml. |
<!ELEMENT position EMPTY> <!ATTLIST position
id ID #REQUIRED
href CDATA #REQUIRED
data CDATA #REQUIRED
>
|
Contains position
information for additional visualization methods.
The attribute href identifies the visualization method. The attribute data contains visualization method specific position information. |
The href attribute must contain a valid, nonempty URI identifying the visualization method. |
<!ELEMENT defaultNamespace EMPTY> <!ATTLIST defaultNamespace
id ID #REQUIRED
href CDATA #REQUIRED
>
|
Defines the default namespace identifier for the model. Assets and Level 2 structures that belong to the default namespace refer to the id attribute of defaultNamespace. | The href attribute must contain a valid, nonempty URI identifying the namespace. |
<!ELEMENT namespacePrefix EMPTY> <!ATTLIST namespacePrefix
id ID #REQUIRED
prefix NMTOKEN #REQUIRED
href CDATA #REQUIRED
>
|
namespacePrefix defines a namespace used in the model. Assets and Level 2 structures that belong to this namespace refer to its id attribute. | The href attribute must contain a valid, nonempty URI identifying the namespace. |
<!ELEMENT scope (#PCDATA)> <!ATTLIST scope
id ID #REQUIRED
>
|
Defines a scope value. Each scope used in the model must be declared here. Syntax and semantics of the scope element is left to the user. | A scope string must be a valid NMTOKEN.. |
<!ELEMENT defaultTypeSystem EMPTY> <!ATTLIST defaultTypeSystem
id ID #REQUIRED
href CDATA #REQUIRED
location CDATA #IMPLIED
>
|
Defines the default type system
for the model. Type definitions belonging to this type system refer to
the id attribute of defaultTypeSystem .
The attribute href specifies the unique namespace identifier of the type system. The attribute location specifies the location of the type system. |
The href attribute must
contain a valid, nonempty URI.
The location attribute must contain a valid URL. |
<!ELEMENT typeSystemPrefix EMPTY> <!ATTLIST typeSystemPrefix
id ID #REQUIRED
prefix NMTOKEN #REQUIRED
href CDATA #REQUIRED
location CDATA #IMPLIED
>
|
typeSystemPrefix defines a
type system used in the model. Type definitions belonging to this type
system refer to its id attribute.
prefix defines a prefix to be used in type declarations for this type system. The attribute href specifies the unique namespace identifier of the type system. The attribute location specifies the location of the type system. |
The href attribute must
contain a valid, nonempty URI.
The location attribute must contain a valid URL. |
<!ELEMENT defaultSubjectOntology EMPTY> <!ATTLIST defaultSubjectOntology
id ID #REQUIRED
href CDATA #REQUIRED
location CDATA #IMPLIED
>
|
Defines the default
ontology for subject IDs used in the model.
The attribute href specifies the unique namespace identifier of the ontology. The attribute location specifies the location of the ontology. |
The href attribute must
contain a valid, nonempty URI.
The location attribute must contain a valid URL. |
<!ELEMENT subjectOntologyPrefix EMPTY> <!ATTLIST subjectOntologyPrefix
id ID #REQUIRED
prefix NMTOKEN #REQUIRED
href CDATA #REQUIRED
location CDATA #IMPLIED
>
|
Defines an ontology
for subject IDs used in the model.
prefix defines a prefix to be used in type declarations for this ontology. The attribute href specifies the unique namespace identifier of the ontology. The attribute location specifies the location of the ontology. |
The href attribute must
contain a valid, nonempty URI.
The location attribute must contain a valid URL. |
<!ELEMENT defaultConstraintLanguage EMPTY> <!ATTLIST defaultConstraintLanguage
abstract (false|true) "false"
id ID #REQUIRED
href CDATA #REQUIRED
location CDATA #IMPLIED
>
|
Defines the default constraint
language. Constraints formulated in this language refer to the id
attribute of defaultConstraintLanguage.
The attribute href specifies the unique namespace identifier of the constraint language. Alternatively, the attribute may specify the value "##local". The attribute abstract is set to true if this prefix is used for constraint vocabularies. The attribute location specifies the location of the constraint language vocabulary. |
The href attribute must
contain a valid, nonempty URI or the value
"##local".
The href value "##local" may only be used if abstract is set to "true". The location attribute must contain a valid URL. This URL may be absolute or relative to the model location. |
<!ELEMENT constraintLanguagePrefix EMPTY> <!ATTLIST constraintLanguagePrefix
abstract (false|true) "false"
id ID #REQUIRED
prefix NMTOKEN #REQUIRED
href CDATA #REQUIRED
location CDATA #IMPLIED
>
|
constraintLanguagePrefix
elements defines a constrained language used in the model. Constraints
formulated in this language refer to the id attribute.
prefix defines a prefix to be used in constraint expressions of this this constraint language. The attribute href specifies the unique namespace identifier of the constraint language. Alternatively, the attribute may specify the value "##local". The attribute abstract is set to true if this prefix is used for constraint vocabularies. The attribute location specifies the location of the constraint language vocabulary. The attribute abstract is set to true if this prefix is used for constraint vocabularies. |
The href attribute must
contain a valid, nonempty URI.
The href value "##local" may only be used if abstract is set to "true". The location attribute must contain a valid URL. This URL may be absolute or relative to the model location. |
<!ELEMENT defaultOperationVocabulary EMPTY> <!ATTLIST defaultOperationVocabulary
id ID #REQUIRED
href CDATA #REQUIRED
location CDATA #IMPLIED
>
|
Defines the default operation
Vocabulary. Operation names taken from this vocabulary refer to the id
attribute of defaultOperationVocabulary.
The attribute href specifies the unique namespace identifier of the operation vocabulary. Alternatively, the attribute may specify the value "##local". The attribute location specifies the location of the operation vocabulary. |
The href attribute must
contain a valid, nonempty URI identifying the constraint language or the value
"##local". If specified the location attribute must contain a valid URL. This URL may be absolute or relative to the model location. If href contains the value "##local", the location attribute must not be specified. |
<!ELEMENT operationVocabularyPrefix EMPTY> <!ATTLIST operationVocabularyPrefix
id ID #REQUIRED
prefix NMTOKEN #REQUIRED
href CDATA #REQUIRED
location CDATA #IMPLIED
>
|
operationVocabularyPrefix
defines a vocabulary for operation names. Operation names taken from this language refer to the id attribute.
prefix defines a prefix to be used in operation declarations for this operation vocabulary.. The attribute href specifies the unique namespace identifier of the operation vocabulary. Alternatively, the attribute may specify the value "##local". The attribute location specifies the location of the operation vocabulary. |
The href attribute must
contain a valid, nonempty URI identifying the constraint language or the value
"##local". If specified the location attribute must contain a valid URL. This URL may be absolute or relative to the model location. If href contains the value "##local", the location attribute must not be specified. |
<!ELEMENT modelInfo (keyword*)> <!ATTLIST modelInfo
xmlns CDATA #FIXED
"http://www.aomodeling.org/2002/AOM"
category NMTOKEN #REQUIRED
copyright CDATA #IMPLIED
provider CDATA #IMPLIED
id ID #IMPLIED
>
|
The modelInfo element contains
additional textual model information.
category specifies the category the pattern belongs to. Category hierarchies are possible by specifying path expressions. copyright specifies copyright information. provider specifies provider information. |
category must be a list of NMTOKENs separated by slashes ("/"). |
<!ELEMENT keyword (#PCDATA) > <!ATTLIST keyword
id ID #IMPLIED
>
|
The keyword element contains a keyword under which the model is to find. |
| Syntax | Description | Constraints |
<!ELEMENT apply ( binding*, description?, appInfo* )> <!ATTLIST apply
id ID #IMPLIED
prefix NMTOKEN #IMPLIED
href CDATA #REQUIRED
location CDATA #IMPLIED
scope NMTOKENS #IMPLIED
>
|
apply refers to patterns to be applied
to the current model.
prefix specifies a namespace prefix for the former default namespace of the included model. href specifies the unique namespace identifier of the included model. location specifies the location of the included model. scope specifies scope IDs of the includes submodel. Only assets that satisfy these scopes are included. |
The href attribute must
contain a valid, nonempty URI.
The location attribute must contain a valid URL. This URL may be absolute or relative to the model location. The prefix attribute must be specified if the default namespace of the included model differs from the default namespace of the new mode. |
<!ELEMENT include ( binding*, description?, appInfo* )> <!ATTLIST include
id ID #IMPLIED
prefix NMTOKEN #IMPLIED
href CDATA #REQUIRED
location CDATA #IMPLIED
scope NMTOKENS #IMPLIED
>
|
include refers to submodels
to be merged into the current model.
prefix specifies a namespace prefix for the former default namespace of the included model. href specifies the unique namespace identifier of the included model. location specifies the location of the included model. scope specifies scope IDs of the includes submodel. Only assets that satisfy these scopes are included. |
The href attribute must
contain a valid, nonempty URI.
The location attribute must contain a valid URL. This URL may be absolute or relative to the model location. The prefix attribute must be specified if the default namespace of the included model differs from the default namespace of the new mode. |
<!ELEMENT binding ( ( map | create )* )> <!ATTLIST binding
id ID #IMPLIED
sourceRef NMTOKEN #REQUIRED
>
|
A binding specifies to which items of the
target model an item of the inclusion is bound.
sourceRef specifies the ID of the inclusion item to which this binding applies. If such an item does not exist, the binding is ignored. Because the referenced item is located in an inclusion, the type NMTOKEN is used instead of IDREF. |
The item referred to by sourceRef must be either an asset or a Level2Structure. |
<!ELEMENT map ( binding* )> <!ATTLIST map
id ID #IMPLIED
ref NMTOKEN #REQUIRED
>
|
A map element maps an inclusion item to
another item within the target model. Mappings for Level2Structures
may contain nested bindings for the items contained in the L2S.
ref specifies the ID of the item to which the inclusion item should be bound. If such an item does not exist, the binding is ignored. Because the referenced item may be located in an inclusion, the type NMTOKEN is used instead of IDREF. |
|
<!ELEMENT create ( binding* )> <!ATTLIST create
id ID #IMPLIED
href NMTOKEN #IMPLIED
name #REQUIRED
ref NMTOKEN #REQUIRED
>
|
A create element creates a copy of the
inclusion item in the target model. Creation elements for Level2Structures
may contain nested bindings for the items contained in the L2S.
href specifies the namespace URI of the new item. If this attribute is omitted, the new item will belong to the default namespace. name specifies the name of the new item. This can be a single name for assets, or a list of display labels for Level2Structures. ref specifies the ID of the new item, and thus establishes the identity of the new item. |
The href attribute must
contain a valid, nonempty URI.
For asset bindings the attribute name must specify a valid asset name (NMTOKEN). For Level2Structure bindings the name attribute may contain several PCDATA tokens, separated by blanks. |
<!ELEMENT process ( ( setElement | setAttribute )*, appInfo* )> <!ATTLIST include
id ID #IMPLIED
>
|
process specifies a list of changes to be processed after all all inclusions referred to in apply and include statements are merged in. | |
<!ELEMENT setElement ANY?> <!ATTLIST setElement
id ID #IMPLIED
ref NMTOKEN #REQUIRED
replace NMTOKEN #IMPLIED
>
|
The setElement instruction changes,
deletes, or inserts an XML element in the composite model serialization.
ref specifies the ID of the parent element to which changes are to be applied. Because this element may be located in an inclusion, the type NMTOKEN is used instead of IDREF. If the element specified in ref does not exist, the setElement instruction is ignored. replace specifies the ID of an element to be deleted. This must be a child element of the element referred to by ref. If setElement has a child element, this child element will replace the element specified in replace. If such an element does not exist the child element is appended as a child to the parent element referenced in ref. |
|
<!ELEMENT setAttribute EMPTY> <!ATTLIST setAttribute
id ID #IMPLIED
ref NMTOKEN #REQUIRED
name NMTOKEN #REQUIRED
value CDATA #IMPLIED
>
|
The setElement instruction changes,
deletes, or inserts an XML attribute in the composite model serialization.
ref specifies the ID of the owner element to which changes are to be applied. Because this element may be located in an inclusion, the type NMTOKEN is used instead of IDREF. If the element specified in ref does not exist, the setAttribute instruction is ignored. name specifies the name of the attribute to be changed. value specifies the new value of the attribute. If value was not specified, the attribute is deleted. |
| Syntax | Description | Constraints |
<!ELEMENT typeDef EMPTY> <!ATTLIST typeDef name NMTOKEN #REQUIRED id ID #REQUIRED ts IDREF #REQUIRED > |
Specifies a type from a type system. The attribute ts refers to the default type system or to a type system prefix by id. |
| Syntax | Description | Constraints |
<!ELEMENT level2 (description?, position*, layout?, displayLabel*, (level2 | asset)+, annotation*, appInfo* )> <!ATTLIST level2
collapsed (false|true) "false"
firstClass (false|true|default) "default"
id ID #REQUIRED
identifyingItem NMTOKEN #REQUIRED
position CDATA #IMPLIED
>
|
level2 defines a Level 2 Structure.
These structures contain assets or other Level 2 Structures. The collapsed attribute is set when a Level 2 Structure is displayed in collapsed state. The firstClass attribute specifies if a Level 2 Structure is considered as a first class citizen. The identifyingItem attribute refers to an asset or level2 child element. Alternatively, it may refer to a foreign asset or level2 element from an included file. The position attribute specifies the graphical position of the asset relative to the parent container (model or L2S) for the default layout policy. It consists of two integers separated by a blank, representing column and row number of the asset. If no position attribute is specified, positioning is automatic. |
If identifyingItem refers to element in an included file, the included file must contain a level2 element with the same identifying item. |
| Syntax | Description | Constraints |
<!ELEMENT asset (description?, position*, displayLabel*, primaryKey*, typeDecl*, ( typedProperty | property | sequence | choice | bag )*, constraint*, operation*, annotation*, subjectID*, ( cluster | arc | isa )*, appInfo* )> <!ATTLIST asset
abstract (false|true) "false"
compositor (sequence|bag) "sequence"
icon CDATA #IMPLIED
id ID #REQUIRED
name CDATA #REQUIRED
ns IDREF #REQUIRED
position CDATA #IMPLIED
scope IDREFS #IMPLIED
unresolved (false|true) "false"
>
|
Defines an asset. The abstract attribute is true for abstract assets. The compositor attribute defines if the top level properties are ordered (sequence) or unordered (bag). The icon attribute defines a URL to an GIF or PNG image file. The name attribute defines the name of the asset. The ns attribute refers to the default namespace or a name space prefix. The position attribute specifies the graphical position of the asset relative to the parent container (model or L2S) for the default layout policy. It consists of two integers separated by a blank, representing column and row number of the asset. If no position attribute is specified, positioning is automatic. The scope attribute refers to one or more scope elements defined in the aom clause. If omitted, the asset is valid in all scopes of the model. The unresolved attribute is true when this asset definition represents a missing asset definition. |
If unresolved is set to
true, the asset must not have any child elements, nor other optional
attributes.
The icon attribute must contain a valid URL. |
<!ELEMENT displayLabel (#PCDATA)> <!ATTLIST displayLabel
id ID #REQUIRED
>
|
Defines a possible name for asset instances. | No display labels are allowed for abstract assets. |
<!ELEMENT primaryKey EMPTY> <!ATTLIST primaryKey
id ID #REQUIRED
fields CDATA #REQUIRED
name NMTOKEN #IMPLIED
>
|
Defines possible primary key for
an asset. The fields attribute contains a set
of key field paths separated by blanks.
The name attribute contains an optional key name. |
| Syntax | Description | Constraints |
<!ELEMENT typedProperty (description?, ( simpleType | complexType | typeSequence | typeUnion | typeRef ), subjectID*) > <!ATTLIST typedProperty
id ID #REQUIRED
name NMTOKEN #REQUIRED
minOccurs CDATA "1"
maxOccurs CDATA "1"
>
|
Defines a property
containing type definitions.
The name attribute defines the name of the property. minOccurs and maxOccurs define lower and upper bounds for the cardinality of the property. |
Allowed values for minOccurs
are quoted integers greater or equal zero.
Allowed values for maxOccurs are quoted integers greater zero and the string "unbounded". |
<!ELEMENT property (description?, ( sequence | choice | bag)?, subjectID*) > <!ATTLIST property
id ID #REQUIRED
name NMTOKEN #REQUIRED
label NMTOKEN #IMPLIED
minOccurs CDATA "1"
maxOccurs CDATA "1"
>
|
Specifies a property
defined with a regular expression. The name attribute defines the name of the property. The optional label attribute defines a reference point for recursions. minOccurs and maxOccurs define lower and upper bounds for the cardinality of the property. |
Allowed values for minOccurs
are quoted integers greater or equal zero.
Allowed values for maxOccurs are quoted integers greater zero and the string "unbounded". |
<!ELEMENT sequence (sequence | choice | bag | typedProperty | property | recursion)*> <!ATTLIST sequence
id ID #REQUIRED
label NMTOKEN #IMPLIED
minOccurs CDATA "1"
maxOccurs CDATA "1"
>
|
Specifies a sequence
of sub-properties or sub-expressions. The optional label attribute defines a reference point for recursions. minOccurs and maxOccurs define lower and upper bounds for the cardinality of the particle. |
Allowed values for minOccurs
are quoted integers greater or equal zero.
Allowed values for maxOccurs are quoted integers greater zero and the string "unbounded". |
<!ELEMENT choice (sequence | choice | bag | typedProperty | property | recursion)*> <!ATTLIST choice
id ID #REQUIRED
label NMTOKEN #IMPLIED
minOccurs CDATA "1"
maxOccurs CDATA "1"
>
|
Specifies
alternatives of sub-properties or sub-expressions. The optional label attribute defines a reference point for recursions. minOccurs and maxOccurs define lower and upper bounds for the cardinality of the particle. |
Allowed values for minOccurs
are quoted integers greater or equal zero.
Allowed values for maxOccurs are quoted integers greater zero and the string "unbounded". |
<!ELEMENT bag (sequence | choice | bag | typedProperty | property | recursion)*> <!ATTLIST bag
id ID #REQUIRED
label NMTOKEN #IMPLIED
minOccurs CDATA "1"
maxOccurs CDATA "1"
>
|
Specifies an
unordered bag of sub-properties or sub-expressions. The optional label attribute defines a reference point for recursions. minOccurs and maxOccurs define lower and upper bounds for the cardinality of the particle. |
Allowed values for minOccurs
are quoted integers greater or equal zero.
Allowed values for maxOccurs are quoted integers greater zero and the string "unbounded". |
<!ELEMENT recursion EMPTY> <!ATTLIST recursion
id ID #REQUIRED
recurTo NMTOKEN #REQUIRED
minOccurs CDATA "1"
maxOccurs CDATA "1"
>
|
Establishes a
recursion to a previously defined reference point (label) within the same
expression. The recurTo attribute refers to the label of a property, a sequence, a choice, or a bag. |
Allowed values for minOccurs are quoted integers greater or equal zero. Allowed values for maxOccurs are quoted integers greater zero and the string "unbounded". |
Note: there is no special syntax for empty properties. An empty property has an empty sequence element:
<sequence/>
| Syntax | Description | Constraints |
<!ELEMENT simpleType ( ( typeParam | typeAttribute )* | enumeration+)> <!ATTLIST simpleType
ref IDREF #IMPLIED
minOccurs CDATA "1"
maxOccurs CDATA "1"
>
|
Defines a simple type reference.
The ref attribute refers to a global typeDef element. minOccurs and maxOccurs define lower and upper bounds for the cardinality of the type expression. |
The attribute ref must be defined if simpleType does not contain an enumeration child element. |
<!ELEMENT typeParam EMPTY> <!ATTLIST typeParam
id ID #IMPLIED
name CDATA #REQUIRED
value CDATA #REQUIRED
>
|
Type parameters may modify simple types depending on the type system. For example, if the type system is XML Schema, the name attribute may specify the name of a restricting facet, the value attribute the facet value. Other type systems such as SQL use type parameters by position. In these cases an internal type parameter name is specified. | |
<!ELEMENT typeAttribute EMPTY> <!ATTLIST typeParam
id ID #IMPLIED
name NMTOKEN #REQUIRED
value CDATA #REQUIRED
>
|
Type attributes are used to specify meta information about a type, e.g. units of measurement. | The attribute name must be unique within the scope of a typedProperty. |
<!ELEMENT enumeration (#PCDATA)> <!ATTLIST enumeration
id ID #IMPLIED
>
|
Restricts the value space of a type to the listed enumerations. | |
<!ELEMENT complexType EMPTY> <!ATTLIST complexType
ref NMTOKEN #REQUIRED
>
|
Defines a complex type reference.
The ref attribute refers to an asset. This can be the id of a foreign asset in an included file. |
|
<!ELEMENT typeSequence (simpleType | typeSequence | typeUnion | typeRef )+ > <!ATTLIST typeSequence id ID #IMPLIED minOccurs CDATA "1" maxOccurs CDATA "1" > |
Defines a sequences of types.
minOccurs and maxOccurs define lower and upper bounds for the cardinality of the type expression. |
This element must not directly or indirectly contain complex types. |
<!ELEMENT typeUnion (simpleType | complexType | typeSequence | typeUnion | typeRef )+ > <!ATTLIST typeUnion id ID #IMPLIED minOccurs CDATA "1" maxOccurs CDATA "1" > |
Defines a union of types.
minOccurs and maxOccurs define lower and upper bounds for the cardinality of the type expression. |
|
<!ELEMENT typeDecl (description?, (simpleType | complexType | typeSequence | typeUnion | typeRef ) )> <!ATTLIST typeDecl id ID #IMPLIED name NMTOKEN #REQUIRED > |
Defines a new simple type.
The name attribute identifies this declaration. This attribute must be unique within the context of the containing asset.
|
|
<!ELEMENT typeRef EMPTY> <!ATTLIST typeRef
name NMTOKEN #REQUIRED
ref NMTOKEN #IMPLIED
minOccurs CDATA "1"
maxOccurs CDATA "1"
>
|
Refers to a type declaration. The name attribute specifies the name of a type declaration. The ref attribute refers by id to a foreign asset containing the type declaration. minOccurs and maxOccurs define lower and upper bounds for the cardinality of the type expression. |
| Syntax | Description | Constraints |
<!ELEMENT cluster ((arc|isa)*, appInfo* )> <!ATTLIST cluster
id ID #REQUIRED
>
|
Defines either an arc cluster or an is_a cluster. | |
<!ELEMENT arc (description?, position*, appInfo* )> <!ATTLIST arc
id ID #REQUIRED
role CDATA #IMPLIED
minOccurs CDATA "1"
maxOccurs CDATA "1"
collected CDATA "false"
target NMTOKEN #REQUIRED
range IDREF #IMPLIED
key NMTOKEN #IMPLIED
originalSource NMTOKEN #IMPLIED
originalRole CDATA #IMPLIED
originalMinOcc CDATA "1"
originalMaxOcc CDATA "1"
originalCollected CDATA "false"
originalRange NMTOKEN #IMPLIED
orininalKey NMTOKEN #IMPLIED
>
|
Defines an arc to another asset. The optional role attribute specifies the role assumed by the target asset. The attributes minOccurs and maxOccurs define cardinality constraints for this arc. The attribute collected indicates that the arc target is treated as a collection. The attribute target refers to the id of the target asset. This can be the id of a foreign asset in an included file. The attribute range refers to the id of a level2 element or to the id of the aom root element. The attribute key specifies the name of the primary key for cases when the target is equipped with multiple primary keys. The attributes originalSource, originalRole, originalMinOcc, originalMaxOcc, originalCollected, originalRange, and originalKey can be used by tools to store the original properties of reverted arcs. |
role must be an originalRole must be an
|
<!ELEMENT isa (description?, position*, appInfo* )> <!ATTLIST isa
id ID #REQUIRED
minOccurs CDATA "1"
target NMTOKEN #REQUIRED
>
|
Defines an is_a arc to
another asset.
The attribute target refers to the id of the target asset. This can be the id of a foreign asset in an included file. The attribute minOccurs defines cardinality constraints for this arc. |
minOccurs must be either "0" or "1" |
| Syntax | Description | Constraints |
<!ELEMENT constraint ( description?, #PCDATA )> <!ATTLIST constraint
id ID #REQUIRED
ns IDREF #REQUIRED
context CDATA #IMPLIED
label NMTOKEN #IMPLIED
>
|
Defines a constraint. The content
contains the constraint expression.
The constraint language used is specified with the ns attribute that refers to a default constraint language definition or a constraint language prefix. The attribute context refers via an XPath expression to a property or sub-property of the same or another asset. The attribute label specifies an optional constraint label. |
| Syntax | Description | Constraints |
<!ELEMENT operation ( description?, (preCondition | postCondition )* )> <!ATTLIST operation
name NMTOKEN #REQUIRED
id ID #REQUIRED
ns IDREF #REQUIRED
mode NMTOKENS #IMPLIED
context CDATA #IMPLIED
label NMTOKEN #IMPLIED
>
|
Defines an abstract operation. The
semantics of the operation depends on the implementation.
The name attribute contains the name of the operation taken from the operation vocabulary used. The operation vocabulary is specified with the ns attribute that refers to a default operation vocabulary definition or an operation vocabulary prefix.. The mode attribute defines a set of execution modes for the operation (e.g. update, delete, insert). The values of this attribute must be taken from the operation vocabulary used. The attribute context refers via an XPath expression to a property or sub-property of the same or another asset. The attribute label specifies an optional operation label. |
|
<!ELEMENT preCondition ( description?, #PCDATA )> <!ATTLIST preCondition
id ID #REQUIRED
ns IDREF #REQUIRED
context CDATA #IMPLIED
>
<!ELEMENT postCondition ( description?, #PCDATA )> <!ATTLIST postCondition
id ID #REQUIRED
ns IDREF #REQUIRED
context CDATA #IMPLIED
>
|
Defines an operation precondition
resp. postcondition. The content
contains the constraint expression.
The constraint language used is specified with the ns attribute that refers to a default constraint language definition or a constraint language prefix. The attribute context refers via an XPath expression to a property or sub-property of the same or another asset. The context is given relative to the context of the parent operation element.
|
| Syntax | Description | Constraints |
<!ELEMENT subjectID EMPTY> <!ATTLIST subjectID
id ID #REQUIRED
name NMTOKEN #REQUIRED
href CDATA #REQUIRED
>
|
Defines a subject identifier. The name attribute contains the name of the subject identifier. The href specifies the namespace identifier. It may or may not refer to a declared ontology. |
href must be a valid, nonempty URI. |
| Syntax | Description | Constraints |
<!ELEMENT annotation ANY> <!ATTLIST annotation
id ID #REQUIRED
context IDREF #IMPLIED
>
|
The annotation element
provides an extension mechanism. Syntax and semantics of the annotation
element is left to the user.
The attribute context refers via an XPath expression to a property or sub-property of the same or another asset. |
The context attribute is only used for annotations defined in asset or level2 elements. |
<!ELEMENT appInfo ANY> <!ATTLIST href #REQUIRED
id ID #IMPLIED
>
|
This element can be used by tools
to add tool specific information to a model.
The attribute href must contain a URI identifying the tool. |
| Syntax | Description | Constraints |
<!ELEMENT layout ( arcLayout, isaLayout, parameter* )> <!ATTLIST layout
id ID #REQUIRED
href CDATA #REQUIRED
>
|
The layout element defines
layout policies for the model or specific L2S. The attribute href identifies the layout policy. |
href must be a valid, nonempty URI. |
<!ELEMENT arcLayout ( parameter* )> <!ATTLIST arcLayout
id ID #REQUIRED
href CDATA #REQUIRED
>
|
The arcLayout element
defines layout policies for arcs within the model or specific L2S.
The attribute href must contain a URI identifying the arc layout policy. |
href must be a valid, nonempty URI. |
<!ELEMENT isaLayout ( parameter* )> <!ATTLIST isaLayout
id ID #REQUIRED
href CDATA #REQUIRED
>
|
The isaLayout element
defines layout policies for "is a"-arcs within the model
or specific L2S.
The attribute href must contain a URI identifying the isa layout policy.. |
href must be a valid, nonempty URI. |
<!ELEMENT parameter EMPTY> <!ATTLIST parameter
name CDATA #REQUIRED
value CDATA #REQUIRED
>
|
The attribute name defines
the name of the parameter.
The attribute value contains the value of the parameter. |
UUIDs to be used for all id attributes.
<?xml version="1.0"?> <!DOCTYPE aom SYSTEM "aom.dtd">
<aom id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A01"
name="OrderModel">
<defaultNamespace id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A03"
href="http://www.aomodeling.org/corp.com/orders"/>
<namespacePrefix id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A09"
prefix="c"
href="http://www.corp.com"/>
<scope id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A98">version1</scope>
<defaultTypeSystem id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A10"
href="http://www.w3.org/2001/XMLSchema"/>
<defaultConstraintLanguage id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A99"
href="http://www.w3.org/TR/xpath"/>
<typeDef name="date"
id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A17"
ts="uuid-0016B448-EB27-47E3-AC09-9655CEF46A10"/>
<typeDef name="NMTOKEN"
id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A72"
ts="uuid-0016B448-EB27-47E3-AC09-9655CEF46A10"/>
<typeDef name="duration"
id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A76"
ts="uuid-0016B448-EB27-47E3-AC09-9655CEF46A10"/>
<typeDef name="int"
id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A52"
ts="uuid-0016B448-EB27-47E3-AC09-9655CEF46A10"/>
<level2>
<displayLabel>customer</displayLabel>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A02"
name="person"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A09">
<property name="name">
<sequence>
<property name="first"/>
<property name="middle"
minOccurs="0"/>
<property name="last"/>
</sequence>
</property>
<typedProperty name="birthDate">
<simpleType ref="uuid-0016B448-EB27-47E3-AC09-9655CEF46A17"/>
</typedProperty>
</asset>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A18"
name="institution"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A09">
<property name="name"/>
</asset>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A20"
name="customer"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A09">
<primaryKey fields="uuid-0016B448-EB27-47E3-AC09-9655CEF46A21"/>
<typedProperty id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A21"
name="propertyID">
<simpleType ref="uuid-0016B448-EB27-47E3-AC09-9655CEF46A72"/>
</typedProperty>
<cluster>
<isa target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A02"/>
<isa target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A18"/>
</cluster>
</asset>
</level2>
<level2>
<displayLabel>department</displayLabel>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A31"
name="department"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A09">
<primaryKey id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A34"
fields="departmentID"/>
<typedProperty id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A32"
name="departmentID">
<simpleType ref="uuid-0016B448-EB27-47E3-AC09-9655CEF46A72"/>
</typedProperty>
<arc minOccurs="0"
maxOccurs="unbounded"
target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A30"/>
<arc target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A35"
minOccurs="0"
maxOccurs="unbounded"/>
</asset>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A30"
name="receives"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A03">
<arc target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A40"
minOccurs="0"
maxOccurs="unbounded"/>
</asset>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A35"
name="forwards"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A03">
<arc target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A31"/>
<arc target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A40"
minOccurs="0" maxOccurs="unbounded"/>
</asset>
</level2>
<level2>
<displayLabel>order</displayLabel>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A40"
name="order"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A03">
<primaryKey fields="orderNo"/>
<typedProperty id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A41"
name="orderNo">
<simpleType ref="uuid-0016B448-EB27-47E3-AC09-9655CEF46A72"/>
</typedProperty>
<typedProperty name="orderDate">
<simpleType ref="uuid-0016B448-EB27-47E3-AC09-9655CEF46A17"/>
</typedProperty>
<arc target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A20"/>
<arc maxOccurs="unbounded"
target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A50"/>
</asset>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A50"
name="position"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A03">
<typedProperty name="amount">
<simpleType ref="uuid-0016B448-EB27-47E3-AC09-9655CEF46A52"/>
</typedProperty>
<constraint clang="uuid-0016B448-EB27-47E3-AC09-9655CEF46A99">
orderDate > customer/birthDate
</constraint>
<cluster>
<arc target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A60"/>
<arc target="uuid-0016B448-EB27-47E3-AC09-9655CEF46A70"/>
</cluster>
</asset>
</level2>
<level2 id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A14">
<displayLabel>product</displayLabel>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A60"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A03"
name="product">
<primaryKey fields="productNo"/>
<typedProperty id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A61"
name="productNo">
<simpleType ref="uuid-0016B448-EB27-47E3-AC09-9655CEF46A72"/>
</typedProperty>
<property name="name"/>
<property name="description"/>
</asset>
</level2>
<level2 id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A15">
<displayLabel>service</displayLabel>
<asset id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A70"
name="service"
ns="uuid-0016B448-EB27-47E3-AC09-9655CEF46A03">
<primaryKey fields="productNo"/>
<typedProperty id="uuid-0016B448-EB27-47E3-AC09-9655CEF46A71"
name="productNo">
<simpleType ref="uuid-0016B448-EB27-47E3-AC09-9655CEF46A72"/>
</typedProperty>
<property name="name"/>
<property name="description"/>
<typedProperty name="duration"
minOccurs="0">
<simpleType ref="uuid-0016B448-EB27-47E3-AC09-9655CEF46A76"/>
</typedProperty>
</asset>
</level2>
</aom>
Patterns specify conceptual Design Patterns that can be applied to models. The Pattern schema is an extension of the model schema. Additions are printed in bold type.
| Syntax | Description | Constraints |
<!ELEMENT aom (description?, defaultNamespace, namespacePrefix*, scope*, defaultTypeSystem?, typeSystemPrefix*, defaultConstraintLanguage?, constraintLanguagePrefix*, defaultOperationVocabulary?, operationVocabularyPrefix*, annotation*, apply*, include*, process? typeDef*, ( level2 | asset )*, appInfo*, patternInfo )> <!ATTLIST aom
xmlns CDATA #FIXED
"http://www.aomodeling.org/2002/AOM"
name NMTOKEN #REQUIRED
id ID #REQUIRED
>
|
The aom element describes a
complete pattern.
The name attribute specifies the pattern name. |
|
<!ELEMENT patternInfo ( keyword*, alias*, purpose?, motivation?, applicability?, consequences?, knownApplications?, relatedPattern*, acknowledgements?, reference*, )> <!ATTLIST patternInfo
xmlns CDATA #FIXED
"http://www.aomodeling.org/2002/AOM"
category NMTOKEN #REQUIRED
copyright CDATA #IMPLIED
provider CDATA #IMPLIED
id ID #IMPLIED
>
|
The patternInfo element contains
additional textual pattern information.
category specifies the category the pattern belongs to. Category hierarchies are possible by specifying path expressions. copyright specifies copyright information. provider specifies provider information. |
category must be a list of NMTOKENs separated by slashes ("/"). |
<!ELEMENT alias (#PCDATA) > <!ATTLIST alias
id ID #IMPLIED
>
|
The alias element contains an alias name for the pattern. | |
<!ELEMENT purpose ANY > <!ATTLIST purpose
id ID #IMPLIED
>
|
The purpose element describes the purpose of the pattern. | The purpose element must contain valid XHTML content of namespace http://www.w3.org/1999/xhtml. |
<!ELEMENT motivation ANY > <!ATTLIST motivation
id ID #IMPLIED
>
|
The motivation element describes the motivation of the pattern. | The motivation element must contain valid XHTML content of namespace http://www.w3.org/1999/xhtml. |
<!ELEMENT applicability ANY > <!ATTLIST applicability
id ID #IMPLIED
>
|
The applicability element describes the applicability of the pattern. | The applicability element must contain valid XHTML content of namespace http://www.w3.org/1999/xhtml. |
<!ELEMENT consequences ANY > <!ATTLIST consequences
id ID #IMPLIED
>
|
The consequences element describes the consequences of the pattern. | The consequences element must contain valid XHTML content of namespace http://www.w3.org/1999/xhtml. |
<!ELEMENT knownApplications ANY > <!ATTLIST knownApplications
id ID #IMPLIED
>
|
The knownApplications element describes the consequences of the pattern. | The knownApplications element must contain valid XHTML content of namespace http://www.w3.org/1999/xhtml. |
<!ELEMENT relatedPattern ANY> <!ATTLIST relatedPattern
id ID #IMPLIED
href CDATA #IMPLIED
name CDATA #REQUIRED
>
|
The relatedPattern element lists
patterns related to this pattern. The content of the element describes the
nature of the relationship.
name specifies the name of the related pattern. href specifies the namespace URI of the related patterns default namespace. |
The relatedPattern element must contain
valid XHTML content of namespace http://www.w3.org/1999/xhtml.
The href attribute must contain a valid, nonempty URI. |
<!ELEMENT acknowledgements ANY > <!ATTLIST acknowledgements
id ID #IMPLIED
>
|
The acknowledgements element lists acknowledgements for contributions to this pattern. | The acknowledgements element must contain valid XHTML content of namespace http://www.w3.org/1999/xhtml. |
<!ELEMENT reference ANY > <!ATTLIST reference
id ID #IMPLIED
url CDATA #REQUIRED
>
|
The reference element establishes links to additional documentation and suggested reading.. | The url attribute must be a valid URL. |
| Syntax | Description | Constraints |
<!ELEMENT level2 (description?, displayLabel*, (level2 | asset)+, annotation*, appInfo* )> <!ATTLIST level2
id ID #REQUIRED
identifyingItem NMTOKEN #REQUIRED
iterateFrom CDATA "1"
iterateTo CDATA "1"
>
|
iterateFrom defines the
lower limit for item iterations when the item is applied to the target
model. E.g. an item with iterateFrom="2" must have
at least two targets (mappings or creations) in the target model.
iterateTo defines the upper limit for item iterations. |
Allowed values for
iterateFrom
are quoted integers greater or equal zero.
Allowed values for iterateTo are quoted integers greater zero and the string "unbounded".
|
| Syntax | Description | Constraints |
<!ELEMENT asset (description?, displayLabel*, primaryKey*, typeDecl*, ( typedProperty | property | sequence | choice | bag )*, constraint*, operation*, annotation*, subjectID*, ( cluster | arc | isa )*, appInfo* )> <!ATTLIST asset
abstract (false|true) "false"
compositor (sequence|bag) "sequence"
icon CDATA #IMPLIED
id ID #REQUIRED
name NMTOKEN #REQUIRED
ns NMTOKEN #REQUIRED
scope IDREFS #IMPLIED
unresolved (false|true) "false"
iterateFrom CDATA "1"
iterateTo CDATA "1"
>
|
iterateFrom defines the
lower limit for item iterations when the item is applied to the target
model. E.g. an item with iterateFrom="2" must have
at least two targets (mappings or creations) in the target model.
iterateTo defines the upper limit for item iterations. |
Allowed values for
iterateFrom
are quoted integers greater or equal zero.
Allowed values for iterateTo are quoted integers greater zero and the string "unbounded". |
Annotation scripts use a subset of the syntactical elements of model serializations.
| Syntax | Description | Constraints |
<!ELEMENT aom (description?, defaultNamespace, namespacePrefix*, scope*, defaultTypeSystem?, typeSystemPrefix*, defaultConstraintLanguage?, constraintLanguagePrefix*, defaultOperationVocabulary?, operationVocabularyPrefix*, annotation*, apply*, include*, process? typeDef*, ( level2 | asset )*, appInfo* )> <!ATTLIST aom
xmlns CDATA #FIXED
"http://www.aomodeling.org/2002/AOM"
name NMTOKEN #REQUIRED
id ID #REQUIRED
>
|
The aom element describes a
complete annotation script.
The name attribute specifies the script name. |
| Home | Definition | Step-by-Step | Examples | Downloads |
Contact: info@aoModeling.org