* Summary: internal interfaces for XML Path Language implementation * Description: internal interfaces for XML Path Language implementation * used to build new modules on top of XPath like XPointer and * XSLT * * Copy: See Copyright for the status of this software. * * Author: Patrick Monnerat , DATASPHERE S.A. /if not defined(XML_XPATH_INTERNALS_H__) /define XML_XPATH_INTERNALS_H__ /include "libxmlrpg/xmlversion" /if defined(LIBXML_XPATH_ENABLED) /include "libxmlrpg/xmlTypesC" /include "libxmlrpg/xpath" ************************************************************************ * * * Helpers * * * ************************************************************************ * Many of these macros may later turn into functions. They * shouldn't be used in #ifdef's preprocessor instructions. d xmlXPathPopBoolean... d pr extproc('xmlXPathPopBoolean') d like(xmlCint) d ctxt value like(xmlXPathParserContextPtr) d xmlXPathPopNumber... d pr extproc('xmlXPathPopNumber') d like(xmlCdouble) d ctxt value like(xmlXPathParserContextPtr) d xmlXPathPopString... d pr * extproc('xmlXPathPopString') xmlChar * d ctxt value like(xmlXPathParserContextPtr) d xmlXPathPopNodeSet... d pr extproc('xmlXPathPopNodeSet') d like(xmlNodeSetPtr) d ctxt value like(xmlXPathParserContextPtr) d xmlXPathPopExternal... d pr * extproc('xmlXPathPopExternal') void * d ctxt value like(xmlXPathParserContextPtr) * Variable Lookup forwarding. d xmlXPathRegisterVariableLookup... d pr extproc( d 'xmlXPathRegisterVariableLookup') d ctxt value like(xmlXPathContextPtr) d f value d like(xmlXPathVariableLookupFunc) d data * value void * * Function Lookup forwarding. d xmlXPathRegisterFuncLookup... d pr extproc('xmlXPathRegisterFuncLookup') d ctxt value like(xmlXPathContextPtr) d f value like(xmlXPathFuncLookupFunc) d funcCtxt * value void * * Error reporting. * Note this procedure is renamed in RPG to avoid character case clash with * data type xmlXPathError. d xmlXPathReportError... d pr extproc('xmlXPatherror') d ctxt value like(xmlXPathParserContextPtr) d file * value options(*string) const char * d line value like(xmlCint) d no value like(xmlCint) d xmlXPathErr pr extproc('xmlXPathErr') d ctxt value like(xmlXPathParserContextPtr) d error value like(xmlCint) /if defined(LIBXML_DEBUG_ENABLED) d xmlXPathDebugDumpObject... d pr extproc('xmlXPathDebugDumpObject') d output * value FILE * d cur value like(xmlXPathObjectPtr) d depth value like(xmlCint) d xmlXPathDebugDumpCompExpr... d pr extproc('xmlXPathDebugDumpCompExpr') d output * value FILE * d comp value like(xmlXPathCompExprPtr) d depth value like(xmlCint) /endif * NodeSet handling. d xmlXPathNodeSetContains... d pr extproc('xmlXPathNodeSetContains') d like(xmlCint) d cur value like(xmlNodeSetPtr) d val value like(xmlNodePtr) d xmlXPathDifference... d pr extproc('xmlXPathDifference') d like(xmlNodeSetPtr) d nodes1 value like(xmlNodeSetPtr) d nodes2 value like(xmlNodeSetPtr) d xmlXPathIntersection... d pr extproc('xmlXPathIntersection') d like(xmlNodeSetPtr) d nodes1 value like(xmlNodeSetPtr) d nodes2 value like(xmlNodeSetPtr) d xmlXPathDistinctSorted... d pr extproc('xmlXPathDistinctSorted') d like(xmlNodeSetPtr) d nodes value like(xmlNodeSetPtr) d xmlXPathDistinct... d pr extproc('xmlXPathDistinct') d like(xmlNodeSetPtr) d nodes value like(xmlNodeSetPtr) d xmlXPathHasSameNodes... d pr extproc('xmlXPathHasSameNodes') d like(xmlCint) d nodes1 value like(xmlNodeSetPtr) d nodes2 value like(xmlNodeSetPtr) d xmlXPathNodeLeadingSorted... d pr extproc('xmlXPathNodeLeadingSorted') d like(xmlNodeSetPtr) d nodes value like(xmlNodeSetPtr) d node value like(xmlNodePtr) d xmlXPathLeadingSorted... d pr extproc('xmlXPathLeadingSorted') d like(xmlNodeSetPtr) d nodes1 value like(xmlNodeSetPtr) d nodes2 value like(xmlNodeSetPtr) d xmlXPathNodeLeading... d pr extproc('xmlXPathNodeLeading') d like(xmlNodeSetPtr) d nodes value like(xmlNodeSetPtr) d node value like(xmlNodePtr) d xmlXPathLeading... d pr extproc('xmlXPathLeading') d like(xmlNodeSetPtr) d nodes1 value like(xmlNodeSetPtr) d nodes2 value like(xmlNodeSetPtr) d xmlXPathNodeTrailingSorted... d pr extproc('xmlXPathNodeTrailingSorted') d like(xmlNodeSetPtr) d nodes value like(xmlNodeSetPtr) d node value like(xmlNodePtr) d xmlXPathTrailingSorted... d pr extproc('xmlXPathTrailingSorted') d like(xmlNodeSetPtr) d nodes1 value like(xmlNodeSetPtr) d nodes2 value like(xmlNodeSetPtr) d xmlXPathNodeTrailing... d pr extproc('xmlXPathNodeTrailing') d like(xmlNodeSetPtr) d nodes value like(xmlNodeSetPtr) d node value like(xmlNodePtr) d xmlXPathTrailing... d pr extproc('xmlXPathTrailing') d like(xmlNodeSetPtr) d nodes1 value like(xmlNodeSetPtr) d nodes2 value like(xmlNodeSetPtr) * Extending a context. d xmlXPathRegisterNs... d pr extproc('xmlXPathRegisterNs') d like(xmlCint) d ctxt value like(xmlXPathContextPtr) d prefix * value options(*string) const xmlChar * d ns_uri * value options(*string) const xmlChar * d xmlXPathNsLookup... d pr * extproc('xmlXPathNsLookup') const xmlChar * d ctxt value like(xmlXPathContextPtr) d prefix * value options(*string) const xmlChar * d xmlXPathRegisteredNsCleanup... d pr extproc( d 'xmlXPathRegisteredNsCleanup') d ctxt value like(xmlXPathContextPtr) d xmlXPathRegisterFunc... d pr extproc('xmlXPathRegisterFunc') d like(xmlCint) d ctxt value like(xmlXPathContextPtr) d name * value options(*string) const xmlChar * d f value like(xmlXPathFunction) d xmlXPathRegisterFuncNS... d pr extproc('xmlXPathRegisterFuncNS') d like(xmlCint) d ctxt value like(xmlXPathContextPtr) d name * value options(*string) const xmlChar * d ns_uri * value options(*string) const xmlChar * d f value like(xmlXPathFunction) d xmlXPathRegisterVariable... d pr extproc('xmlXPathRegisterVariable') d like(xmlCint) d ctxt value like(xmlXPathContextPtr) d name * value options(*string) const xmlChar * d value value like(xmlXPathObjectPtr) d xmlXPathRegisterVariableNS... d pr extproc('xmlXPathRegisterVariableNS') d like(xmlCint) d ctxt value like(xmlXPathContextPtr) d name * value options(*string) const xmlChar * d ns_uri * value options(*string) const xmlChar * d value value like(xmlXPathObjectPtr) d xmlXPathFunctionLookup... d pr extproc('xmlXPathFunctionLookup') d like(xmlXPathFunction) d ctxt value like(xmlXPathContextPtr) d name * value options(*string) const xmlChar * d xmlXPathFunctionLookupNS... d pr extproc('xmlXPathFunctionLookupNS') d like(xmlXPathFunction) d ctxt value like(xmlXPathContextPtr) d name * value options(*string) const xmlChar * d ns_uri * value options(*string) const xmlChar * d xmlXPathRegisteredFuncsCleanup... d pr extproc( d 'xmlXPathRegisteredFuncsCleanup') d ctxt value like(xmlXPathContextPtr) d xmlXPathVariableLookup... d pr extproc('xmlXPathVariableLookup') d like(xmlXPathObjectPtr) d ctxt value like(xmlXPathContextPtr) d name * value options(*string) const xmlChar * d xmlXPathVariableLookupNS... d pr extproc('xmlXPathVariableLookupNS') d like(xmlXPathObjectPtr) d ctxt value like(xmlXPathContextPtr) d name * value options(*string) const xmlChar * d ns_uri * value options(*string) const xmlChar * d xmlXPathRegisteredVariablesCleanup... d pr extproc( d 'xmlXPathRegisteredVariablesCleanup') d ctxt value like(xmlXPathContextPtr) * Utilities to extend XPath. d xmlXPathNewParserContext... d pr extproc('xmlXPathNewParserContext') d like(xmlXPathParserContextPtr) d str * value options(*string) const xmlChar * d ctxt value like(xmlXPathContextPtr) d xmlXPathFreeParserContext... d pr extproc('xmlXPathFreeParserContext') d ctxt value like(xmlXPathParserContextPtr) * TODO: remap to xmlXPathValuePop and Push. d valuePop pr extproc('valuePop') d like(xmlXPathObjectPtr) d ctxt value like(xmlXPathParserContextPtr) d valuePush pr extproc('valuePush') d like(xmlCint) d ctxt value like(xmlXPathParserContextPtr) d value value like(xmlXPathObjectPtr) d xmlXPathNewString... d pr extproc('xmlXPathNewString') d like(xmlXPathObjectPtr) d val * value options(*string) const xmlChar * d xmlXPathNewCString... d pr extproc('xmlXPathNewCString') d like(xmlXPathObjectPtr) d val * value options(*string) const char * d xmlXPathWrapString... d pr extproc('xmlXPathWrapString') d like(xmlXPathObjectPtr) d val * value options(*string) xmlChar * d xmlXPathWrapCString... d pr extproc('xmlXPathWrapCString') d like(xmlXPathObjectPtr) d val * value options(*string) char * d xmlXPathNewFloat... d pr extproc('xmlXPathNewFloat') d like(xmlXPathObjectPtr) d val value like(xmlCdouble) d xmlXPathNewBoolean... d pr extproc('xmlXPathNewBoolean') d like(xmlXPathObjectPtr) d val value like(xmlCint) d xmlXPathNewNodeSet... d pr extproc('xmlXPathNewNodeSet') d like(xmlXPathObjectPtr) d val value like(xmlNodePtr) d xmlXPathNewValueTree... d pr extproc('xmlXPathNewValueTree') d like(xmlXPathObjectPtr) d val value like(xmlNodePtr) d xmlXPathNodeSetAdd... d pr extproc('xmlXPathNodeSetAdd') d like(xmlCint) d cur value like(xmlNodeSetPtr) d val value like(xmlNodePtr) d xmlXPathNodeSetAddUnique... d pr extproc('xmlXPathNodeSetAddUnique') d like(xmlCint) d cur value like(xmlNodeSetPtr) d val value like(xmlNodePtr) d xmlXPathNodeSetAddNs... d pr extproc('xmlXPathNodeSetAddNs') d like(xmlCint) d cur value like(xmlNodeSetPtr) d node value like(xmlNodePtr) d ns value like(xmlNsPtr) d xmlXPathNodeSetSort... d pr extproc('xmlXPathNodeSetSort') d set value like(xmlNodeSetPtr) d xmlXPathRoot pr extproc('xmlXPathRoot') d ctxt value like(xmlXPathParserContextPtr) d xmlXPathEvalExpr... d pr extproc('xmlXPathEvalExpr') d ctxt value like(xmlXPathParserContextPtr) d xmlXPathParseName... d pr * extproc('xmlXPathParseName') xmlChar * d ctxt value like(xmlXPathParserContextPtr) d xmlXPathParseNCName... d pr * extproc('xmlXPathParseNCName') xmlChar * d ctxt value like(xmlXPathParserContextPtr) * Existing functions. d xmlXPathStringEvalNumber... d pr extproc('xmlXPathStringEvalNumber') d like(xmlCdouble) d str * value options(*string) const xmlChar * d xmlXPathEvaluatePredicateResult... d pr extproc( d 'xmlXPathEvaluatePredicateResult') d like(xmlCint) d ctxt value like(xmlXPathParserContextPtr) d res value like(xmlXPathObjectPtr) d xmlXPathRegisterAllFunctions... d pr extproc( d 'xmlXPathRegisterAllFunctions') d ctxt value like(xmlXPathContextPtr) d xmlXPathNodeSetMerge... d pr extproc('xmlXPathNodeSetMerge') d like(xmlNodeSetPtr) d val1 value like(xmlNodeSetPtr) d val2 value like(xmlNodeSetPtr) d xmlXPathNodeSetDel... d pr extproc('xmlXPathNodeSetDel') d cur value like(xmlNodeSetPtr) d val value like(xmlNodePtr) d xmlXPathNodeSetRemove... d pr extproc('xmlXPathNodeSetRemove') d cur value like(xmlNodeSetPtr) d val value like(xmlCint) d xmlXPathNewNodeSetList... d pr extproc('xmlXPathNewNodeSetList') d like(xmlXPathObjectPtr) d val value like(xmlNodeSetPtr) d xmlXPathWrapNodeSet... d pr extproc('xmlXPathWrapNodeSet') d like(xmlXPathObjectPtr) d val value like(xmlNodeSetPtr) d xmlXPathWrapExternal... d pr extproc('xmlXPathWrapExternal') d like(xmlXPathObjectPtr) d val * value void * d xmlXPathEqualValues... d pr extproc('xmlXPathEqualValues') d like(xmlCint) d ctxt value like(xmlXPathParserContextPtr) d xmlXPathNotEqualValues... d pr extproc('xmlXPathNotEqualValues') d like(xmlCint) d ctxt value like(xmlXPathParserContextPtr) d xmlXPathCompareValues... d pr extproc('xmlXPathCompareValues') d like(xmlCint) d ctxt value like(xmlXPathParserContextPtr) d inf value like(xmlCint) d strict value like(xmlCint) d xmlXPathValueFlipSign... d pr extproc('xmlXPathValueFlipSign') d ctxt value like(xmlXPathParserContextPtr) d xmlXPathAddValues... d pr extproc('xmlXPathAddValues') d ctxt value like(xmlXPathParserContextPtr) d xmlXPathSubValues... d pr extproc('xmlXPathSubValues') d ctxt value like(xmlXPathParserContextPtr) d xmlXPathMultValues... d pr extproc('xmlXPathMultValues') d ctxt value like(xmlXPathParserContextPtr) d xmlXPathDivValues... d pr extproc('xmlXPathDivValues') d ctxt value like(xmlXPathParserContextPtr) d xmlXPathModValues... d pr extproc('xmlXPathModValues') d ctxt value like(xmlXPathParserContextPtr) d xmlXPathIsNodeType... d pr extproc('xmlXPathIsNodeType') d like(xmlCint) d name * value options(*string) const xmlChar * * Some of the axis navigation routines. d xmlXPathNextSelf... d pr extproc('xmlXPathNextSelf') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextChild... d pr extproc('xmlXPathNextChild') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextDescendant... d pr extproc('xmlXPathNextDescendant') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextDescendantOrSelf... d pr extproc( d 'xmlXPathNextDescendantOrSelf') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextParent... d pr extproc('xmlXPathNextParent') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextAncestorOrSelf... d pr extproc('xmlXPathNextAncestorOrSelf') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextFollowingSibling... d pr extproc( d 'xmlXPathNextFollowingSibling') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextFollowing... d pr extproc('xmlXPathNextFollowing') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextNamespace... d pr extproc('xmlXPathNextNamespace') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextAttribute... d pr extproc('xmlXPathNextAttribute') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextPreceding... d pr extproc('xmlXPathNextPreceding') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextAncestor... d pr extproc('xmlXPathNextAncestor') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) d xmlXPathNextPrecedingSibling... d pr extproc( d 'xmlXPathNextPrecedingSibling') d like(xmlNodePtr) d ctxt value like(xmlXPathParserContextPtr) d cur value like(xmlNodePtr) * The official core of XPath functions. d xmlXPathLastFunction... d pr extproc('xmlXPathLastFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathPositionFunction... d pr extproc('xmlXPathPositionFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathCountFunction... d pr extproc('xmlXPathCountFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathIdFunction... d pr extproc('xmlXPathIdFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathLocalNameFunction... d pr extproc('xmlXPathLocalNameFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathNamespaceURIFunction... d pr extproc( d 'xmlXPathNamespaceURIFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathStringFunction... d pr extproc('xmlXPathStringFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathStringLengthFunction... d pr extproc( d 'xmlXPathStringLengthFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathConcatFunction... d pr extproc('xmlXPathConcatFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathContainsFunction... d pr extproc('xmlXPathContainsFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathStartsWithFunction... d pr extproc('xmlXPathStartsWithFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathSubstringFunction... d pr extproc('xmlXPathSubstringFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathSubstringBeforeFunction... d pr extproc( d 'xmlXPathSubstringBeforeFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathSubstringAfterFunction... d pr extproc( d 'xmlXPathSubstringAfterFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathNormalizeFunction... d pr extproc('xmlXPathNormalizeFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathTranslateFunction... d pr extproc('xmlXPathTranslateFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathNotFunction... d pr extproc('xmlXPathNotFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathTrueFunction... d pr extproc('xmlXPathTrueFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathFalseFunction... d pr extproc('xmlXPathFalseFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathLangFunction... d pr extproc('xmlXPathLangFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathNumberFunction... d pr extproc('xmlXPathNumberFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathSumFunction... d pr extproc('xmlXPathSumFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathFloorFunction... d pr extproc('xmlXPathFloorFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathCeilingFunction... d pr extproc('xmlXPathCeilingFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathRoundFunction... d pr extproc('xmlXPathRoundFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) d xmlXPathBooleanFunction... d pr extproc('xmlXPathBooleanFunction') d ctxt value like(xmlXPathParserContextPtr) d nargs value like(xmlCint) * Really internal functions d xmlXPathNodeSetFreeNs... d pr extproc('xmlXPathNodeSetFreeNs') d ns value like(xmlNsPtr) /endif LIBXML_XPATH_ENABLED /endif XPATH_INTERNALS_H__