relaxng.inc 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. (*
  2. * Summary: implementation of the Relax-NG validation
  3. * Description: implementation of the Relax-NG validation
  4. *
  5. * Copy: See Copyright for the status of this software.
  6. *
  7. * Author: Daniel Veillard
  8. *)
  9. {$IFDEF LIBXML_SCHEMAS_ENABLED}
  10. {$IFDEF POINTER}
  11. xmlRelaxNGPtr = ^xmlRelaxNG;
  12. xmlRelaxNGParserCtxtPtr = ^xmlRelaxNGParserCtxt;
  13. xmlRelaxNGValidCtxtPtr = ^xmlRelaxNGValidCtxt;
  14. {$ENDIF}
  15. {$IFDEF TYPE}
  16. xmlRelaxNG = record end;
  17. (**
  18. * A schemas validation context
  19. *)
  20. xmlRelaxNGValidityErrorFunc = procedure(ctx: pointer; msg: pchar); cdecl; varargs;
  21. xmlRelaxNGValidityWarningFunc = procedure(ctx: pointer; msg: pchar); cdecl; varargs;
  22. xmlRelaxNGParserCtxt = record end;
  23. xmlRelaxNGValidCtxt = record end;
  24. (*
  25. * xmlRelaxNGValidErr:
  26. *
  27. * List of possible Relax NG validation errors
  28. *)
  29. xmlRelaxNGValidErr = (
  30. XML_RELAXNG_OK = 0,
  31. XML_RELAXNG_ERR_MEMORY,
  32. XML_RELAXNG_ERR_TYPE,
  33. XML_RELAXNG_ERR_TYPEVAL,
  34. XML_RELAXNG_ERR_DUPID,
  35. XML_RELAXNG_ERR_TYPECMP,
  36. XML_RELAXNG_ERR_NOSTATE,
  37. XML_RELAXNG_ERR_NODEFINE,
  38. XML_RELAXNG_ERR_LISTEXTRA,
  39. XML_RELAXNG_ERR_LISTEMPTY,
  40. XML_RELAXNG_ERR_INTERNODATA,
  41. XML_RELAXNG_ERR_INTERSEQ,
  42. XML_RELAXNG_ERR_INTEREXTRA,
  43. XML_RELAXNG_ERR_ELEMNAME,
  44. XML_RELAXNG_ERR_ATTRNAME,
  45. XML_RELAXNG_ERR_ELEMNONS,
  46. XML_RELAXNG_ERR_ATTRNONS,
  47. XML_RELAXNG_ERR_ELEMWRONGNS,
  48. XML_RELAXNG_ERR_ATTRWRONGNS,
  49. XML_RELAXNG_ERR_ELEMEXTRANS,
  50. XML_RELAXNG_ERR_ATTREXTRANS,
  51. XML_RELAXNG_ERR_ELEMNOTEMPTY,
  52. XML_RELAXNG_ERR_NOELEM,
  53. XML_RELAXNG_ERR_NOTELEM,
  54. XML_RELAXNG_ERR_ATTRVALID,
  55. XML_RELAXNG_ERR_CONTENTVALID,
  56. XML_RELAXNG_ERR_EXTRACONTENT,
  57. XML_RELAXNG_ERR_INVALIDATTR,
  58. XML_RELAXNG_ERR_DATAELEM,
  59. XML_RELAXNG_ERR_VALELEM,
  60. XML_RELAXNG_ERR_LISTELEM,
  61. XML_RELAXNG_ERR_DATATYPE,
  62. XML_RELAXNG_ERR_VALUE,
  63. XML_RELAXNG_ERR_LIST,
  64. XML_RELAXNG_ERR_NOGRAMMAR,
  65. XML_RELAXNG_ERR_EXTRADATA,
  66. XML_RELAXNG_ERR_LACKDATA,
  67. XML_RELAXNG_ERR_INTERNAL,
  68. XML_RELAXNG_ERR_ELEMWRONG,
  69. XML_RELAXNG_ERR_TEXTWRONG
  70. );
  71. (*
  72. * xmlRelaxNGParserFlags:
  73. *
  74. * List of possible Relax NG Parser flags
  75. *)
  76. xmlRelaxNGParserFlag = (
  77. XML_RELAXNGP_NONE = 0,
  78. XML_RELAXNGP_FREE_DOC = 1,
  79. XML_RELAXNGP_CRNG = 2
  80. );
  81. {$ENDIF}
  82. {$IFDEF FUNCTION}
  83. function xmlRelaxNGInitTypes: cint; EXTDECL; external xml2lib;
  84. function xmlRelaxNGCleanupTypes: cint; EXTDECL; external xml2lib;
  85. (*
  86. * Interfaces for parsing.
  87. *)
  88. function xmlRelaxNGNewParserCtxt(URL: pchar): xmlRelaxNGParserCtxtPtr; EXTDECL; external xml2lib;
  89. function xmlRelaxNGNewMemParserCtxt(buffer: pchar; size: cint): xmlRelaxNGParserCtxtPtr; EXTDECL; external xml2lib;
  90. function xmlRelaxNGNewDocParserCtxt(doc: xmlDocPtr): xmlRelaxNGParserCtxtPtr; EXTDECL; external xml2lib;
  91. function xmlRelaxParserSetFlag(ctxt: xmlRelaxNGParserCtxtPtr; flag: cint; doc: xmlDocPtr): cint; EXTDECL; external xml2lib;
  92. procedure xmlRelaxNGFreeParserCtxt(ctxt: xmlRelaxNGParserCtxtPtr); EXTDECL; external xml2lib;
  93. procedure xmlRelaxNGSetParserErrors(ctxt: xmlRelaxNGParserCtxtPtr; err: xmlRelaxNGValidityErrorFunc; warn: xmlRelaxNGValidityWarningFunc; ctx: pointer); EXTDECL; external xml2lib;
  94. function xmlRelaxNGGetParserErrors(ctxt: xmlRelaxNGParserCtxtPtr; var err: xmlRelaxNGValidityErrorFunc; var warn: xmlRelaxNGValidityWarningFunc; var ctx: pointer): cint; EXTDECL; external xml2lib;
  95. procedure xmlRelaxNGSetParserStructuredErrors(ctxt: xmlRelaxNGParserCtxtPtr; serror: xmlStructuredErrorFunc; ctx: pointer); EXTDECL; external xml2lib;
  96. function xmlRelaxNGParse(ctxt: xmlRelaxNGParserCtxtPtr): xmlRelaxNGPtr; EXTDECL; external xml2lib;
  97. procedure xmlRelaxNGFree(schema: xmlRelaxNGPtr); EXTDECL; external xml2lib;
  98. {$IFDEF LIBXML_OUTPUT_ENABLED}
  99. procedure xmlRelaxNGDump(output: PFILE; schema: xmlRelaxNGPtr); EXTDECL; external xml2lib;
  100. procedure xmlRelaxNGDumpTree(output: PFILE; schema: xmlRelaxNGPtr); EXTDECL; external xml2lib;
  101. {$ENDIF} (* LIBXML_OUTPUT_ENABLED *)
  102. (*
  103. * Interfaces for validating
  104. *)
  105. procedure xmlRelaxNGSetValidErrors(ctxt: xmlRelaxNGValidCtxtPtr; err: xmlRelaxNGValidityErrorFunc; warn: xmlRelaxNGValidityWarningFunc; ctx: pointer); EXTDECL; external xml2lib;
  106. function xmlRelaxNGGetValidErrors(ctxt: xmlRelaxNGValidCtxtPtr; var err: xmlRelaxNGValidityErrorFunc; var warn: xmlRelaxNGValidityWarningFunc; var ctx: pointer): cint; EXTDECL; external xml2lib;
  107. procedure xmlRelaxNGSetValidErrors(ctxt: xmlRelaxNGValidCtxtPtr; serror: xmlStructuredErrorFunc; ctx: pointer); EXTDECL; external xml2lib;
  108. function xmlRelaxNGNewValidCtxt(schema: xmlRelaxNGPtr): xmlRelaxNGValidCtxtPtr; EXTDECL; external xml2lib;
  109. procedure xmlRelaxNGFreeValidCtxt(ctxt: xmlRelaxNGValidCtxtPtr); EXTDECL; external xml2lib;
  110. function xmlRelaxNGValidateDoc(ctxt: xmlRelaxNGValidCtxtPtr; doc: xmlDocPtr): cint; EXTDECL; external xml2lib;
  111. (*
  112. * Interfaces for progressive validation when possible
  113. *)
  114. function xmlRelaxNGValidatePushElement(ctxt: xmlRelaxNGValidCtxtPtr; doc: xmlDocPtr; elem: xmlNodePtr): cint; EXTDECL; external xml2lib;
  115. function xmlRelaxNGValidatePushCData(ctxt: xmlRelaxNGValidCtxtPtr; data: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
  116. function xmlRelaxNGValidatePopElement(ctxt: xmlRelaxNGValidCtxtPtr; doc: xmlDocPtr; elem: xmlNodePtr): cint; EXTDECL; external xml2lib;
  117. function xmlRelaxNGValidateFullElement(ctxt: xmlRelaxNGValidCtxtPtr; doc: xmlDocPtr; elem: xmlNodePtr): cint; EXTDECL; external xml2lib;
  118. {$ENDIF}
  119. {$ENDIF} (* LIBXML_SCHEMAS_ENABLED *)