XMLの見えないキャラクターがステージに!?

Deeplからの自動翻訳

4D v19 R2では、テキストファイルのデフォルトのEnd Of Line文字とByte Order Markの使用方法が変更されました。4D v19 R3では、この動作をXMLファイルにも拡張しました。それでは、ご覧ください。

この前のブログでは、テキストファイルのデフォルトのEOL(End Of Line)文字とBOM(Byte Order Mark)使用に関する修正について説明しました。
その中で説明したベストプラクティスに従って、4Dはテキストファイルの動作をDOMと SAXコマンドを使って書かれたXMLファイルにも拡張しました。

新しいビヘイビア

macOSでは、DOMコマンドを使用した場合、XMLファイルはデフォルトでCRをEOLとして、SAXコマンドを使用した場合はCRLFの2文字で記述されていました。新しい動作では、DOMおよびSAXコマンドを使用して、XMLファイルはLFをEOLとして記述されます。これにより、DOMとSAXの動作が標準化され、LFをEOL文字として使用する必要があるGitなどのバージョン管理システムとの互換性が向上します。
Windowsでは、Gitのようなバージョン管理システムではCRLFが正しく管理されているため、EOL文字に関する変更はありません。

すべてのプラットフォームで、XMLファイルはBOMなしで、DOMとSAXコマンドを使用して記述されるようになりました。UTF-8がほぼ標準のテキストファイル形式となったため、BOMはあまり使用されなくなりました。そのため、4Dは現在のベストプラクティスにまだ従っています。

互換性設定

既存のプロジェクトやデータベースを4D v19 R3に移行しても、変更は表示されません。

もし、プロジェクトやデータベースが4D v19 R2より前のバージョンで作成された場合、新しい動作を有効にするために、次の互換性設定が表示されます。

4D v19 R3 で開くと、4D v19 R2 で作成したプロジェクトやデータベースは、デフォルトの EOL 文字とXML 文書のBOM管理に関してのみ、異なる動作になります。テキストファイルでは4D v19 R2以降、新しい動作が有効で互換性オプションも利用できますが、XMLファイルでは4D V19 R3以降、この新しい動作が利用できるようになりました。

コントロールを維持する

DOM や SAX コマンドを使って XML ファイルを書くときに、どの EOL 文字を使うかを自分で定義したい場合には XML SET OPTIONSコマンドは、新しいセレクタXML line ending を認めるようになり、次の値を得ることができます。XML default XML CR,XML LF またはXML CRLF

同様に、DOM または SAX コマンドを使用して XML ファイルに BOM を挿入するかどうかを自分で定義するには、新しいセレクタXML BOMXML SET OPTIONSコマンドで設定します.このセレクタは、3つの値を許容します。XML default XML enabled またはXML disabled

もちろん、これら 2 つの新しいセレクタを XML GET OPTIONSコマンドで、これらの2つの新しいセレクタを使用して、現在どの動作が使用されているかを知ることができます。

SAXファイル行は各ステートメントで直接書き込まれるので、もしBOMやEOLオプションを設定する必要がある場合は、最初のSAX書き込みコマンドの前に XML SET OPTIONSコマンドを最初の SAX 書き込みコマンドの前に呼び出す必要があります。

Avatar
- プロダクトオーナー - Damien Fuzeauは、2019年2月に4D Productチームに参加しました。プロダクトオーナーとして、ユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換することを担当しています。また、実装された機能が顧客のニーズを満たしているかどうかを確認することも彼の役割です。ナント大学のソフトウェア工学科を卒業。前職の会社では最初は開発者として(1997年に4Dを発見)、後にエンジニアリングマネージャーとソフトウェアアーキテクトとして、23年以上勤務しました。この会社は、4DのOEMパートナーであり、現在は数千のユーザーと数百のサーバーに向けて4Dベースのビジネスソフトを展開しています。ですから、Damienは、多言語環境での4D開発・導入に慣れています。