Differences
This shows you the differences between two versions of the page.
validating_xml_with_xsd_rpg [2019/01/07 09:37] |
validating_xml_with_xsd_rpg [2021/04/05 11:23] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Validating XML with XSD (RPG) ====== | ||
+ | |||
+ | <sxh> | ||
+ | dcl-proc main; | ||
+ | |||
+ | dcl-s filepath char(1024); | ||
+ | dcl-s domEnvData pointer inz(%addr(Qxml_DOMEXCDATA)); | ||
+ | dcl-s parser pointer; | ||
+ | |||
+ | filepath = '/ | ||
+ | |||
+ | // Initialize the XML environment, | ||
+ | // data area. A call to QxmlInit must occur before any other API call. | ||
+ | QxmlInit(domEnvData); | ||
+ | |||
+ | // Create a new parser instance | ||
+ | parser = QxmlXercesDOMParser_new(domEnvData); | ||
+ | |||
+ | // Configure parser | ||
+ | QxmlXercesDOMParser_setValidationScheme(parser : Qxml_VALAU); | ||
+ | QxmlXercesDOMParser_setDoNamespaces(parser : true); | ||
+ | QxmlXercesDOMParser_setDoSchema(parser : true); | ||
+ | QxmlXercesDOMParser_setValidationSchemaFullChecking(parser : true); | ||
+ | |||
+ | // Parse xml file | ||
+ | QxmlXercesDOMParser_parse_SystemId(parser : | ||
+ | |||
+ | // Check for parse error | ||
+ | if (Qxml_DOMRTNCOD = Qxml_DOMNOERROR); | ||
+ | message_info(' | ||
+ | else; | ||
+ | message_info(Qxml_RESERVE); | ||
+ | endif; | ||
+ | |||
+ | end-proc; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== XSD with Namespace ===== | ||
+ | |||
+ | <sxh xml> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | targetNamespace=" | ||
+ | elementFormDefault=" | ||
+ | |||
+ | <!-- scheme description --> | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <sxh xml> | ||
+ | <?xml version=" | ||
+ | |||
+ | <daten xmlns=" | ||
+ | xsi: | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== XSD without Namespace ===== | ||
+ | |||
+ | <sxh xml> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | <sxh xml> | ||
+ | <?xml version=" | ||
+ | <export xmlns: | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | {{tag> |