Code:
/* client_dictionary.p */
DEFINE VARIABLE hWebService AS HANDLE NO-UNDO.
DEFINE VARIABLE hDictServiceSoap AS HANDLE NO-UNDO.
CREATE SERVER hWebService.
hWebService:CONNECT("-WSDL 'http://services.aonaware.com/DictService/DictService.asmx?WSDL'").
RUN DictServiceSoap SET hDictServiceSoap ON hWebService.
DEFINE VARIABLE word AS CHARACTER NO-UNDO.
DEFINE VARIABLE DefineResult AS LONGCHAR NO-UNDO.
word = "4GL".
RUN Define IN hDictServiceSoap(INPUT word, OUTPUT DefineResult).
/**************************************************************/
DEFINE VARIABLE hParser AS HANDLE NO-UNDO.
DEFINE VARIABLE dictTag AS CHARACTER NO-UNDO.
CREATE SAX-READER hParser.
hParser:HANDLER = THIS-PROCEDURE.
hParser:SET-INPUT-SOURCE("LONGCHAR", DefineResult).
hParser:SAX-PARSE( ) NO-ERROR.
IF ERROR-STATUS:ERROR THEN DO:
IF ERROR-STATUS:NUM-MESSAGES > 0 THEN
MESSAGE ERROR-STATUS:GET-MESSAGE(1) VIEW-AS ALERT-BOX.
ELSE
MESSAGE RETURN-VALUE VIEW-AS ALERT-BOX.
END.
DELETE OBJECT hParser.
DELETE PROCEDURE hDictServiceSoap.
hWebService:DISCONNECT().
DELETE OBJECT hWebService.
/**************************************************************/
PROCEDURE StartDocument:
END.
/**************************************************************/
PROCEDURE StartElement:
DEFINE INPUT PARAMETER namespaceURI AS CHARACTER.
DEFINE INPUT PARAMETER localName AS CHARACTER.
DEFINE INPUT PARAMETER qname AS CHARACTER.
DEFINE INPUT PARAMETER attributes AS HANDLE.
dictTag = localName.
END.
/**************************************************************/
PROCEDURE Characters:
DEFINE INPUT PARAMETER charData AS MEMPTR.
DEFINE INPUT PARAMETER numChars AS INTEGER.
DEFINE VARIABLE mResult AS CHARACTER NO-UNDO.
mResult = TRIM(GET-STRING(charData, 1, GET-SIZE(charData))).
IF dictTag = "WordDefinition" AND LENGTH(mResult) > 0 THEN DO:
MESSAGE mResult
VIEW-AS ALERT-BOX INFO BUTTONS OK.
END.
END.
/**************************************************************/
PROCEDURE EndElement:
DEFINE INPUT PARAMETER namespaceURI AS CHARACTER.
DEFINE INPUT PARAMETER localName AS CHARACTER.
DEFINE INPUT PARAMETER qName AS CHARACTER.
dictTag = "".
END.
/**************************************************************/
PROCEDURE EndDocument:
END.
/**************************************************************/