Skip to main content
Version: Next

SAX ADD XML ELEMENT VALUE

SAX ADD XML ELEMENT VALUE ( document ; data {; *} )

ParameterTypeDescription
documentTimeReference of open document
dataText, VariableText or variable to insert in the document
*OperatorIf passed: encoding of special characters If omitted: no encoding

Description

In the XML document referenced by document, the SAX ADD XML ELEMENT VALUE command adds data directly without converting them. This command is equivalent, for instance, to inserting an attachment in the body of an e-mail.

In data, you can either pass a character string directly, or a 4D variable. The variable contents will be converted into text before being included in the XML document. If data is evaluated to undefined, 4D uses an empty string. If you want to encode the contents of data, you must use the BASE64 ENCODE command. In this case, of course, you must passs a BLOB in data.

By default, the command encodes special characters (< > ” ’...) contained in the data parameter unless you have disabled this mechanism for the current process using the XML SET OPTIONS command by passing the XML raw data value to the XML string encoding option. For example:

 XML SET OPTIONS($docRef;XML string encoding;XML raw data)

In this context, to force the encoding of special parameters when calling SAX ADD XML ELEMENT VALUE, you must pass the optional * parameter.

In order for this command to operate correctly, an element must be open. Otherwise, an error will be generated.

Example

This example inserts the whitepaper.pdf file into the open XML element:

 var vBMyBLOB : Blob
 DOCUMENT TO BLOB("c:\\whitepaper.pdf";vBMyBLOB)
 SAX ADD XML ELEMENT VALUE($DocRef;vBMyBLOB)

System variables and sets

If the command has been executed correctly, the system variable OK is set to 1; otherwise, it is set to 0 and an error is generated.

See also

SAX GET XML ELEMENT VALUE
XML SET OPTIONS