This subprocedure performs validation options on a given character string.

Currently it can perform XSD validation against XML.

Subprocedure Prototype

D RXS_Validate...
D                 PR              N   Extproc('RXS_Validate') Opdesc
D  pData                              Like(RXS_Var16Mv_t)
D                                     Options(*Omit: *Varsize) Const

Character data to be validated.

D  pDS                                Like(RXS_Var64K_t)
D                                     Options(*Varsize)

This field can contain either an RXS_XsdValidationDS_t data structure, or the XSD stored in a character field.

Example Code

*-------------------------------------------------------------- * This example code validates XML data against a specified XSD. *-------------------------------------------------------------- H DFTACTGRP(*NO) BNDDIR('RXSBND') ACTGRP(*CALLER) /copy QRPGLECPY,RXSCB D XsdValidateDS... D DS LikeDS(RXS_XsdValidationDS_t) D Inz(*LikeDS) D goodXml S Like(RXS_Var64Kv_t) /free // This example assumes that goodXml contains XML data. // This data could be retrieved from RXS_GetStdIn(), or composed // using the RXS composition engine. RXS_ResetDS( XsdValidateDS : RXS_DS_TYPE_XSDVALIDATION ); XsdValidateDS.XsdLocation = 'http://files.rpg-xml.com/example/xsdvalidate/validate.xsd'; if RXS_Validate( goodXml : XsdValidateDS ); RXS_JobLog( 'XML 1 Validated successfully'); else; RXS_JobLog( 'XML 1 Validation failed'); RXS_JobLog( 'Validation Error #%s: %s' : %Char( XsdValidateDS.ValidationErrorCode ) : XsdValidateDS.ValidationErrorText ); endif; *INLR = *ON; /end-free

Data Structures

D RXS_XsdValidationDS_t...
D                 DS                  Qualified Template Inz
D   ReturnedErrorInfo...
D                                     LikeDS(RXS_ReturnedErrorInfoDS_t) Inz
D   DataStructureType...
D                                5I 0 Inz(RXS_DS_TYPE_XSDVALIDATION)

Internal use only

D   OnErrorMessageType...
D                                5I 0
D   XsdLocation...
D                                     Like(RXS_Var1Kv_t)

The IFS path or URI where the XSD is located.

D   ValidationErrorCode...
D                               10I 0

Error code returned by the validation operation.

D   ValidationErrorText...
D                                     Like(RXS_Var1Kv_t)

Error message returned by the validation operation.

D   XsdCcsid                    10I 0

CCSID of the XSD data.

D   XsdPointer                    *

Internal use only

D   XsdLength                   10I 0

Internal use only

D   XmlCcsid                    10I 0

The CCSID of the XML data.

D   XmlPointer                    *

Internal use only

D   XmlLength                   10I 0

Internal use only

D   Reserved                  4096A

Internal use only