• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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@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