Home | History | Annotate | Download | only in libxmlrpg
      1       * Summary: unfinished XLink detection module
      2       * Description: unfinished XLink detection module
      3       *
      4       * Copy: See Copyright for the status of this software.
      5       *
      6       * Author: Patrick Monnerat <pm (a] datasphere.ch>, DATASPHERE S.A.
      7 
      8       /if not defined(XML_XLINK_H__)
      9       /define XML_XLINK_H__
     10 
     11       /include "libxmlrpg/xmlversion"
     12 
     13       /if defined(LIBXML_XPTR_ENABLED)
     14 
     15       /include "libxmlrpg/xmlTypesC"
     16       /include "libxmlrpg/tree"
     17 
     18       * Various defines for the various Link properties.
     19       *
     20       * NOTE: the link detection layer will try to resolve QName expansion
     21       *       of namespaces. If "foo" is the prefix for "http://foo.com/"
     22       *       then the link detection layer will expand role="foo:myrole"
     23       *       to "http://foo.com/:myrole".
     24       * NOTE: the link detection layer will expand URI-Refences found on
     25       *       href attributes by using the base mechanism if found.
     26 
     27      d xlinkRef        s               *   based(######typedef######)           xmlChar *
     28      d xlinkRole       s               *   based(######typedef######)           xmlChar *
     29      d xlinkTitle      s               *   based(######typedef######)           xmlChar *
     30 
     31      d xlinkType       s                   based(######typedef######)
     32      d                                     like(xmlCenum)
     33      d  XLINK_TYPE_NONE...
     34      d                 c                   0
     35      d  XLINK_TYPE_SIMPLE...
     36      d                 c                   1
     37      d  XLINK_TYPE_EXTENDED...
     38      d                 c                   2
     39      d  XLINK_TYPE_EXTENDED_SET...
     40      d                 c                   3
     41 
     42      d xlinkShow       s                   based(######typedef######)
     43      d                                     like(xmlCenum)
     44      d  XLINK_SHOW_NONE...
     45      d                 c                   0
     46      d  XLINK_SHOW_NEW...
     47      d                 c                   1
     48      d  XLINK_SHOW_EMBED...
     49      d                 c                   2
     50      d  XLINK_SHOW_REPLACE...
     51      d                 c                   3
     52 
     53      d xlinkActuate    s                   based(######typedef######)
     54      d                                     like(xmlCenum)
     55      d  XLINK_ACTUATE_NONE...
     56      d                 c                   0
     57      d  XLINK_ACTUATE_AUTO...
     58      d                 c                   1
     59      d  XLINK_ACTUATE_ONREQUEST...
     60      d                 c                   2
     61 
     62       * xlinkNodeDetectFunc:
     63       * @ctx:  user data pointer
     64       * @node:  the node to check
     65       *
     66       * This is the prototype for the link detection routine.
     67       * It calls the default link detection callbacks upon link detection.
     68 
     69      d xlinkNodeDetectFunc...
     70      d                 s               *   based(######typedef######)
     71      d                                     procptr
     72 
     73       * The link detection module interact with the upper layers using
     74       * a set of callback registered at parsing time.
     75 
     76       * xlinkSimpleLinkFunk:
     77       * @ctx:  user data pointer
     78       * @node:  the node carrying the link
     79       * @href:  the target of the link
     80       * @role:  the role string
     81       * @title:  the link title
     82       *
     83       * This is the prototype for a simple link detection callback.
     84 
     85      d xlinkSimpleLinkFunk...
     86      d                 s               *   based(######typedef######)
     87      d                                     procptr
     88 
     89       * xlinkExtendedLinkFunk:
     90       * @ctx:  user data pointer
     91       * @node:  the node carrying the link
     92       * @nbLocators: the number of locators detected on the link
     93       * @hrefs:  pointer to the array of locator hrefs
     94       * @roles:  pointer to the array of locator roles
     95       * @nbArcs: the number of arcs detected on the link
     96       * @from:  pointer to the array of source roles found on the arcs
     97       * @to:  pointer to the array of target roles found on the arcs
     98       * @show:  array of values for the show attributes found on the arcs
     99       * @actuate:  array of values for the actuate attributes found on the arcs
    100       * @nbTitles: the number of titles detected on the link
    101       * @title:  array of titles detected on the link
    102       * @langs:  array of xml:lang values for the titles
    103       *
    104       * This is the prototype for a extended link detection callback.
    105 
    106      d xlinkExtendedLinkFunk...
    107      d                 s               *   based(######typedef######)
    108      d                                     procptr
    109 
    110       * xlinkExtendedLinkSetFunk:
    111       * @ctx:  user data pointer
    112       * @node:  the node carrying the link
    113       * @nbLocators: the number of locators detected on the link
    114       * @hrefs:  pointer to the array of locator hrefs
    115       * @roles:  pointer to the array of locator roles
    116       * @nbTitles: the number of titles detected on the link
    117       * @title:  array of titles detected on the link
    118       * @langs:  array of xml:lang values for the titles
    119       *
    120       * This is the prototype for a extended link set detection callback.
    121 
    122      d xlinkExtendedLinkSetFunk...
    123      d                 s               *   based(######typedef######)
    124      d                                     procptr
    125 
    126       * This is the structure containing a set of Links detection callbacks.
    127       *
    128       * There is no default xlink callbacks, if one want to get link
    129       * recognition activated, those call backs must be provided before parsing.
    130 
    131      d xlinkHandlerPtr...
    132      d                 s               *   based(######typedef######)           xmlChar *
    133 
    134      d xlinkHandler    ds                  based(xlinkHandlerPtr)
    135      d                                     align qualified
    136      d  simple                             like(xlinkSimpleLinkFunk)
    137      d  extended                           like(xlinkExtendedLinkFunk)
    138      d  set                                like(xlinkExtendedLinkSetFunk)
    139 
    140       * The default detection routine, can be overridden, they call the default
    141       * detection callbacks.
    142 
    143      d xlinkGetDefaultDetect...
    144      d                 pr                  extproc('xlinkGetDefaultDetect')
    145      d                                     like(xlinkNodeDetectFunc)
    146 
    147      d xlinkSetDefaultDetect...
    148      d                 pr                  extproc('xlinkSetDefaultDetect')
    149      d  func                               value like(xlinkNodeDetectFunc)
    150 
    151       * Routines to set/get the default handlers.
    152 
    153      d xlinkGetDefaultHandler...
    154      d                 pr                  extproc('xlinkGetDefaultHandler')
    155      d                                     like(xlinkHandlerPtr)
    156 
    157      d xlinkSetDefaultHandler...
    158      d                 pr                  extproc('xlinkSetDefaultHandler')
    159      d  handler                            value like(xlinkHandlerPtr)
    160 
    161       * Link detection module itself.
    162 
    163      d xlinkIsLink     pr                  extproc('xlinkIsLink')
    164      d                                     like(xlinkType)
    165      d  doc                                value like(xmlDocPtr)
    166      d  node                               value like(xmlNodePtr)
    167 
    168       /endif                                                                    LIBXML_XPTR_ENABLED
    169       /endif                                                                    XML_XLINK_H__
    170