Research Article

Pipelined XPath Query Based on Cost Optimization

Algorithm 1

Preprocess (, ).
Input: XML document , XPath query .
Output: XML node region coding , relation index , XML statistics .
(1) ← Analyze();
(2)id ← 0, level ← 0;//record the node ID and the level value of the current node
(3), ,;//initializing statistical variables
(4)while(!EOF())
(5)  p ← Parsing();
(6)  if(p is StartElement)//when a header tag is encountered
(7)   u ← id,  ← CreateNewNode(p), , id ← id + 1, level ← level+1;
(8)  if( is EndElement)//when the tail tag is encountered
(9)   UpdateNode(.end);
(10)   if;
(11)   foreach node id
(12)   if;
(13)   if((.nodeType = ELEMENT)∧()∧(.level-1 = level))  = “/”;
(14)   else if((.nodeType = ELEMENT)∧())  = “//”;
(15)   else if((.nodeType = ATTRIBUTE)∧()∧(.level-1 = level))  = “@”;
(16)   if() ;
(17)   if((.level = .level-1)∧(.nodeType = ELEMENT)) ;
(18)   else if((.level ≠ .level-1)∧(.nodeType = ELEMENT)) ;
(19)   else if((.level = .level-1)∧(.nodeType = ATTRIBUTE)) ; ,
(20)   ;
(21)  level ← level-1;
(22);//end while
(23), , ;
(24);
(25)return {, , };