|
LocationPath
|
RelativeLocationPath | AbsoluteLocationPath
|
|
AbsoluteLocationPath
|
'/' RelativeLocationPath?
| AbbreviateAbsoluteLocationPath
|
|
RelativeLocationPath
|
Step
| RelativeLocationPath '/' Step
| AbbreviatedRelativeLocationPath
|
|
Step
|
AxisSpecifier NodeTest Predicate
| AbbreviatedStep
|
|
AxisSpecifier
|
AxisName '::'
| AbbreviatedAxisSpecifier
|
|
Axes
|
'ancestor'
| 'ancestor-or-self'
| 'attribute'
| 'child'
| 'descendant'
| 'descendant-or-self'
| 'following'
| 'following-sibling'
| 'namespace'
| 'parent
| 'preceding'
| 'preceding-sibling'
| 'self'
|
|
NodeTest
|
NameTest
| 'NodeType '(' ')'
| 'processing-instruction' '(' Literal ')'
|
|
Predicate
|
'[' PredicateExpr ']'
|
|
PredicateExpr
|
Expr
|
|
AbbreviatedAbsoluteLocationPath
|
'//' RelativeLocationPath
|
|
AbbreviatedRelativeLocationPath
|
RelativeLocationPath
|
|
AbbreviatedStep
|
'.'
| '..'
|
|
AbbreviatedAxisSpecifier
|
'@'?
|
|
Expr
|
OrExpr
|
|
PrimaryExpr
|
VariableReference
| '(' Expr ')'
| Literal
| Number
| FunctionCall
|
|
FunctionCall
|
FunctionName '(' (Argument ( ',' Argument)*)? ')'
|
|
Argument
|
Expr
|
|
UnionExpr
|
PathExpr
| UnionExpr '|' PathExpr
|
|
PathExpr
|
LocationPath
| FilterExpr
| FilterExpr '/' RelativeLocationPath
| FilterExpr '//' RelativeLocationPath
|