Sax Parser

atuldalvi

Member
I am writing a program for sax parser to read xml as below -
Code:
/* SAXParseWithValidation.p */
DEFINE VARIABLE hParser as HANDLE NO-UNDO.
DEFINE VARIABLE hCallbacks AS HANDLE NO-UNDO.

CREATE SAX-READER hParser.
RUN AppCallbacks_Validate.p PERSISTENT SET hCallbacks.
hParser:HANDLER = hCallbacks.
hParser:SET-INPUT-SOURCE("FILE", "InvalidCars.xml").
hParser:NONAMESPACE-SCHEMA-LOCATION = "Cars.xsd".
hParser:VALIDATION-ENABLED=TRUE.
hParser:SAX-PARSE-FIRST() NO-ERROR.
REPEAT WHILE hParser:pARSE-STATUS = SAX-RUNNING:
  hParser:SAX-PARSE-NEXT() NO-ERROR.
END.
DELETE OBJECT hParser.
DELETE PROCEDURE hCallbacks.

Based on some conditions I am populating few variables in AppCallbacks_Validate.p program and I want to take those variable as a output parameter in SAXParseWithValidation.p program.

How do I accomplish this without using shared variable and temp-table ?
 
Last edited by a moderator:

Stefan

Well-Known Member
Collect what you need in program scoped variables and add a procedure to output them.

Code:
def var p_cwhatever as character no-undo.

procedure getVars:
   define output parameter o_cwhatever as character no-undo.

   o_cwhatever = p_cwhatever.
end procedure.

Code:
def var p_cwhatever as character no-undo.

run getVars in hCallbacks ( output p_cwhatever ).
 
Top