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>