1. A computer implemented method comprising: performing, by a processor, a first Xpath evaluation on a stream of Extensible Markup Language (XML) messages, the first Xpath evaluation based on a group of Xpath queries associated with a first user transaction; receiving, by a processor, a plurality of requests to modify the Xpath query group and combining the plurality of requests into a single atomic modification; and modifying, by a processor, the Xpath query group, in a persistent manner, without affecting the ongoing first Xpath evaluation on the XML messages, wherein modifying the Xpath query group comprises: generating a second data structure as a copy of portions of a first data structure, the first data structure comprising a hash table with branches, the branches derived from the group of Xpath queries prior to modification and only copying branches of the first data structure being modified; altering at least one branch of the second data structure in accordance with the modification request, wherein the single atomic modification modifies the second data structure to perform a subsequent Xpath evaluation corresponding to a subsequent modification request of the plurality of requests without generating an additional data structure; performing a second Xpath evaluation, associated with a second user transaction, using the second data structure in substantially real time with the first Xpath evaluation such that the first and second user transactions are overlapping; and deleting the first data structure upon completion of the first user transaction and using the second data structure for additional user transactions until modified.
1. A computer implemented method comprising: performing, by a processor, a first Xpath evaluation on a stream of Extensible Markup Language (XML) messages, the first Xpath evaluation based on a group of Xpath queries associated with a first user transaction; receiving, by a processor, a plurality of requests to modify the Xpath query group and combining the plurality of requests into a single atomic modification; and modifying, by a processor, the Xpath query group, in a persistent manner, without affecting the ongoing first Xpath evaluation on the XML messages, wherein modifying the Xpath query group comprises: generating a second data structure as a copy of portions of a first data structure, the first data structure comprising a hash table with branches, the branches derived from the group of Xpath queries prior to modification and only copying branches of the first data structure being modified; altering at least one branch of the second data structure in accordance with the modification request, wherein the single atomic modification modifies the second data structure to perform a subsequent Xpath evaluation corresponding to a subsequent modification request of the plurality of requests without generating an additional data structure; performing a second Xpath evaluation, associated with a second user transaction, using the second data structure in substantially real time with the first Xpath evaluation such that the first and second user transactions are overlapping; and deleting the first data structure upon completion of the first user transaction and using the second data structure for additional user transactions until modified. 2. The computer implemented method of claim 1 , wherein said modifying comprises: generating a current generation of Nondeterministic Finite Automaton (NFA) by compiling said Xpath query group, said current generation of NFA maintained as a data structure; identifying at least one branch of said data structure starting from the root node according to the modification request; creating a copy of the identified at least one branch of the data structure; modifying said copy to create a new generation of NFA further comprising modifying said at least one branch of the data structure starting from the root node; and using said new generation of NFA for subsequent Xpath evaluations.