pattern.inc 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. (*
  2. * Summary: pattern expression handling
  3. * Description: allows to compile and test pattern expressions for nodes
  4. * either in a tree or based on a parser state.
  5. *
  6. * Copy: See Copyright for the status of this software.
  7. *
  8. * Author: Daniel Veillard
  9. *)
  10. {$IFDEF LIBXML_PATTERN_ENABLED}
  11. {$IFDEF POINTER}
  12. xmlPatternPtr = ^xmlPattern;
  13. xmlStreamCtxtPtr = ^xmlStreamCtxt;
  14. {$ENDIF}
  15. {$IFDEF TYPE}
  16. (**
  17. * xmlPattern:
  18. *
  19. * A compiled (XPath based) pattern to select nodes
  20. *)
  21. xmlPattern = record end;
  22. xmlStreamCtxt = record end;
  23. (**
  24. * xmlPatternFlags:
  25. *
  26. * This is the set of options affecting the behaviour of pattern
  27. * matching with this module
  28. *
  29. *)
  30. xmlPatternFlags = type cint;
  31. {$ENDIF}
  32. {$IFDEF CONST}
  33. XML_PATTERN_DEFAULT = 0; (* simple pattern match *)
  34. XML_PATTERN_XPATH = 1 shl 0; (* standard XPath pattern *)
  35. XML_PATTERN_XSSEL = 1 shl 1; (* XPath subset for schema selector *)
  36. XML_PATTERN_XSFIELD = 1 shl 2; (* XPath subset for schema field *)
  37. {$ENDIF}
  38. {$IFDEF FUNCTION}
  39. procedure xmlFreePattern(comp: xmlPatternPtr); EXTDECL; external xml2lib;
  40. procedure xmlFreePatternList(comp: xmlPatternPtr); EXTDECL; external xml2lib;
  41. function xmlPatterncompile(pattern: xmlCharPtr; dict: xmlDictPtr; flags: cint; namespaces: xmlCharPtrPtr): xmlPatternPtr; EXTDECL; external xml2lib;
  42. function xmlPatternMatch(comp: xmlPatternPtr; node: xmlNodePtr): cint; EXTDECL; external xml2lib;
  43. (* streaming interfaces *)
  44. function xmlPatternStreamable(comp: xmlPatternPtr): cint; EXTDECL; external xml2lib;
  45. function xmlPatternMaxDepth(comp: xmlPatternPtr): cint; EXTDECL; external xml2lib;
  46. function xmlPatternMinDepth(comp: xmlPatternPtr): cint; EXTDECL; external xml2lib;
  47. function xmlPatternFromRoot(comp: xmlPatternPtr): cint; EXTDECL; external xml2lib;
  48. function xmlPatternGetStreamCtxt(comp: xmlPatternPtr): xmlStreamCtxtPtr; EXTDECL; external xml2lib;
  49. procedure xmlFreeStreamCtxt(stream: xmlStreamCtxtPtr); EXTDECL; external xml2lib;
  50. function xmlStreamPushNode(stream: xmlStreamCtxtPtr; name, ns: xmlCharPtr; nodeType: cint): cint; EXTDECL; external xml2lib;
  51. function xmlStreamPush(stream: xmlStreamCtxtPtr; name, ns: xmlCharPtr): cint; EXTDECL; external xml2lib;
  52. function xmlStreamPushAttr(stream: xmlStreamCtxtPtr; name, ns: xmlCharPtr): cint; EXTDECL; external xml2lib;
  53. function xmlStreamPop(stream: xmlStreamCtxtPtr): cint; EXTDECL; external xml2lib;
  54. function xmlStreamWantsAnyNode(stream: xmlStreamCtxtPtr): cint; EXTDECL; external xml2lib;
  55. {$ENDIF}
  56. {$ENDIF} (* LIBXML_PATTERN_ENABLED *)