XML-Syntax
Modell-Objekt - XML-Syntax
Das REXS Modell ist in einem XML-Tag namens "model" enthalten. Dieses enthält wiederum die "relations"- und "components"-Tags, sowie ggfs. das "load_spectrum"-Tag.
Beispiel Modell REXS-Datei | XML-Syntax
<model version="1.4" applicationId="FVA-Workbench" applicationVersion="7.0.0" date="2021-11-03T11:35:17+01:00" applicationLanguage="en"> <relations>...</relations> <components>...</components> <load_spectrum>...</load_spectrum> (optional) </model>
Komponenten - XML-Syntax
In der Schnittstellendatei werden Komponenten mit dem XML-Tag <component></component> beschrieben.
Der Inhalt des Tags sind die der Komponente zugehörigen Attribute:
Beispiel Komponenten | XML-Syntax
<components> <component id="4" type="cylindrical_gear" name="Pinion"> <attribute id="attr1"> .. </attribute> <attribute id="attr2"> .. </attribute> ... </component > <component id="6" type="cylindrical_gear" name="Wheel"> <attribute id="attr1"> .. </attribute> <attribute id="attr2"> .. </attribute> ... </component > </components>
Attributwerte - XML-Syntax
Merkmal | Beschreibung | |
---|---|---|
Werte von skalaren Attributen: | Der Wert des Attributes ist der Inhalt des „attribute“-Tags, z.B. <attribute …>4.72</attribute>. | |
Das Gleitkomma-Zeichen ist „ . “ (Punkt). | ||
Werte von Arrays | array | Das Tag „array“ umschließt die Spalten eines eindimensionalen Arrays. |
c | Das Tag „c“ (column) kennzeichnet eine Spalte des Arrays, und umschließt einen skalaren Eintrag des Arrays (siehe Beispiel unten) | |
Das Gleitkomma-Zeichen ist „ . “ (Punkt). | ||
code | HinweisÄnderung ggü. REXS Version 1.3 Die Möglichkeit Arrays in Binärform anzugeben ist neu. Überschreiten Arrays eine gewissen Größe, kann es aus Performancegründen sinnvoll sein diese in Binärform in der REXS-Datei abzulegen. Das xml-Attribut "code" ist eine optionale Angabe im array-tag. Zu verwenden, falls das Array in Binärform mit base64-Kodierung in der REXS-Datei steht. Dazu wird in dem xml-Tag „array“ die Kodierung und das Binärformat angegeben. Die Byte-Reihenfolge ist „Little Endian“. Folgende Varianten stehen zur Verfügung:
Falls das Array in Binärform angegeben wird entfallen die "c" Tags. | |
Werte von Matrizen | matrix | Das Tag „matrix“ umschließt die Zeilen einer Matrix. |
r | Das Tag „r“ (row) kennzeichnet eine Zeile der Matrix, und umschließt eine Liste von "c" Einträgen. Der Inhalt aller Zeilen muss die gleiche Länge haben. | |
c | Das Tag „c“ (column) kennzeichnet eine Spalte der Matrix, und umschließt einen skalaren Eintrag der Matrix (siehe Beispiel unten) | |
Das Gleitkomma-Zeichen ist „ . “ (Punkt). | ||
code, rows, columns | HinweisÄnderung ggü. REXS Version 1.3 Die Möglichkeit Matrizen in Binärform anzugeben ist neu. Überschreiten Matrizen eine gewissen Größe, kann es aus Performancegründen sinnvoll sein diese in Binärform in der REXS-Datei abzulegen. Das xml-Attribut "code" ist eine optionale Angabe im matrix-tag. Zu verwenden, falls das Arrays in Binärform mit base64-Kodierung in der REXS-Datei steht. Zunächst wird die 2d-Matrix spaltenweise in ein 1d-Array überführt ( array = [spalte1, spalte2, ...]). Dieses wird dann wie oben beschrieben in Binärform gebracht (Byte-Reihenfolge ist „Little Endian“) und schließlich per base64-Kodierung in einen String gewandelt. Neben der Angabe des Binärformats (int32, float64, float32) ist die Angabe der Anzahl der Spalten und Zeilen der Matrix im matrix-tag notwendig über "rows" und "columns". Folgende Varianten stehen zur Verfügung:
Falls die Matrix in Binärform angegeben wird entfallen die "r" und "c" Tags. | |
HinweisÄnderung ggü. REXS Version 1.3 Diverse Erweiterungen und Anpassungen der Attribute. Diese sind in der REXS-Datenbank dokumentiert. Werte von Arrays-of-Arrays | array_of_arrays | Das Tag „array_of_array“ umschließt die Zeilen eines Array-of-Arrays. |
array | Das Tag „array“ kennzeichnet eine Zeile des Array-of-Arrays, und umschließt eine Liste von "c" Einträgen. Die Zeilen können unterschiedliche Länge haben. | |
c | Das Tag „c“ (column) kennzeichnet eine Spalte eines Array, und umschließt einen skalaren Eintrag des Array-of-Arrays (siehe Beispiel unten) |
Beispiel Attribute - XML-Syntax
Beispiel String-Attribut | XML-Syntax
<attribute id="name">30203-A</attribute>
Beispiel Double-Attribut mit Maßeinheit | XML-Syntax
<attribute id="normal_module" unit="mm">23.5</attribute>
Beispiel Double-Attribut ohne Maßeinheit | XML-Syntax
<attribute id="addendum_modification_coefficient" unit="none">23.5</attribute>
Beispiel Integer-Attribut ohne Maßeinheit | XML-Syntax
<attribute id="number_of_teeth" unit="none">8</attribute>
Beispiel Boolean-Attribut | XML-Syntax
<attribute id="is_driving_gear">false</attribute>
Beispiel Enum-Attribut | XML-Syntax
<attribute id="axial_force_absorption">both_directions</attribute>
Beispiel Array-Attribut | XML-Syntax
<attribute id="support_vector" unit="mm"> <array> <c>1.0</c> <c>1.0</c> <c>0.0</c> </array> </attribute>
Beispiel Matrix-Attribut | XML-Syntax
<attribute id="matrix_correction" unit="mm"> <matrix> <r> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> </r> <r> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> </r> ... <r> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> <c>0.0</c> </r> </matrix> </attribute>
Beispiel Array-Attribut in Binärform | XML-Syntax
<attribute id="example_attribute_id" unit="mm"> <array code="float64"/>62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA=<array/> </attribute>
Beispiel Matrix-Attribut in Binärform | XML-Syntax
<attribute id="example_matrix_coded" unit="mm"> <matrix code="float64" columns="3" rows="2">AAAAAAAA8D8AAAAAAAAQQAAAAAAAAABAAAAAAAAAFEAAAAAAAAAIQAAAAAAAABhA</matrix> </attribute>
Beispiel array_of_integer_arrays-Attribut | XML-Syntax
<attribute id="element_structure" unit="none"> <array_of_arrays> <array><c>108</c><c>2</c><c>1</c><c>107</c></array> <array><c>109</c><c>3</c><c>2</c><c>108</c></array> <array><c>8</c><c>114</c><c>115</c></array> </array_of_arrays> </attribute>
Relationen - XML-Syntax
Eine Relation in der XML-Datei besteht aus einem „relation“-Tag, welcher mehrere „ref“-Tags enthält.
Beispiel Relationen REXS-Datei | XML-Syntax
<relations> <relation id="15" type="ordered_assembly" order="1"> <ref id="8" role="assembly" hint="bearing"/> <ref id="16" role="part" hint="bearing_row"/> </relation> <relation id="23" type="stage"> <ref id="3" role="stage" hint="cylindrical_stage"/> <ref id="7" role="gear_1" hint="cylindrical_gear"/> <ref id="9" role="gear_2" hint="cylindrical_gear"/> </relation> </relations>
"load_spectrum" Objekt - XML-Syntax
Das "load_spectrum"-Tag ist ein optionaler Bestandteil des REXS-XML-Modells. Es besitzt eine (numerische) Kennung ("id") und umschließt ein oder mehrere "load_case"-Tags sowie das "accumulation"-Tag. Diese umschließen wiederum eine Liste von "component"-Tags.
Beispiel Lastkollektiv | XML-Syntax
<model> <relations> <components> <component id="1"> <component id="4"> <component id="6"> <!-- further components --> </components> <load_spectrum id="1"> <load_case id="1"> <load_case id="2"> <load_case id="3"> <component id="4"> <component id="6"> </load_case> <accumulation> <component id="4"> <component id="6"> </accumulation> </load_spectrum> </model>
Beispiel Modell - XML-Syntax
Beispiel Modell | XML-Syntax
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <model applicationId="FVA Workbench" applicationVersion="7.0" date="2021-11-23T13:52:44+01:00" version="1.4"> <relations> <relation id="45" type="assembly"> <ref hint="shaft" id="42" role="assembly"/> <ref hint="shaft_section" id="78" role="part"/> </relation> <relation id="53" type="side"> <ref hint="shaft" id="6" role="inner_part"/> <ref hint="shaft" id="42" role="outer_part"/> <ref hint="rolling_bearing_with_detailed_geometry" id="86" role="assembly"/> </relation> ... </relations> <components> <component id="44" name="Cylindrical gear [44]" type="cylindrical_gear"> <attribute id="example_string" unit="none">30203-A</attribute> <attribute id="example_floating_point_unit" unit="mum">20.0</attribute> <attribute id="example_floating_point_without_unit" unit="none">0.3</attribute> <attribute id="example_integer" unit="none">3</attribute> <attribute id="example_enum" unit="none">method_b</attribute> <attribute id="example_boolean" unit="none">false</attribute> <attribute id="example_floating_point_array" unit="mm"> <array><c>155.0</c><c>0.0</c><c>-190.0</c></array> </attribute> <attribute id="example_floating_point_matrix" unit="mm"> <matrix> <r><c>1.0</c><c>0.0</c><c>0.0</c></r> <r><c>0.0</c><c>1.0</c><c>0.0</c></r> <r><c>0.0</c><c>0.0</c><c>1.0</c></r> </matrix> </attribute> <attribute id="example_floating_point_array_coded" unit="mm"> <array code="float64">62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA</array> </attribute> <attribute id="example_array_of_arrays" unit="none"> <array_of_arrays> <array><c>108</c><c>2</c><c>1</c><c>107</c></array> <array><c>109</c><c>3</c><c>2</c><c>108</c></array> <array><c>8</c><c>114</c><c>115</c></array> </array_of_arrays> </attribute> </component> <component id="45" name="Cylindrical gear [45]" type="cylindrical_gear"> ... </component> </components> <load_spectrum id="1"> <load_case id="1"> <load_case id="2"> <load_case id="3"> <component id="4"> <attribute id="example" unit="mm">20.0</attribute> ... </component> </load_case> <accumulation> <component id="4">...</component> </accumulation> </load_spectrum> </model>