CLARC Fast XML Format

Verwendung

Das CLARC Fast XML Format findet in vielen internen und externen Schnittstellen Verwendung. Der einfache und gleichbleibende Key/Value Aufbau macht den Einsatz Ideal für den Austausch von Metainformationen. 

Unter anderem kann das Fast XML direkt aus dem Scripting heraus erzeugt und gelesen werden. Siehe dazu die Script-Klasse TccFastXML Klasse.

Mit der Formatdefinition 2.0 werden zusätzlich Pfad-Parameter unterstützt, wodurch komplexere Datenstrukturen einfach implementiert werden können.

Aufbau

Der Aufbau ist wie angedeutet sehr einfach gehalten und entspricht im Grunde einem XML mit nur zwei Ebenen, wobei die innere Ebene einem Key-Value Verfahren ähnelt. Zusätzlich zum Value kann jedem Element noch Attribute vergeben werden. Die Schlüssel-Elemente können eindeutig oder wiederholt auftreten.

Beispiel

<?xml version="1.0" encoding="UTF-8"?>
<MyRootNode FormatVersion="1.7" Compressed="false" Encoding="none">
  <Company1>CTO</Company1>
  <Company2 More="GmbH">Balzuweit</Company2>
</MyRootNode>

Erweitertes Format

Das erweiterte Format beinhaltet den jeweiligen Datentyp eines Elements. 

<?xml version="1.0" encoding="UTF-8"?>
<MyRootNode FormatVersion="2.0" Compressed="false" Encoding="none">
  <MyCompany1 Type="UCS4STR">CTO</MyCompany1>
  <MyCompany2 Type="UCS4STR" More="GmbH">Balzuweit</MyCompany2>
  <MyDate Type="DATE">2017-02-01</MyDate>
  <MyChoice Type="BOOLEAN">True</MyChoice>
  <MyFloat Type="SINGLE">12.345</MyFloat>
</MyRootNode>

Der Attributname des Datentyps ist "Type" und kann folgende Werte annehmen:

  • UCS2STR (Unicode String)
  • UCS4STR (Unicode String)
  • BINARY (Base64 kodierte Daten)
  • STRING
  • BOOLEAN (Aufbau: True/False)
  • DATE (Aufbau: yyyy-mm-dd hh:nn:ss)
  • FLOAT
  • SINGLE
  • DOUBLE
  • INT
  • SMALLINT
  • SHORTINT
  • BYTE
  • WORD
  • LONGWORD
  • INT64
  • VARIANT
  • EMPTY
  • NULL

Strukturierte XML's

Mit der Formatversion 2.0 werden erweiterte Datenstrukturen unterstützt, wobei die Verschachtelungstiefe beliebig ist.

Um das Handling weiterhin einfach und Parameterorientiert zu halten, können nur eindeutige Pfade verwendet werden.

<?xml version="1.0" encoding="UTF-8"?>
<MyRootNode FormatVersion="2.0" Compressed="false" Encoding="none">
  <Company>
    <Name Type="UCS4STR">CTO Balzuweit</Name>
    <Web Type="UCS4STR">www.cto.de</Web>
  </Company>
</MyRootNode>

Die entsprechenden Pfade im Beispiel sind:

  • /Company/Name
  • /Company/Web

Kompression

Der Inhalt kann komprimiert werden - siehe Compressed Attribut. Die Compression basiert auf ZLib. Die Daten werden in diesem Fall zusätzlich Base64 kodiert.

Encoding

deprecated. Aktuell verwenden mit Encoding="none".