This theme groups together the XML SAX commands of 4D.
For general information about XML (overview, character sets, glossary) as well as the differences between the DOM and SAX modes, please refer to the Overview of XML DOM Commands section.
Note concerning preemptive mode: XML references created by a preemptive process can only be used in that specific process. Conversely, XML references created by a cooperative process can be used by any other cooperative process but cannot be used by any preemptive process.
The SAX commands work with the standard document references of 4D (DocRef, Time type reference). It is therefore possible to use these commands jointly with the 4D commands used to manage documents, such as SEND PACKET or Append document.
The creation and opening of XML documents by programming is carried out using the Create document and Open document commands. Subsequently, the use of an XML command with these documents will cause the automatic implementation of XML mechanisms such as encoding. For instance, the <?xml version="1.0" encoding="… encodage …" standalone = "no "?> header will be written automatically in the document.
Note: Documents read by SAX commands must be opened in read-only mode by the Open document command. This avoids any conflict between 4D and the Xerces library when you open “standard” and XML documents simultaneously. If you execute a SAX parsing command with a document open in read-write mode, an alert message is displayed and parsing is impossible.
Closing an XML document must be carried out using the CLOSE DOCUMENT command. If any XML elements were open, they will be closed automatically.
When writing SAX documents, 4D uses the following default settings for end-of-line characters and BOM (byte order mask) usage:
- CRLF characters on Windows and LF on macOS for end-of-line characters
- files are written without BOM.
Compatibility Note: In databases/projects created with 4D versions up to v19.x, by default 4D uses CRLF as end-of-line characters on macOS for SAX and a BOM. You can control the XML line ending and BOM management using the XML SET OPTIONS command and compatibility settings (see Compatibility page).
Important: Since SAX file lines are written directly at each statement, if you need to set the BOM and/or end-of-line options, you must call the XML SET OPTIONS command before the first SAX writing command.
The following XML SAX commands are involved: