The software does not only have to keep track with word occurrences like in the classic inverted index. Instead it must know the hierarchy of nodes the document consists of and the position of every node inside the document tree. It does so by avoiding tree traversals wherever it can - contrary to most XPath implementations. Instead it uses fast, direct index accesses and set operations. There's one big table containing all the basic information about nodes.
Additional data regarding text, attribute and element nodes is stored into extra tables.
The system also creates some indexes containing word and element occurrences. This identifier is generated in a way that cleary describes the nodes position in the document tree. From a given identifier we are able to calculate the parent of a node and its possible first child. The basic idea behind this has been proposed by other authors. I extended the scheme to allow large documents to be indexed.