---
title: "8.2 Infrastructure"
chapter: "8 BPMN Core Structure"
source: "OMG BPMN 2.0.2 — formal/2013-12-09"
pages: "49-53"
---

> 8 BPMN Core Structure · páginas 49-53 · [índice](../README.md)


<a id="sec-8-2"></a>
## 8.2 Infrastructure


The BPMN Infrastructure package contains two elements that are used for both abstract syntax models and diagram models.


<a id="sec-8-2-1"></a>
### 8.2.1 Definitions


The Definitions class is the outermost containing object for all BPMN elements. It defines the scope of visibility and the namespace for all contained elements. The interchange of BPMN files will always be through one or more Definitions.


<a id="fig-8-4"></a>
![Figure 8.4 – Definitions class diagram](../figures/fig-8-4.png)

*Figure 8.4 – Definitions class diagram* (p. 50)


The Definitions element inherits the attributes and model associations of BaseElement (see Table 8.5). Table 8.1 presents the additional attributes and model associations of the Definitions element.


<a id="tab-8-1"></a>
**Table 8.1 – Definitions attributes and model association**

| Attribute Name | Description/Usage |
| --- | --- |
| **name**: string | The name of the Definition. |
| **targetNamespace**: string | This attribute identifies the namespace associated with the Definition and follows the convention established by XML Schema. |
| **expressionLanguage**: string [0..1] | This attribute identifies the formal Expression language used in Expressions within the elements of this Definition. The Default is “http://www.w3.org/1999/XPath”. This value MAY be overridden on each individual formal Expression. The language MUST be specified in a URI format. |
| **typeLanguage**: string [0..1] | This attribute identifies the type system used by the elements of this Definition. Defaults to http://www.w3.org/2001/XMLSchema. This value can be overridden on each individual ItemDefinition. The language MUST be specified in a URI format. |
| **rootElements**: RootElement [0..*] | This attribute lists the root elements that are at the root of this Definitions. These elements can be referenced within this Definitions and are visible to other Definitions. |
| **diagrams**: BPMNDiagram [0..*] | This attribute lists the BPMNDiagrams that are contained within this Definitions (see page 367 for more information on BPMNDiagrams). |
| **imports**: Import [0..*] | This attribute is used to import externally defined elements and make them available for use by elements within this Definitions. |
| **extensions**: Extension [0..*] | This attribute identifies extensions beyond the attributes and model associations in the base **BPMN** International Standard. See page 55 for additional information on extensibility. |
| **relationships**: Relationship [0..*] | This attribute enables the extension and integration of BPMN models into larger system/development **Processes**. |
| **exporter**: string [0..1] | This attribute identifies the tool that is exporting the bpmn model file. |
| **exporterVersion**: string [0..1] | This attribute identifies the version of the tool that is exporting the bpmn model file. |


<a id="sec-8-2-2"></a>
### 8.2.2 Import


The Import class is used when referencing external element, either **BPMN** elements contained in other **BPMN** Definitions or non-**BPMN** elements. Imports MUST be explicitly defined. Table 8.2 presents the attributes of Import.


<a id="tab-8-2"></a>
**Table 8.2 – Import attributes**

| Attribute Name | Description/Usage |
| --- | --- |
| **importType**: string | Identifies the type of document being imported by providing an absolute URI that identifies the encoding language used in the document. The value of the importType attribute MUST be set to http://www.w3.org/2001/XMLSchema when importing XML Schema 1.0 documents, to http://www.w3.org/TR/wsdl20/ when importing WSDL 2.0 documents, and http://www.omg.org/spec/BPMN/20100524/MODEL when importing BPMN 2.0 documents. Other types of documents MAY be supported. Importing Xml Schema 1.0, WSDL 2.0 and BPMN 2.0 types MUST be supported. |
| **location**: string [0..1] | Identifies the location of the imported element. |
| **namespace**: string | Identifies the namespace of the imported element. |


<a id="sec-8-2-3"></a>
### 8.2.3 Infrastructure Package XML Schemas


<a id="tab-8-3"></a>
**Table 8.3 – Definitions XML schema**

```xml
<xsd:element name="definitions" type="tDefinitions"/>
<xsd:complexType name="tDefinitions">
    <xsd:sequence>
        <xsd:element ref="import" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element ref="rootElement" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element ref="bpmndi:BPMNDiagram" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element ref="relationship" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID" use="optional"/>
    <xsd:attribute name="targetNamespace" type="xsd:anyURI" use="required"/>
    <xsd:attribute name="expressionLanguage" type="xsd:anyURI" use="optional" default="http://www.w3.org/1999/XPath"/>
    <xsd:attribute name="typeLanguage" type="xsd:anyURI" use="optional" default="http://www.w3.org/2001/XMLSchema"/>
    <xsd:anyAttribute name="exporter" type="xsd:ID"/>
    <xsd:anyAttribute name="exporterVersion" type="xsd:ID"/>
    <xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
```


<a id="tab-8-4"></a>
**Table 8.4 – Import XML schema**

```xml
<xsd:element name="import" type="tImport"/>
<xsd:complexType name="tImport">
    <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
    <xsd:attribute name="location" type="xsd:string" use="required"/>
    <xsd:attribute name="importType" type="xsd:anyURI" use="required"/>
</xsd:complexType>
```

