Die Standardverwendung von Zeilenendezeichen und Byte Order Mark in Textdateien wurde in 4D v19 R2 geändert. Mit 4D v19 R3 erweitert 4D dieses Verhalten auf XML-Dateien. Schauen wir uns das an.
Dieser frühere Blog-Beitrag widmete sich der Änderung der standardmäßigen Verwendung von Zeilenendezeichen (EOL) und Byte Order Mark (BOM) in Textdateien.
In Anlehnung an die darin beschriebenen Best Practices erweitert 4D nun das Verhalten von Textdateien auf XML-Dateien, die mit DOM- und SAX-Befehlen geschrieben wurden.
NEUE VERHÄLTNISSE
Unter macOS wurden XML-Dateien standardmäßig mit CR als EOL geschrieben, wenn DOM-Befehle verwendet wurden, und mit den beiden Zeichen CRLF, wenn SAX-Befehle verwendet wurden. Mit dem neuen Verhalten werden XML-Dateien mit LF als EOL geschrieben, wenn DOM- und SAX-Befehle verwendet werden. Dadurch wird das Verhalten von DOM und SAX vereinheitlicht und die Kompatibilität mit Versionskontrollsystemen wie Git verbessert, die LF als EOL-Zeichen verwenden müssen.
Unter Windows gibt es keine Änderungen für das EOL-Zeichen, da CRLF von Versionskontrollsystemen wie Git korrekt gehandhabt wird.
Auf allen Plattformen werden XML-Dateien jetzt ohne BOM geschrieben, unter Verwendung von DOM- und SAX-Befehlen. Da UTF-8 fast zum Standardformat für Textdateien geworden ist, wird das BOM immer seltener verwendet. Daher folgt 4D weiterhin den aktuellen Best Practices.
KOMPATIBILITÄTSEINSTELLUNGEN
Beim Verschieben eines bestehenden Projekts oder einer Datenbank nach 4D v19 R3 ergeben sich keine Änderungen.
Wenn Ihr Projekt oder Ihre Datenbank mit einer früheren Version als 4D v19 R2 erstellt wurde, werden die folgenden Kompatibilitätseinstellungen angezeigt, um die neuen Verhaltensweisen zu aktivieren:
Wenn sie in 4D v19 R3 geöffnet werden, verhalten sich Projekte oder Datenbanken, die mit 4D v19 R2 erstellt wurden, anders in Bezug auf das Standard-EOL-Zeichen und die Stücklistenverwaltung nur in XML-Dokumenten. Obwohl das neue Verhalten aktiv ist und die Kompatibilitätsoptionen seit 4D v19 R2 für Textdateien verfügbar sind, ist dieses neue Verhalten erst seit 4D V19 R3 für XML-Dateien verfügbar.
BEHALTEN SIE DIE KONTROLLE
Wenn Sie selbst festlegen wollen, welches EOL-Zeichen beim Schreiben einer XML-Datei mit DOM- oder SAX-Befehlen verwendet werden soll, erlaubt der XML SET OPTIONS Befehl lässt nun den neuen Selektor XML line ending zu, der die folgenden Werte annehmen kann: XML default, XML CR, XML LF oder XML CRLF.
Auf die gleiche Weise können Sie selbst bestimmen, ob ein BOM mit DOM- oder SAX-Befehlen in die XML-Datei eingefügt wird, indem Sie den neuen Selektor XML BOM im XML SET OPTIONS Befehl setzen. Dieser Selektor lässt drei Werte zu: XML default, XML enabled oder XML disabled.
Natürlich können Sie diese beiden neuen Selektoren mit dem XML GET OPTIONS Befehl verwenden, um zu wissen, welches Verhalten gerade verwendet wird.
⚠️ Da SAX-Dateizeilen direkt bei jeder Anweisung geschrieben werden, müssen Sie, wenn Sie die BOM- und/oder EOL-Optionen setzen wollen, den XML SET OPTIONS Befehl vor dem ersten SAX-Schreibbefehl aufrufen.