project BLF > class XML > method AddXmlNode

Description

Add an XML node representing a value of a column from a table.


Parameters


ihParentinputhandleHandle to parent node.
icNodeNameinputcharacterName of the node that needs to be created.
ihFieldinputhandleHandle to the field.
ohFieldNodeoutputhandle
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method XML.ConvertTableToXmlSingleTable


program code (program1/xml.p)

CREATE X-NODEREF ohFieldNode in widget-pool "non-persistent".
CREATE X-NODEREF vhText in widget-pool "non-persistent".

assign vhDocument = ihParent:OWNER-DOCUMENT.
vhDocument:create-node-namespace (ohFieldNode,"com.softcell.componentbuilder.class":U,icNodeName,"ELEMENT":U).
ohFieldNode:namespace-prefix = "cb":U.
ihParent:APPEND-CHILD (ohFieldNode).

vhDocument:CREATE-NODE (vhText, "", "TEXT":U).
ohFieldNode:APPEND-CHILD (vhText).

/* attach text to field */
case ihField:data-type:
    when "logical":U
    then assign vhText:NODE-VALUE = (if ihField:buffer-value = yes
                                     then "true":U
                                     else if ihField:buffer-value = no
                                          then "false":U
                                          else "":U).
    when "date":U
    then assign vtemp = ihField:buffer-value
                vhText:NODE-VALUE = (if vtemp = ?
                                     then "":U
                                     else string(year(vtemp),"9999":U)
                                        + "-":U + string(month(vtemp),"99":U)
                                        + "-":U + string(day(vtemp),"99":U)).
    otherwise assign vhText:NODE-VALUE = (if ihField:BUFFER-VALUE = ?
                                          then "":U
                                          else STRING (ihField:BUFFER-VALUE)).
end case.

delete object vhText.