Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Element ¶
type Element struct { *NamedReferenceableType *ElementType }
Element is the base element type that can be extended by concrete ArchiMate types.
Note that Element 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.
func NewElement ¶
func NewElement(id, name string, element LayerElement) *Element
NewElement creates a new element with the given id, name and element type.
type ElementType ¶
type ElementType struct {
Type LayerElement `xml:"xsi:type,attr"`
}
ElementType is the type of the archimate element.
type IdentifierGroup ¶
type IdentifierGroup struct {
IdentifierAttr string `xml:"identifier,attr"`
}
type LangStringType ¶
type LayerElement ¶
type LayerElement string
LayerElement is a type that represents the elements of an ArchiMate layer.
const Grouping LayerElement = "Grouping"
Grouping represents a group of elements that belong together.
type Model ¶
type Model struct { XMLName xml.Name `xml:"model"` Xmlns string `xml:"xmlns,attr"` XmlnsXsi string `xml:"xmlns:xsi,attr"` XsiSchemaLocation string `xml:"xsi:schemaLocation,attr"` Identifier string `xml:"identifier,attr"` *NamedReferenceableType Elements []*Element `xml:"elements>element"` Relationships []*Relationship `xml:"relationships>relationship,omitempty"` }
Model is the root model type for an ArchiMate Enterprise Architecture Model. It is a container for the elements, relationships, diagrams and organizations of the model.
See the official XSD for more information: https://www.opengroup.org/xsd/archimate/3.1/archimate3_Model.xsd
func (*Model) AddElement ¶
Adds an element to the model.
func (*Model) AddRelationship ¶
func (m *Model) AddRelationship(relationship *Relationship)
type NamedReferenceableType ¶
type NamedReferenceableType struct { *ReferenceableType *NameGroup }
NamedReferenceableType represents something that can be referenced in the model and has a name.
type ReferenceableType ¶
type ReferenceableType struct {
*IdentifierGroup
}
ReferenceableType represents something that can be referenced in the model.
type Relationship ¶
type Relationship struct { *IdentifierGroup *RelationshipGroup *ElementType }
Relationship is a base relationship type that can be extended by concrete ArchiMate types.
Note that Relationship 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.
func NewRelationship ¶
func NewRelationship(source, target string, relationship LayerElement) *Relationship
type RelationshipGroup ¶
type RelationshipType ¶
type RelationshipType LayerElement
const RelationshipTypeAssignment RelationshipType = "Assignment"
const RelationshipTypeComposition RelationshipType = "Composition"
const RelationshipTypeRealization RelationshipType = "Realization"
type TechnologyLayerElement ¶
type TechnologyLayerElement LayerElement
TechnologyLayerElement is a type that represents the elements of the ArchiMate technology layer.
See https://pubs.opengroup.org/architecture/archimate31-doc/chap10.html
const TechnologyElementArtifact TechnologyLayerElement = "Artifact"
TechnologyElementArtifact represents a piece of data that is used or produced in a software development process, or by deployment and operation of an IT system.
const TechnologyElementCommunicationNetwork TechnologyLayerElement = "CommunicationNetwork"
TechnologyElementCommunicationNetwork represents a set of structures that connects nodes for transmission, routing, and reception of data.
const TechnologyElementDevice TechnologyLayerElement = "Device"
TechnologyElementDevice represents a physical IT resource upon which system software and artifacts may be stored or deployed for execution.
const TechnologyElementNode TechnologyLayerElement = "Node"
TechnologyElementNode represents a computational or physical resource that hosts, manipulates, or interacts with other computational or physical resources.
const TechnologyElementPath TechnologyLayerElement = "Path"
TechnologyElementPath represents a link between two or more nodes, through which these nodes can exchange data, energy, or material.
const TechnologyElementSystemSoftware TechnologyLayerElement = "SystemSoftware"
TechnologyElementSystemSoftware represents software that provides or contributes to an environment for storing, executing, and using software or data deployed within it.
const TechnologyElementTechnologyCollaboration TechnologyLayerElement = "TechnologyCollaboration"
TechnologyElementTechnologyCollaboration represents an aggregate of two or more technology internal active structure elements that work together to perform collective technology behavior.
const TechnologyElementTechnologyEvent TechnologyLayerElement = "TechnologyEvent"
TechnologyElementTechnologyEvent represents a technology state change.
const TechnologyElementTechnologyFunction TechnologyLayerElement = "TechnologyFunction"
TechnologyElementTechnologyFunction represents a collection of technology behavior that can be performed by a node.
const TechnologyElementTechnologyInteraction TechnologyLayerElement = "TechnologyInteraction"
TechnologyElementTechnologyInteraction represents a unit of collective technology behavior performed by (a collaboration of) two or more nodes.
const TechnologyElementTechnologyInterface TechnologyLayerElement = "TechnologyInterface"
TechnologyElementTechnologyInterface represents a point of access where technology services offered by a node can be accessed.
const TechnologyElementTechnologyProcess TechnologyLayerElement = "TechnologyProcess"
TechnologyElementTechnologyProcess represents a sequence of technology behaviors that achieves a specific result.
const TechnologyElementTechnologyService TechnologyLayerElement = "TechnologyService"
TechnologyElementTechnologyService represents an explicitly defined exposed technology behavior.