Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Die Datenstruktur des XML XMLs von Wizard-Formularen setzt sich aus drei Kern-Elementen zusammen: Gruppen, Variablen und Listen.

...

Damit die XML-Daten von anderen Systemen validiert werden können, bieten wir ein XML Schema zum Download an: formData.xsd

Image RemovedImage Added

Allgemeine Informationen

Jede Variable, Gruppe oder Liste besitzt eine ID, welche einen eindeutigen Schlüssel des Feldes kennzeichnet. Dieser Wert entspricht bei einfachen Feldern dem Feldnamen.

Verarbeitungsanweisungen

Es ist zudem möglich, Verarbeitungsanweisung (XML Processing Instructions) für andere Systeme mitzugeben. Diese beginnen mit dem Prefix "<?jax " und sind intern nach dem key="value"-Prinzip aufgebaut.

Info
WICHTIG: Da die Keys sowie Values frei definierbar sind, werden diese immer URL-encodiert.

Die Anweisungen können für Gruppen, Elemente oder für das ganze Formular hinterlegt werden.  

Werden die eingereichten Formulardaten als JSON an einen Rest-Endpunkt verschickt, so werden die XML Daten generisch in ein JSON umgewandelt. Nähere Informationen dazu sind im nächsten Kapitel beschrieben.

Verarbeitungsanweisungen (Feld- und Gruppenebene)

Für Gruppen und Elemente können die Anweisungen im Wizard unter "Feldeigenschaften -> Verarbeitung" hinterlegt werden.

Image Removed

Verarbeitungsanweisungen (Formularebene)

Möchte man Verarbeitungshinweise für das gesamte Formular hinterlegen, so werden diese auf der Formulardefinition im Bereich "Eigenschaften" hinterlegt. Aktivieren Sie für eine Eigenschaft bestehend aus Wert und Inhalt die Checkbox "Serialisieren", damit diese als Processinginstruction für das gesamte Formular geschrieben wird.

Image Removed

Beispiel-XML mit Processinginstructions

Ein erzeugtes XML weist dann folgende Struktur auf:

Image Removed

1) Fingerprint

Im sogenannten Fingerprint stehen generelle Informationen zur Formularinstanz sowie die bei der Formulardefinition als zu Serialisieren angegebenen Eigenschaften, getrennt durch Semikolon und ggf. URL encoded. Folgende Parameter werden immer mitgeliefert:

...

Variablen

2) Processing Instructions: Elemente/Gruppen

Diese Verarbeitungsanweisungen wurden im Wizard hinterlegt, hier auf Feld und Gruppen-Ebene (analog Screenshot: Feldeigenschaften). 

3) Automatisch generierte Processing Instructions

Bei Dateien wird der Name und die die Grösse der Datei (Bytes) automatisch im XML hinzugefügt:

Codeblock
languagexml
linenumberstrue
<var id<var id="dateiupload-VAR_1">
	  <?jax fileNameformat="Grenzmutationsgesuch_13453.pdf" fileSize="62526" TT.MM.JJJJ"?>
	a6f53b10-f897-4613-a3af-7d51d5ea1f80  2020-05-04
</var>

Variablen

Codeblock
languagexml
linenumberstrue
<var id="freitext_xsmall">keine</var>
<var id="freitext_large">Lorem ipsum set amet</var>
<var id="freitext_zwingend">Testfeld Zwingend</var>
<var id="freitext_mehrzeilig">Test Mehrzeilig</var>
<var id="email">asdfasdf@test.ch</var>
<var id="datum">2019-07-03<
<var id="VAR_2">
  <?jax schluessel="wert"?>
  test
</var>
<var id="VAR_3">muster</var>
<var id="VAR_4">example</var>
<var id="VAR_5">inhalt</var>

Einzelne Felder werden mit dem XML-Element <var> gekennzeichnet. Die Felder können eigenständig, als Bestandteil von Listen oder in Gruppen vorkommen und repräsentieren die vom User getätigten Eingaben.

Listen

Bei dem Listenelement <list> wird zusätzlich noch die effektive Anzahl Einträge mit dem Attribut "size" mitgegeben. Ebenso sind die zusammengehörigen Felder eines Listeneintrages mit dem Tag "entry" umgeben. Die Verarbeitungsanweisungen werden innerhalb des Listenelements zuoberst gesetzt:

Codeblock
languagexml
linenumberstrue
<list id<list id="berechnung_liste" size size="43">
	  <entry>
		<var id    <var id="berechnung_liste_1_betragname">234234<>Müller</var>
		<var id    <var id="berechnung_liste_1_mwstvorname">2.5<>Stephan</var>
		<var id="berechnung_liste_1_betrag_brutto">240089.85</var>
	  </entry>
	  <entry>
		<var id    <var id="berechnung_liste_2_betragname">11234<>Diethelm</var>
		<var id    <var id="berechnung_liste_2_mwstvorname">2.5<>Bernd</var>
		<var id="berechnung_liste_2_betrag_brutto">11514.85</var>
	  </entry>
	  <entry>
		<var id    <var id="berechnung_liste_3_betragname">223442<>August</var>
		<var id="berechnung_liste_3_mwst">2.5</var>
		<var id="berechnung_    <var id="liste_3_betrag_brutto">229028.05</var>
	</entry>
	<entry>
		<var id="berechnung_liste_4_betrag">1522</var>
		<var id="berechnung_liste_4_mwst">2.5</var>
		<var id="berechnung_liste_4_betrag_brutto">1560.05</var>
	vorname">Gabriela</var>
  </entry>
</list>

...

Gruppen

Codeblock
languagexml
linenumberstrue
<list<group id="listeNr2" size="3"GRP_1">
	  <?jax listTypeglobal1="singleEntrytrue"?>
	  <var id="listeNr2GRP_VAR_1_name">Martin Müller<>Müller</var>
	  <var id="listeNr2GRP_VAR_2_name">Jonas Peterson<>Martin</var>
	  <var id="listeNr2GRP_VAR_3_name">Michael Rüegger<>Teststrasse</var>
</list>group>

Gruppen sind eine Kombination von Feldern und/oder Listenelementen und werden mit dem Element <group> gekennzeichnet.

pi Elemente

Codeblock
languagexml
linenumberstrue
<group id<group id="MWSTGRP_1">
	
  <pi>
   <key>global1</key>
   <value>true</value> 
  </pi>
</group>

"pi" steht für Processing Instruction und ist für Verarbeitungsinformationen für Drittsysteme gedacht. Diese werden standardmässig nur als eigentliche "XML processing instructions" (<?jax

...

 global1="true"?>

...

Gruppen sind eine Kombination von Feldern und/oder Listenelementen und werden mit dem Element <group> gekennzeichnet) serialisiert, können aber auch als eigene Tags mit "key" und "value" ausgegeben werden. Im Beispiel oben wird die Processing Instruction "global1" als Tags "key" und "value" unterhalb des Tags "pi" ausgegeben.