Das Tag <properties> befüllt den benannten Parameter des Typs Map der übergeordneten Komponente mit Schlüssel-Wert-Paaren.
Werden die Attribute multiRowEntryKey und multiRowKey nicht angegeben, entsteht eine eindimensionale Map, die als Schlüssel den Eintrag für das Attribut name und als Wert den Eintrag für das Attribut typeClass der übergeordneten Komponente enthält.
Attributname | Verwendung | Attributwerte | Defaultwert | Beschreibung |
---|---|---|---|---|
name | benötigt | Gibt den Namen des Parameters vom Typ Map an. | ||
multiRowEntrykey | optional | Gibt den absoluten Namen der Bibliothekskomponente an, von der eine Instanz eingefügt werden soll. | ||
multiRowKey | optional |
Erlaubte Unterelemente | Anzahl |
---|---|
<property> | beliebig |
Für dieses Beispiel kann der Baukasten des Tutorials verwendet werden. Darin müssen folgende Anpassungen durchgeführt werden:
- Die folgenden Bibliothekskomponenten sind um einen Einfügeplatz für eine beliebige Anzahl beliebiger Komponenten und um einen neuen Parameter MyMap vom Typ Map zu erweitern:
- Feeder
- Insert
- Inspect
- Move
Der Inhalt der Excel-Tabelle ist in drei Abschnitte unterteilt, um den Inhalt besser darstellen zu können:
A | B | |
---|---|---|
1 | Machine_Name | Machine_Type |
2 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
3 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
4 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
5 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
6 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
C | D | |
---|---|---|
1 | Functiongroup_Name | Functiongroup_Type |
2 | Discard_2 | T_Mechatronic_ModularSystem.Mechatronic.Functiongroups.Discard |
3 | Insert_2 | T_Mechatronic_ModularSystem.Mechatronic.Functiongroups.Insert |
4 | Inspect_2 | T_Mechatronic_ModularSystem.Mechatronic.Functiongroups.Inspect |
5 | Move_2 | T_Mechatronic_ModularSystem.Mechatronic.Functiongroups.Move |
6 | Store_2 | T_Mechatronic_ModularSystem.Mechatronic.Functiongroups.Store |
E | F | |
---|---|---|
1 | Functionunit_Name | Functionunit_Type |
2 | Axis_2 | T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Axis |
3 | Gripper_2 | T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Gripper |
4 | Orientationinspector_2 | T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Orientationinspector |
5 | Separator_2 | T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Separator |
6 | Stack_2 | T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Stack |
Inhalt der Schema-Datei:
<?xml version="1.0" encoding="UTF-8"?>
<schema tableName="Mechatronic" columnKeySeparator="_">
<node id="Station" name="${Machine_Name}" typeClass="${Machine_Type}">
<node id="Functiongroup" name="${Functiongroup_Name}" typeClass="${Functiongroup_Type}">
<properties name="SizesMap"/>
<node id="Functionunit" name="${Functionunit_Name}" typeClass="${Functionunit_Type}">
</node>
</node>
</node>
</schema>
Ergebnis:
Das Ergebnis zeigt das Schlüssel-Wert-Paar der Map, welches aus den Einträgen der Spalten Functiongroup_name und Functiongroup_Type gebildet wird. Der Inhalt der Spalte Functiongroup_name wird als Schlüssel und der Inhalt der Spalte Functiongroup_Type als Wert der Map eingetragen.
=Map{
Pair{'Name','Axis_2'},
Pair{'Type','T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Axis'}
}
Für dieses Beispiel kann der Baukasten des Tutorials verwendet werden. Darin müssen folgende Anpassungen durchgeführt werden:
- Die Bibliothekskomponenten Feeder und Move sind um einen Einfügeplatz für eine beliebige Anzahl beliebiger Komponenten zu erweitern.
- Die Bibliothekskomponente Axis ist um einen neuen Parameter MyMap vom Typ Map zu erweitern.
Der Inhalt der Excel-Tabelle ist in vier Abschnitte unterteilt, um den Inhalt besser darstellen zu können:
A | B | |
---|---|---|
1 | Machine_Name | Machine_Type |
2 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
3 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
4 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
5 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
6 | Feeder_2 | T_Mechatronic_ModularSystem.Mechatronic.Stations.Feeder |
C | D | |
---|---|---|
1 | Functiongroup_Name | Functiongroup_Type |
2 | ||
3 | Move_2 | T_Mechatronic_ModularSystem.Mechatronic.Functiongroups.Insert |
4 | Move_2 | T_Mechatronic_ModularSystem.Mechatronic.Functiongroups.Inspect |
5 | Move_2 | T_Mechatronic_ModularSystem.Mechatronic.Functiongroups.Move |
6 | Move_2 | T_Mechatronic_ModularSystem.Mechatronic.Functiongroups.Store |
E | F | |
---|---|---|
1 | Functionunit_Name | Functionunit_Type |
2 | ||
3 | Axis_2 | T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Axis |
4 | Axis_2 | T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Axis |
5 | Axis_2 | T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Axis |
6 | Axis_2 | T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Axis |
G | H | |
---|---|---|
1 | Functionunit_Key_Position | Functionunit_Key_Function |
2 | ||
3 | 1 | Get_item |
4 | 2 | Inspect_item |
5 | 3 | Store_good_item |
6 | 4 | Discard_bad_item |
Inhalt der Schema-Datei:
<?xml version="1.0" encoding="UTF-8"?>
<schema tableName="Mechatronic" columnKeySeparator="_">
<node id="Station" name="${Machine_Name}" typeClass="${Machine_Type}">
<node id="Functiongroup" name="${Functiongroup_Name}" typeClass="${Functiongroup_Type}">
<node id="Functionunit" name="${Functionunit_Name}" typeClass="${Functionunit_Type}">
<properties name="MyMap" multiRowKey="Key" multiRowEntryKey="Functionunit_Key_Position"/>
</node>
</node>
</node>
</schema>
Ergebnis:
Das Ergebnis zeigt die verschachtelte Map. Die äußere Map besteht aus den Schlüssel-Wert-Paaren, die die ID (Funktionunit) des übergeordneten Knotens im Spaltennamen haben inklusive dem ersten Spaltennamen mit dem Schlüsselwort (Attribut multiRowKey). Dabei bildet der Teil der Spaltenüberschrift nach dem Separatorzeichen (Attribut columnKeySeparator) jeweils den Schlüssel und der Inhalt der Spalte jeweils den Wert eines Paares.
Ab der ersten Spalte, deren Überschrift das Schlüsselwort (multiRowKey="Key") enthält, werden die Inhalte dieser Spalte als Schlüssel und jeweils eine weitere Map als Wert angewendet.
Die innerste Map bildet die Schlüssel aus den Spaltenüberschriften mit der Kombination ID_multiRowKey (Functionunit_Key) und die Werte aus den entsprechenden Spaltenwerten.
=Map{
Pair{'Name','X_Axis_2'},
Pair{'Key',Map{
Pair{'3',Map{
Pair{'Function','Store_good_item'},
Pair{'Position','3'}
}
},
Pair{'2',Map{
Pair{'Function','Inspect_item'},
Pair{'Position','2'}
}
},
Pair{'1',Map{
Pair{'Function','Get_item'},
Pair{'Position','1'}
}
},
Pair{'4',Map{
Pair{'Function','Discard_bad_item'},
Pair{'Position','4'}
}
}
}
},
Pair{'Type','T_Mechatronic_ModularSystem.Mechatronic.Functionunits.Axis'}
}