XSD Data File Information-------------------------Author: The Open Group ArchiMate Exchange TeamStart date: 2 May 2013Revision date: 3 August 2015XSD Version: 1.0Status: FinalDescription: The Open Group ArchiMate Open Exchange Format
Notes and rationale-------------------This is the XSD for the ArchiMate Model Exchange File Format.This documentation is automatically generated from the XSD that hasbeen developed. The master XSD file can be obtained with the standard from http://www.opengroup.org/bookstore/catalog/ .A number of example models in the exchange file format are availablefor interoperability testing. For details of how to obtain thosefiles, see the cover pages.For information on how to provide feedback on this standard see thecover pages.
See http://www.w3.org/XML/1998/namespace.html and http://www.w3.org/TR/REC-xml for information about this namespace. This schema document describes the XML namespace, in a form suitable for import by other schema documents. Note that local names in this namespace are intended to be defined only by the World Wide Web Consortium or its subgroups. The following names are currently defined in this namespace and should not be used with conflicting semantics by any Working Group, specification, or document instance: base (as an attribute name): denotes an attribute whose value provides a URI to be used as the base for interpreting any relative URIs in the scope of the element on which it appears; its value is inherited. This name is reserved by virtue of its definition in the XML Base specification. id (as an attribute name): denotes an attribute whose value should be interpreted as if declared to be of type ID. This name is reserved by virtue of its definition in the xml:id specification. lang (as an attribute name): denotes an attribute whose value is a language code for the natural language of the content of any element; its value is inherited. This name is reserved by virtue of its definition in the XML specification. space (as an attribute name): denotes an attribute whose value is a keyword indicating what whitespace processing discipline is intended for the content of the element; its value is inherited. This name is reserved by virtue of its definition in the XML specification. Father (in any context at all): denotes Jon Bosak, the chair of the original XML Working Group. This name is reserved by the following decision of the W3C XML Plenary and XML Coordination groups: In appreciation for his vision, leadership and dedication the W3C XML Plenary on this 10th day of February, 2000 reserves for Jon Bosak in perpetuity the XML name xml:Father
This schema defines attributes and an attribute group suitable for use by schemas wishing to allow xml:base, xml:lang, xml:space or xml:id attributes on elements they define. To enable this, such a schema must import this schema for the XML namespace, e.g. as follows: <schema . . .> . . . <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> Subsequently, qualified reference to any of the attributes or the group defined below will have the desired effect, e.g. <type . . .> . . . <attributeGroup ref="xml:specialAttrs"/> will define a type which will schema-validate an instance element with any of those attributes
In keeping with the XML Schema WG's standard versioningpolicy, this schema document will persist athttp://www.w3.org/2007/08/xml.xsd.At the date of issue it can also be found athttp://www.w3.org/2001/xml.xsd.The schema document at that URI may however change in the future,in order to remain compatible with the latest version of XML Schemaitself, or with the XML namespace itself. In other words, if the XMLSchema or XML namespaces change, the version of this document athttp://www.w3.org/2001/xml.xsd will changeaccordingly; the version athttp://www.w3.org/2007/08/xml.xsd will not change.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
This is the root model element.It is a container for the elements, relationships, diagrams and organisations of the model.The "metadata" element is the optional metadata for the model.The "name" element is the name of the model.The "documentation" element is for the documentation of the model.The "properties" element is optional and is for any property instance of the model.The "elements" element is mandatory and is a container for all elements.The "relationships" element is optional and is a container for any relationships.The "organization" element is optional and is a container for structural organisation of model elements and relationships.The "propertydefs" element is optional and is a container for any property definitions.The "views" element is optional and is a container for any Views.
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate'
Source
<xs:complexType name="modelType"><xs:annotation><xs:documentation>This is the root model element. It is a container for the elements, relationships, diagrams and organisations of the model. The "metadata" element is the optional metadata for the model. The "name" element is the name of the model. The "documentation" element is for the documentation of the model. The "properties" element is optional and is for any property instance of the model. The "elements" element is mandatory and is a container for all elements. The "relationships" element is optional and is a container for any relationships. The "organization" element is optional and is a container for structural organisation of model elements and relationships. The "propertydefs" element is optional and is a container for any property definitions. The "views" element is optional and is a container for any Views.</xs:documentation></xs:annotation><xs:sequence><xs:element name="metadata" type="MetadataType" minOccurs="0" maxOccurs="1"/><xs:element name="name" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="documentation" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="properties" type="propertiesType" minOccurs="0" maxOccurs="1"/><xs:element name="elements" type="elementsType" minOccurs="1" maxOccurs="1"/><xs:element name="relationships" type="relationshipsType" minOccurs="0" maxOccurs="1"/><xs:element name="organization" type="organizationType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="propertydefs" type="propertiesDefinitionsType" minOccurs="0" maxOccurs="1"/><xs:element name="views" type="viewsType" minOccurs="0" maxOccurs="1"/><xs:group ref="grp.any"/></xs:sequence><xs:attribute name="identifier" type="xs:ID" use="required"/><xs:attribute name="version" type="xs:string" use="optional"/><xs:anyAttribute namespace="##other" processContents="strict"/></xs:complexType>
An instance of the metadata element contains data structures that declare descriptive information about a metadata element's parent only. One or more different metadata models may be declared as child extensions of a metadata element.
<xs:complexType name="MetadataType"><xs:annotation><xs:documentation>An instance of the metadata element contains data structures that declare descriptive information about a metadata element's parent only. One or more different metadata models may be declared as child extensions of a metadata element.</xs:documentation></xs:annotation><xs:sequence><xs:element name="schema" type="xs:string" minOccurs="0" maxOccurs="1"/><xs:element name="schemaversion" type="xs:string" minOccurs="0" maxOccurs="1"/><xs:group ref="grp.any"/></xs:sequence></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="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"/></xs:extension></xs:simpleContent></xs:complexType>
<xs:complexType name="propertiesType"><xs:annotation><xs:documentation>A container for all of the Property value instances for an element/relationship.</xs:documentation></xs:annotation><xs:sequence><xs:element name="property" type="propertyType" minOccurs="0" 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:group ref="grp.any"/></xs:sequence><xs:attribute name="identifierref" type="xs:IDREF" use="required"/></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="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate'
Source
<xs:complexType name="elementType"><xs:annotation><xs:documentation>A base element type that can be extended by concrete ArchiMate types.</xs:documentation></xs:annotation><xs:sequence><xs:element name="label" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="documentation" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="properties" type="propertiesType" minOccurs="0" maxOccurs="1"/><xs:group ref="grp.any"/></xs:sequence><xs:attribute name="identifier" use="required" type="xs:ID"/><xs:anyAttribute namespace="##other" processContents="strict"/></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="0" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
<xs:complexType name="organizationType"><xs:annotation><xs:documentation>This is a container for organizing elements and relationship references in the model using items.</xs:documentation></xs:annotation><xs:choice maxOccurs="unbounded"><xs:element name="item" type="itemType" minOccurs="0" maxOccurs="unbounded"/></xs:choice></xs:complexType>
An item element represents a structural node in a particular organization. An item element may be a parent or sibling of other Item elements, each one representing a unique structural node. An item 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 one Item element.
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate'
Source
<xs:complexType name="itemType"><xs:annotation><xs:documentation>An item element represents a structural node in a particular organization. An item element may be a parent or sibling of other Item elements, each one representing a unique structural node. An item 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 one Item element.</xs:documentation></xs:annotation><xs:sequence><xs:element name="label" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="documentation" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="item" type="itemType" minOccurs="0" maxOccurs="unbounded"/><xs:group ref="grp.any"/></xs:sequence><xs:attribute name="identifier" type="xs:ID" use="optional"/><xs:attribute name="identifierref" type="xs:IDREF" use="optional"/><xs:anyAttribute namespace="##other" processContents="strict"/></xs:complexType>
<xs:complexType name="propertiesDefinitionsType"><xs:annotation><xs:documentation>This is a container for all the Property definition types used globally in the model.</xs:documentation></xs:annotation><xs:sequence><xs:element name="propertydef" type="propertyDefinitionType" minOccurs="1" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
<xs:complexType name="viewsType"><xs:annotation><xs:documentation>This is a container for all of the Views in the model. Must contain at least one View.</xs:documentation></xs:annotation><xs:sequence><xs:element name="view" type="viewType" minOccurs="1" maxOccurs="unbounded"/></xs:sequence></xs:complexType>
Graphical node type. It can contain child node types.If the 'elementref' attribute is present, it should reference an existing ArchiMate element.If the node is an ArchiMate element type, the node's label, documentation and properties may be determined(i.e inherited) from those in the referenced ArchiMate element. Otherwise the node's label, documentation and propertiescan be provided and will be additional to (or over-ride) those contained in the referenced ArchiMate element.
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate'
Source
<xs:complexType name="nodeType"><xs:annotation><xs:documentation>Graphical node type. It can contain child node types. If the 'elementref' attribute is present, it should reference an existing ArchiMate element. If the node is an ArchiMate element type, the node's label, documentation and properties may be determined (i.e inherited) from those in the referenced ArchiMate element. Otherwise the node's label, documentation and properties can be provided and will be additional to (or over-ride) those contained in the referenced ArchiMate element.</xs:documentation></xs:annotation><xs:sequence><xs:element name="label" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="documentation" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="properties" type="propertiesType" minOccurs="0" maxOccurs="1"/><xs:element name="style" type="styleType" minOccurs="0" maxOccurs="1"/><xs:element name="node" type="nodeType" minOccurs="0" maxOccurs="unbounded"/><xs:group ref="grp.any"/></xs:sequence><xs:attribute name="identifier" use="required" type="xs:ID"/><xs:attribute name="elementref" type="xs:IDREF" use="optional"/><xs:attribute name="x" use="required" type="xs:integer"/><xs:attribute name="y" use="required" type="xs:integer"/><xs:attribute name="w" use="required" type="xs:integer"/><xs:attribute name="h" use="required" type="xs:integer"/><xs:attribute name="type" use="optional" type="xs:string"/><xs:anyAttribute namespace="##other" processContents="strict"/></xs:complexType>
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate'
Source
<xs:complexType name="styleType"><xs:annotation><xs:documentation>A Style type for a node and a connection. It is a container for style properties such as color, font.</xs:documentation></xs:annotation><xs:sequence><xs:element name="fillColor" type="rgbColorType" minOccurs="0" maxOccurs="1"/><xs:element name="lineColor" type="rgbColorType" minOccurs="0" maxOccurs="1"/><xs:element name="font" type="fontType" minOccurs="0" maxOccurs="1"/><xs:group ref="grp.any"/></xs:sequence><xs:attribute name="lineWidth" use="optional" type="xs:integer"/><xs:anyAttribute namespace="##other" processContents="strict"/></xs:complexType>
<xs:complexType name="rgbColorType"><xs:annotation><xs:documentation>RGB Color type. The r, g, b attributes range from 0 - 255. The a (alpha) transparency attribute is optional. 0 = full transparency, 100 = opaque.</xs:documentation></xs:annotation><xs:attribute name="r" type="rgbValueType" use="required"/><xs:attribute name="g" type="rgbValueType" use="required"/><xs:attribute name="b" type="rgbValueType" use="required"/><xs:attribute name="a" use="optional"><xs:simpleType><xs:restriction base="xs:unsignedByte"><xs:minInclusive value="0"/><xs:maxInclusive value="100"/></xs:restriction></xs:simpleType></xs:attribute></xs:complexType>
Graphical connection type.If the 'relationshipref' attribute is present, the connection should reference an existing ArchiMate relationship.If the connection is an ArchiMate relationship type, the connection's label, documentation and properties may be determined(i.e inherited) from those in the referenced ArchiMate relationship. Otherwise the connection's label, documentation and propertiescan be provided and will be additional to (or over-ride) those contained in the referenced ArchiMate relationship.
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate'
Source
<xs:complexType name="connectionType"><xs:annotation><xs:documentation>Graphical connection type. If the 'relationshipref' attribute is present, the connection should reference an existing ArchiMate relationship. If the connection is an ArchiMate relationship type, the connection's label, documentation and properties may be determined (i.e inherited) from those in the referenced ArchiMate relationship. Otherwise the connection's label, documentation and properties can be provided and will be additional to (or over-ride) those contained in the referenced ArchiMate relationship.</xs:documentation></xs:annotation><xs:sequence><xs:element name="label" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="documentation" type="langStringType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="properties" type="propertiesType" minOccurs="0" maxOccurs="1"/><xs:element name="bendpoint" type="bendpointType" minOccurs="0" maxOccurs="unbounded"/><xs:element name="style" type="styleType" minOccurs="0" maxOccurs="1"/><xs:group ref="grp.any"/></xs:sequence><xs:attribute name="identifier" use="required" type="xs:ID"/><xs:attribute name="relationshipref" type="xs:IDREF" use="optional"/><xs:attribute name="source" type="xs:IDREF" use="required"/><xs:attribute name="target" type="xs:IDREF" use="required"/><xs:anyAttribute namespace="##other" processContents="strict"/></xs:complexType>
<xs:complexType name="bendpointType"><xs:annotation><xs:documentation>A bendpoint type for a connection.</xs:documentation></xs:annotation><xs:attribute name="x" use="required" type="xs:integer"/><xs:attribute name="y" use="required" type="xs:integer"/></xs:complexType>
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate'
Source
<xs:complexType name="Junction"><xs:annotation><xs:documentation>Junction is a special case. It is treated as an element.</xs:documentation></xs:annotation><xs:complexContent><xs:extension base="elementType"/></xs:complexContent></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.
<xs:attribute name="lang"><xs:annotation><xs:documentation>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.</xs:documentation></xs:annotation><xs:simpleType><xs:union memberTypes="xs:language"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value=""/></xs:restriction></xs:simpleType></xs:union></xs:simpleType></xs:attribute>
<xs:attribute name="base" type="xs:anyURI"><xs:annotation><xs:documentation>See http://www.w3.org/TR/xmlbase/ for information about this attribute.</xs:documentation></xs:annotation></xs:attribute>
<xs:attribute name="id" type="xs:ID"><xs:annotation><xs:documentation>See http://www.w3.org/TR/xml-id/ for information about this attribute.</xs:documentation></xs:annotation></xs:attribute>
Any namespaced element from any namespace may be included within an "any" element. Thenamespace 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.
ANY element from ANY namespace OTHER than 'http://www.opengroup.org/xsd/archimate'
Source
<xs:group name="grp.any"><xs:annotation><xs:documentation>Any namespaced 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>
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.