name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/' , properties{0,1} , metadata{0,1} , elements{0,1} , relationships{0,1} , organizations* , propertyDefinitions{0,1}
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:element name="model" type="ModelType"><xs:key name="ElementKey"><xs:selector xpath="./archimate:elements/archimate:element"/><xs:field xpath="@identifier"/></xs:key><xs:key name="RelationshipKey"><xs:selector xpath="./archimate:relationships/archimate:relationship"/><xs:field xpath="@identifier"/></xs:key><xs:key name="PropertyDefinitionKey"><xs:selector xpath=".//archimate:propertyDefinition"/><xs:field xpath="@identifier"/></xs:key><xs:unique name="OrganizationKey"><xs:selector xpath=".//archimate:item"/><xs:field xpath="@identifier"/></xs:unique><!-- Because Property Definitions can also reside in Profiles and Stereotypes the key range must be over the whole model --><xs:keyref name="PropertyDefinitionRef" refer="PropertyDefinitionKey"><xs:selector xpath=".//archimate:propertyDefinitionRef"/><xs:field xpath="@ref"/></xs:keyref><xs:keyref name="PropertyDefinitionRefAttribute" refer="PropertyDefinitionKey"><xs:selector xpath=".//archimate:*"/><xs:field xpath="@propertyDefinitionRef"/></xs:keyref><xs:keyref name="ElementRef" refer="ElementKey"><xs:selector xpath=".//archimate:elementRef"/><xs:field xpath="@ref"/></xs:keyref><xs:keyref name="ElementRefAttribute" refer="ElementKey"><xs:selector xpath=".//archimate:*"/><xs:field xpath="@elementRef"/></xs:keyref><xs:keyref name="RelationshipRef" refer="RelationshipKey"><xs:selector xpath=".//archimate:relationshipRef"/><xs:field xpath="@ref"/></xs:keyref><xs:keyref name="RelationshipRefAttribute" refer="RelationshipKey"><xs:selector xpath=".//archimate:*"/><xs:field xpath="@relationshipRef"/></xs:keyref><!-- Concept Keys and Keyrefs --><xs:key name="ConceptKey"><xs:selector xpath="./archimate:relationships/archimate:relationship | ./archimate:elements/archimate:element"/><xs:field xpath="@identifier"/></xs:key><xs:keyref name="ConceptRef" refer="ConceptKey"><xs:selector xpath=".//archimate:conceptRef"/><xs:field xpath="@ref"/></xs:keyref><xs:keyref name="ConceptRefAttribute" refer="ConceptKey"><xs:selector xpath=".//archimate:*"/><xs:field xpath="@conceptRef"/></xs:keyref><xs:keyref name="SourceRef" refer="ConceptKey"><xs:selector xpath=".//archimate:relationship"/><xs:field xpath="@source"/></xs:keyref><xs:keyref name="TargetRef" refer="ConceptKey"><xs:selector xpath=".//archimate:relationship"/><xs:field xpath="@target"/></xs:keyref><!-- Stereotype References for Extension (these must be maintained in the Model XSD) --><!-- This is the only Key which is not as specific as it could be but must be here to work should be scoped under <extension><stereotype> --><xs:key name="StereotypeKey"><xs:selector xpath="./extensions/stereotypes/archimate:stereotype"/><xs:field xpath="@identifier"/></xs:key><xs:keyref name="StereotypeRef" refer="StereotypeKey"><xs:selector xpath=".//archimate:stereotypeRef"/><xs:field xpath="@ref"/></xs:keyref><xs:keyref name="StereotypeRefAttribute" refer="StereotypeKey"><xs:selector xpath=".//archimate:*"/><xs:field xpath="@stereotypeRef"/></xs:keyref></xs:element>
Attempting to install the relevant ISO 2- and 3-letter codes as the enumerated possible values is probably never going to be a realistic possibility. See RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry at http://www.iana.org/assignments/lang-tag-apps.htm for further information. The union allows for the 'un-declaration' of xml:lang with the empty string.
Source
<xs:complexType name="LangStringType"><xs:annotation><xs:documentation>A base string type for multi-language strings.</xs:documentation></xs:annotation><xs:simpleContent><xs:extension base="xs:string"><xs:attribute ref="xml:lang" use="optional"/></xs:extension></xs:simpleContent></xs:complexType>
Attempting to install the relevant ISO 2- and 3-letter codes as the enumerated possible values is probably never going to be a realistic possibility. See RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry at http://www.iana.org/assignments/lang-tag-apps.htm for further information. The union allows for the 'un-declaration' of xml:lang with the empty string.
Source
<xs:complexType name="PreservedLangStringType"><xs:annotation><xs:documentation>A base string type for multi-language strings that preserves whitespace.</xs:documentation></xs:annotation><xs:simpleContent><xs:restriction base="LangStringType"><xs:whiteSpace value="preserve"/></xs:restriction></xs:simpleContent></xs:complexType>
name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Children
documentation, name
Attributes
QName
Type
Use
identifier
xs:ID
required
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="ReferenceableType" abstract="true"><xs:annotation><xs:documentation>Something that can be referenced in the model.</xs:documentation></xs:annotation><xs:sequence><xs:group ref="NameGroup" minOccurs="0" maxOccurs="unbounded"/><xs:group ref="DocumentationGroup"/><xs:group ref="grp.any"/></xs:sequence><xs:attributeGroup ref="IdentifierGroup"/><xs:anyAttribute namespace="##other" processContents="strict"/></xs:complexType>
<xs:complexType name="PropertiesType"><xs:annotation><xs:documentation>A container for all of the Property value instances for an object.</xs:documentation></xs:annotation><xs:sequence><xs:element name="property" type="PropertyType" minOccurs="1" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
<xs:complexType name="PropertyType"><xs:annotation><xs:documentation>A Property instance type declaring the reference to a Property definition and containing the Property value.</xs:documentation></xs:annotation><xs:sequence><xs:element name="value" type="LangStringType" minOccurs="1" maxOccurs="unbounded"/></xs:sequence><xs:attribute name="propertyDefinitionRef" type="xs:IDREF" use="required"/></xs:complexType>
name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Children
documentation, name
Attributes
QName
Type
Use
identifier
xs:ID
required
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="NamedReferenceableType" abstract="true"><xs:annotation><xs:documentation>ObjectType which requires a Name and an ID.</xs:documentation></xs:annotation><xs:complexContent><xs:restriction base="ReferenceableType"><xs:sequence><xs:group ref="NameGroup" minOccurs="1" maxOccurs="unbounded"/><xs:group ref="DocumentationGroup"/><xs:group ref="grp.any"/></xs:sequence><xs:attributeGroup ref="IdentifierGroup"/><xs:anyAttribute namespace="##other" processContents="strict"/></xs:restriction></xs:complexContent></xs:complexType>
name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/' , properties{0,1} , metadata{0,1} , elements{0,1} , relationships{0,1} , organizations* , propertyDefinitions{0,1}
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="ModelType"><xs:annotation><xs:documentation>This is the root model type. It is a container for the elements, relationships, diagrams and organizations of the model.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="NamedReferenceableType"><xs:sequence><xs:group ref="PropertiesGroup"/><xs:element name="metadata" type="MetadataType" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The "metadata" element is the optional meta-data for the model.</xs:documentation></xs:annotation></xs:element><xs:element name="elements" type="ElementsType" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The "elements" element is optional and is a container for all elements.</xs:documentation></xs:annotation></xs:element><xs:element name="relationships" type="RelationshipsType" minOccurs="0" maxOccurs="1"><xs:annotation><xs:documentation>The "relationships" element is optional and is a container for all relationships.</xs:documentation></xs:annotation></xs:element><xs:element name="organizations" type="OrganizationsType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>The "organizations" element is optional and is a container for the tree nodes of the different structural organization of model elements and relationships.</xs:documentation></xs:annotation></xs:element><xs:element name="propertyDefinitions" type="PropertyDefinitionsType" minOccurs="0" maxOccurs="1"/></xs:sequence><xs:attribute name="version" type="xs:string" use="optional"><xs:annotation><xs:documentation>Specifies the version of the model.</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:complexContent></xs:complexType>
(schema{0,1} , schemaversion{0,1} , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/') | schemaInfo*
Children
schema, schemaInfo, schemaversion
Source
<xs:complexType name="MetadataType"><xs:annotation><xs:documentation>An instance of the meta-data element contains data structures that declare descriptive information about a meta-data element's parent only. One or more different meta-data models may be declared as child extensions of a meta-data element.</xs:documentation></xs:annotation><xs:choice><xs:group ref="SchemaInfoGroup"/><xs:element name="schemaInfo" type="SchemaInfoType" minOccurs="0" maxOccurs="unbounded"/></xs:choice></xs:complexType>
<xs:complexType name="ElementsType"><xs:annotation><xs:documentation>This is a container for the elements of the model.</xs:documentation></xs:annotation><xs:sequence><xs:element name="element" type="ElementType" minOccurs="1" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/' , properties{0,1}
Children
documentation, name, properties
Attributes
QName
Type
Use
identifier
xs:ID
required
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="ElementType" abstract="true"><xs:annotation><xs:documentation>A base element type that can be extended by concrete ArchiMate types. Note that ElementType is abstract, so one must have derived types of this type. this is indicated in xml by having a tag name of "element" and an attribute of xsi:type="BusinessRole" where BusinessRole is a derived type from ElementType.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="ConceptType"/></xs:complexContent></xs:complexType>
name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/' , properties{0,1}
Children
documentation, name, properties
Attributes
QName
Type
Use
identifier
xs:ID
required
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="ConceptType" abstract="true"><xs:annotation><xs:documentation>This is an abstract class for Concepts (Elements, Relationships, Composites, and RelationConnectors).</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="ReferenceableType"><xs:sequence><xs:group ref="ConceptGroup"/></xs:sequence><xs:attributeGroup ref="ConceptAttributeGroup"/></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="RelationshipsType"><xs:annotation><xs:documentation>This is a container for the relationships of the model.</xs:documentation></xs:annotation><xs:sequence><xs:element name="relationship" type="RelationshipType" minOccurs="1" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/' , properties{0,1}
Children
documentation, name, properties
Attributes
QName
Type
Use
identifier
xs:ID
required
source
xs:IDREF
required
target
xs:IDREF
required
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="RelationshipType" abstract="true"><xs:annotation><xs:documentation>A base relationship type that can be extended by concrete ArchiMate types. Note that RelationshipType is abstract, so one must have derived types of this type. this is indicated in xml by having a tag name of "relationship" and an attribute of xsi:type="AccessRelationship" where AccessRelationship is a derived type from RelationshipType.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="ConceptType"><xs:attribute name="source" type="xs:IDREF" use="required"/><xs:attribute name="target" type="xs:IDREF" use="required"/></xs:extension></xs:complexContent></xs:complexType>
<xs:complexType name="OrganizationsType"><xs:annotation><xs:documentation>This is a container for the Organizations of the model.</xs:documentation></xs:annotation><xs:sequence><xs:element name="item" type="OrganizationType" minOccurs="1" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
label+ , documentation* , item* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Children
documentation, item, label
Attributes
QName
Type
Use
Annotation
identifier
xs:ID
optional
identifierRef
xs:IDREF
optional
identifierRef could refer to anything that has an identifier in the model.
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="OrganizationType"><xs:annotation><xs:documentation>An organization element represents a structural node in a particular organization of the model concepts. An organization element may be a parent or sibling of other organization elements, each one representing a unique structural node. An organization element may reference an ArchiMate element, ArchiMate relationship, or nothing (in which case it is a structural container) An organization has no meaning unless it has at least child organization element. Note that Organization must fit into a tree structure (so strictly nested).</xs:documentation></xs:annotation><xs:sequence><xs:group ref="LabelGroup" minOccurs="0" maxOccurs="unbounded"/><xs:group ref="DocumentationGroup" minOccurs="0" maxOccurs="unbounded"/><xs:element name="item" type="OrganizationType" minOccurs="0" maxOccurs="unbounded"/><xs:group ref="grp.any"/></xs:sequence><xs:attributeGroup ref="OptionalIdentifierGroup"/><xs:attribute name="identifierRef" type="xs:IDREF" use="optional"><xs:annotation><xs:documentation>identifierRef could refer to anything that has an identifier in the model.</xs:documentation></xs:annotation></xs:attribute><xs:anyAttribute namespace="##other" processContents="strict"/></xs:complexType>
<xs:complexType name="PropertyDefinitionsType"><xs:annotation><xs:documentation>This is a container for the Property definitions in the model.</xs:documentation></xs:annotation><xs:sequence><xs:element name="propertyDefinition" type="PropertyDefinitionType" minOccurs="1" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="PropertyDefinitionType"><xs:annotation><xs:documentation>A Property definition type containing its unique identifier, name, and data type.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="NamedReferenceableType"><xs:attribute name="type" type="DataType" use="required"/></xs:extension></xs:complexContent></xs:complexType>
name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/' , properties{0,1}
Children
documentation, name, properties
Attributes
QName
Type
Use
identifier
xs:ID
required
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="RealElementType" abstract="true"><xs:annotation><xs:documentation>Forces Real Elements to have Names.</xs:documentation></xs:annotation><xs:complexContent><xs:restriction base="ElementType"><xs:sequence><xs:group ref="NameGroup" minOccurs="1" maxOccurs="unbounded"/><xs:group ref="DocumentationGroup"/><xs:group ref="grp.any"/><xs:group ref="ConceptGroup"/></xs:sequence><xs:attributeGroup ref="IdentifierGroup"/><xs:attributeGroup ref="ConceptAttributeGroup"/><xs:anyAttribute namespace="##other" processContents="strict"/></xs:restriction></xs:complexContent></xs:complexType>
name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/' , properties{0,1}
Children
documentation, name, properties
Attributes
QName
Type
Use
identifier
xs:ID
required
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="RelationshipConnectorType" abstract="true"><xs:annotation><xs:documentation>An abstract type for RelationshipConnectors. It is treated as an ElementType.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="ElementType"/></xs:complexContent></xs:complexType>
name+ , documentation* , ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/' , properties{0,1}
Children
documentation, name, properties
Attributes
QName
Type
Use
identifier
xs:ID
required
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="CompositeType" abstract="true"><xs:annotation><xs:documentation>An abstract type for Composites.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="ElementType"/></xs:complexContent></xs:complexType>
<xs:simpleType name="AccessTypeEnum"><xs:annotation><xs:documentation>Enumeration of Element types.</xs:documentation></xs:annotation><xs:restriction base="xs:NMTOKEN"><xs:enumeration value="Access"/><xs:enumeration value="Read"/><xs:enumeration value="Write"/><xs:enumeration value="ReadWrite"/></xs:restriction></xs:simpleType>
This Attribute is only meaningful for Influence RelationshipType. This is optional for the InfluenceRelationshipType.
source
xs:IDREF
required
target
xs:IDREF
required
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:complexType name="Influence"><xs:complexContent><xs:extension base="RelationshipType"><xs:attribute name="modifier" type="InfluenceModifierType" use="optional"><xs:annotation><xs:documentation>This Attribute is only meaningful for Influence RelationshipType. This is optional for the Influence RelationshipType.</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:complexContent></xs:complexType>
<xs:group name="DocumentationGroup"><xs:sequence><xs:element name="documentation" type="PreservedLangStringType" minOccurs="0" maxOccurs="unbounded"><xs:annotation><xs:documentation>Documentation of the object.</xs:documentation></xs:annotation></xs:element></xs:sequence></xs:group>
ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate/3.0/'
Source
<xs:group name="grp.any"><xs:annotation><xs:documentation>Any namespace element from any namespace may be included within an "any" element. The namespace for the imported element must be defined in the instance, and the schema must be imported. The extension has a definition of "strict" i.e. they must have their own namespace.</xs:documentation></xs:annotation><xs:sequence><xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/></xs:sequence></xs:group>