Home | History | Annotate | Download | only in libxmlrpg
      1       * Summary: API to handle XML Pointers
      2       * Description: API to handle XML Pointers
      3       * Base implementation was made accordingly to
      4       * W3C Candidate Recommendation 7 June 2000
      5       * http://www.w3.org/TR/2000/CR-xptr-20000607
      6       *
      7       * Added support for the element() scheme described in:
      8       * W3C Proposed Recommendation 13 November 2002
      9       * http://www.w3.org/TR/2002/PR-xptr-element-20021113/
     10       *
     11       * Copy: See Copyright for the status of this software.
     12       *
     13       * Author: Patrick Monnerat <pm (a] datasphere.ch>, DATASPHERE S.A.
     14 
     15       /if not defined(XML_XPTR_H__)
     16       /define XML_XPTR_H__
     17 
     18       /include "libxmlrpg/xmlversion"
     19 
     20       /if defined(LIBXML_XPTR_ENABLED)
     21 
     22       /include "libxmlrpg/tree"
     23       /include "libxmlrpg/xpath"
     24 
     25       * A Location Set
     26 
     27      d xmlLocationSetPtr...
     28      d                 s               *   based(######typedef######)
     29 
     30      d xmlLocationSet  ds                  based(xmlLocationSetPtr)
     31      d                                     align qualified
     32      d  locNr                        10i 0                                      # locations in set
     33      d  locMax                       10i 0                                      Max locations in set
     34      d  locTab                         *                                        xmlXPathObjectPtr *
     35 
     36       * Handling of location sets.
     37 
     38      d xmlXPtrLocationSetCreate...
     39      d                 pr                  extproc('xmlXPtrLocationSetCreate')
     40      d                                     like(xmlLocationSetPtr)
     41      d val                                 value like(xmlXPathObjectPtr)
     42 
     43      d xmlXPtrFreeLocationSet...
     44      d                 pr                  extproc('xmlXPtrFreeLocationSet')
     45      d obj                                 value like(xmlLocationSetPtr)
     46 
     47      d xmlXPtrLocationSetMerge...
     48      d                 pr                  extproc('xmlXPtrLocationSetMerge')
     49      d                                     like(xmlLocationSetPtr)
     50      d val1                                value like(xmlLocationSetPtr)
     51      d val2                                value like(xmlLocationSetPtr)
     52 
     53      d xmlXPtrNewRange...
     54      d                 pr                  extproc('xmlXPtrNewRange')
     55      d                                     like(xmlXPathObjectPtr)
     56      d start                               value like(xmlNodePtr)
     57      d startindex                    10i 0 value
     58      d end                                 value like(xmlNodePtr)
     59      d endindex                      10i 0 value
     60 
     61      d xmlXPtrNewRangePoints...
     62      d                 pr                  extproc('xmlXPtrNewRangePoints')
     63      d                                     like(xmlXPathObjectPtr)
     64      d start                               value like(xmlXPathObjectPtr)
     65      d end                                 value like(xmlXPathObjectPtr)
     66 
     67      d xmlXPtrNewRangeNodePoint...
     68      d                 pr                  extproc('xmlXPtrNewRangeNodePoint')
     69      d                                     like(xmlXPathObjectPtr)
     70      d start                               value like(xmlNodePtr)
     71      d end                                 value like(xmlXPathObjectPtr)
     72 
     73      d xmlXPtrNewRangePointNode...
     74      d                 pr                  extproc('xmlXPtrNewRangePointNode')
     75      d                                     like(xmlXPathObjectPtr)
     76      d start                               value like(xmlXPathObjectPtr)
     77      d end                                 value like(xmlNodePtr)
     78 
     79      d xmlXPtrNewRangeNodes...
     80      d                 pr                  extproc('xmlXPtrNewRangeNodes')
     81      d                                     like(xmlXPathObjectPtr)
     82      d start                               value like(xmlNodePtr)
     83      d end                                 value like(xmlNodePtr)
     84 
     85      d xmlXPtrNewLocationSetNodes...
     86      d                 pr                  extproc('xmlXPtrNewLocationSetNodes')
     87      d                                     like(xmlXPathObjectPtr)
     88      d start                               value like(xmlNodePtr)
     89      d end                                 value like(xmlNodePtr)
     90 
     91      d xmlXPtrNewLocationSetNodeSet...
     92      d                 pr                  extproc(
     93      d                                     'xmlXPtrNewLocationSetNodeSet')
     94      d                                     like(xmlXPathObjectPtr)
     95      d set                                 value like(xmlNodeSetPtr)
     96 
     97      d xmlXPtrNewRangeNodeObject...
     98      d                 pr                  extproc('xmlXPtrNewRangeNodeObject')
     99      d                                     like(xmlXPathObjectPtr)
    100      d start                               value like(xmlNodePtr)
    101      d end                                 value like(xmlXPathObjectPtr)
    102 
    103      d xmlXPtrNewCollapsedRange...
    104      d                 pr                  extproc('xmlXPtrNewCollapsedRange')
    105      d                                     like(xmlXPathObjectPtr)
    106      d start                               value like(xmlNodePtr)
    107 
    108      d xmlXPtrLocationSetAdd...
    109      d                 pr                  extproc('xmlXPtrLocationSetAdd')
    110      d cur                                 value like(xmlLocationSetPtr)
    111      d val                                 value like(xmlXPathObjectPtr)
    112 
    113      d xmlXPtrWrapLocationSet...
    114      d                 pr                  extproc('xmlXPtrWrapLocationSet')
    115      d                                     like(xmlXPathObjectPtr)
    116      d val                                 value like(xmlLocationSetPtr)
    117 
    118      d xmlXPtrLocationSetDel...
    119      d                 pr                  extproc('xmlXPtrLocationSetDel')
    120      d cur                                 value like(xmlLocationSetPtr)
    121      d val                                 value like(xmlXPathObjectPtr)
    122 
    123      d xmlXPtrLocationSetRemove...
    124      d                 pr                  extproc('xmlXPtrLocationSetRemove')
    125      d cur                                 value like(xmlLocationSetPtr)
    126      d val                           10i 0 value
    127 
    128       * Functions.
    129 
    130      d xmlXPtrNewContext...
    131      d                 pr                  extproc('xmlXPtrNewContext')
    132      d                                     like(xmlXPathContextPtr)
    133      d doc                                 value like(xmlDocPtr)
    134      d here                                value like(xmlNodePtr)
    135      d origin                              value like(xmlNodePtr)
    136 
    137      d xmlXPtrEval     pr                  extproc('xmlXPtrEval')
    138      d                                     like(xmlXPathObjectPtr)
    139      d str                             *   value options(*string)               const xmlChar *
    140      d ctx                                 value like(xmlXPathContextPtr)
    141 
    142      d xmlXPtrRangeToFunction...
    143      d                 pr                  extproc('xmlXPtrRangeToFunction')
    144      d ctxt                                value like(xmlXPathParserContextPtr)
    145      d nargs                         10i 0 value
    146 
    147      d xmlXPtrBuildNodeList...
    148      d                 pr                  extproc('xmlXPtrBuildNodeList')
    149      d                                     like(xmlNodePtr)
    150      d obj                                 value like(xmlXPathObjectPtr)
    151 
    152      d xmlXPtrEvalRangePredicate...
    153      d                 pr                  extproc('xmlXPtrEvalRangePredicate')
    154      d ctxt                                value like(xmlXPathParserContextPtr)
    155 
    156       /endif                                                                    LIBXML_XPTR_ENABLED
    157       /endif                                                                    XML_XPTR_H__
    158