Research Article
Pipelined XPath Query Based on Cost Optimization
| | 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 {, , }; |
|