Wie werden die Daten im WIM-System zur Verarbeitung bereitgehalten?
Für die Verarbeitung in der WIM-App oder im Server werden die Darstellungs- und Steuerungsdaten meist in "binärer" (maschinenlesbarer) Form bereitgehalten. Zu allen WIM-Daten gibt es aber auch immer eine Repräsentation als Textdaten (UTF-8 Zeichenkette). Nur in Fällen, bei denen z. B. Daten in ihrer Textform nur "durchgereicht" (von einem anderen Server oder dem Cache-Speicher oder ...) werden, wird auf die hier unnötige Umwandlung in das Binärformat verzichtet.
Wie sieht die "Textform" der WIM-Daten aus?
Die Textform ist so gestaltet, dass sie direkt als Daten in ein XML-ELement einbettbar sind. Das bedeutet:
- Die Zeichen "<", ">" und "&" sind im XML "Flucht- bzw. Steuerzeichen" und müssen in "
<", ">" und "&" umcodiert werden, wenn sie als Daten-Zeichen enthalten sein sollen. Bei der Dekodierung der Textform in die Binärform werden sie entsprechend umgewandelt. Die in XML mögliche Codierung von Zeichen-Daten mittels<![CDATA[ ... ]]>wird im WIM-System NICHT genutzt. - Die z. B. im HTML verwendeten "named entities" wie "
­" (weicher Trennungsstrich /"soft hyphen") wären mit nativem XML nur verträglich, wenn sie in einer XML-Dokumentbeschreibung (DTD) definiert würden. Im WIM-System wird für in Textform gewandelte XHTML-Daten daher noch eine "Nachbehandlung" durchgeführt, bei der diese "named entities" umcodiert werden. Dazu werden alle "&"-Zeichen der "named entities" in "&" umcodiert. Vor der Einbettung solcher umcodierten XHTML-Textfragmente muss diese Umcodierung wieder rückgängig gemacht werden.
Wann werden XHTML-Zeichendaten codiert und decodiert?
Genau betrachtet, liegen die XHTML-Zeichendaten nur dann "uncodiert" vor, wenn sie in die Darstellung eingefügt werden sollen oder wenn ein Teil der Darstellung herauskopiert wurde (siehe innerHTML -Eigenschaft im DOM). "Gespeichert" oder "übertragen" werden sie nie.
Ziemlich unmittelbar vor dem Einfügen werden bei den XHTML-Zeichendaten die "named entities" (im String) decodiert. Gleich nach dem Kopieren der XML-Daten werden die "named entities" codiert und der XHTML-Zeichenstring damit für die Weiterbearbeitung als XML-Daten fit gemacht.
Wie sind wimXML-Records in WIM-Apps eingetragen?
Die Datenwerte der Objektparameter müssen nicht notwendig von einem XML-"document element" eingefasst sein. Daher wird für den Datenwert ein Container-Element angelegt, dessen Inhalt der Parameterwert darstellt. In der wimRecord-Datemstruktur wird unter dem entprechenden Parameter (z.B. "XHTML") das Container-Element eingefügt.
Anmerkung: Theoretisch könnte hier gut ein "document fragment" eingesetzt werden, weil dies beim späteren Einfügen in die Darstellung von Nutzen wäre. Derzeit ist aber kein signifikanter Vorteil für ein solches Vorgehen erkennbar.
HTML Codierungen WIM-App-Entwickler-Checklisten Server-Entwickler-Checklisten XML UTF-8
