My favorites | Sign in
Project Logo
                
Search
for
Updated Mar 22, 2009 by nirav.thaker
Labels: Phase-Requirements, Featured
OPathGrammar  

Following is OPath Grammar

LP 			::= RelativeLP	| AbsoluteLP

AbsoluteLP 		::= '/' RelativeLP ? 
			     | '//' RelativeLP

RelativeLP 		::= Step RLPopt

RLPopt			::= '/' Step RelativeLP
			    | '//' Step RelativeLP

Step			::= QName* Predicate?
			    | '*'
			    | RegExQName*
			    | QName
			    | .
			    | ..

RegExQName		::= @QName

Predicate		::= '[' Expr ']'

Expr			::= EqualsExpr ExprOpt
 					
ExprOpt			::= '==' EqualsExpr ExprOpt
			    | '!=' EqualsExpr ExprOpt
							
EqualsExpr		::= RelExpr EqExprOpt

EqExprOpt		::= '<' RelExpr EqualsExpr 
			    | '>' RelExpr EqualsExpr

RelExpr			::= <digit> | SLiteral | Method Invocation

Method Invocation	::= '#' QName

SLiteral		::= ' QName ' | ' RegExQName '
 							
QName			::= [a-zA-Z0-9_[]{}\/'";:$&~`%]+
 							

Sign in to add a comment
Hosted by Google Code