BEA Systems, Inc.

WebLogic Server 6.1 API Reference

weblogic.apache.xpath.compiler
Class XPathParser

java.lang.Object
  |
  +--weblogic.apache.xpath.compiler.XPathParser

public class XPathParser
extends java.lang.Object

Tokenizes and parses XPath expressions. This should really be named XPathParserImpl, and may be renamed in the future.

This class is based on an implementation from the Apache XML Project. In future releases the XML parser, XSLT processor, and associated classes will likely be updated to be based on a later version of the Apache implementations. Since Apache does not guarantee backwards compatibility between versions of their software, we cannot guarantee backwards compatibility of any of the classes contained in the weblogic.apache package or sub-packages.


Constructor Summary
XPathParser(javax.xml.transform.ErrorListener errorListener, javax.xml.transform.SourceLocator sourceLocator)
          The parser constructor.
 
Method Summary
protected  void AbbreviatedNodeTestStep()
          AbbreviatedNodeTestStep ::= '@'? NodeTest Predicate
protected  int AdditiveExpr(int addPos)
          This has to handle construction of the operations so that they are evaluated in pre-fix order.
protected  void AndExpr()
          AndExpr ::= EqualityExpr | AndExpr 'and' EqualityExpr
protected  void Argument()
          Argument ::= Expr
protected  int AxisName()
          Basis ::= AxisName '::' NodeTest | AbbreviatedBasis
protected  void Basis()
          Basis ::= AxisName '::' NodeTest | AbbreviatedBasis
protected  void BooleanExpr()
          StringExpr ::= Expr
protected  java.lang.String dumpRemainingTokenQueue()
          Dump the remaining token queue.
protected  int EqualityExpr(int addPos)
           
protected  void Expr()
          Expr ::= OrExpr
protected  void FilterExpr()
          FilterExpr ::= PrimaryExpr | FilterExpr Predicate
protected  void FunctionCall()
          FunctionCall ::= FunctionName '(' ( Argument ( ',' Argument)*)? ')'
 javax.xml.transform.ErrorListener getErrorListener()
          Return the current error listener.
protected  void IdKeyPattern()
          IdKeyPattern ::= 'id' '(' Literal ')' | 'key' '(' Literal ',' Literal ')' (Also handle doc())
 void initMatchPattern(Compiler compiler, java.lang.String expression, PrefixResolver namespaceContext)
          Given an string, init an XPath object for pattern matches, in order that a parse doesn't have to be done each time the expression is evaluated.
 void initXPath(Compiler compiler, java.lang.String expression, PrefixResolver namespaceContext)
          Given an string, init an XPath object for selections, in order that a parse doesn't have to be done each time the expression is evaluated.
protected  void Literal()
          The value of the Literal is the sequence of characters inside the " or ' characters>.
protected  void LocationPath()
          LocationPath ::= RelativeLocationPath | AbsoluteLocationPath
protected  void LocationPathPattern()
          LocationPathPattern ::= '/' RelativePathPattern? | IdKeyPattern (('/' | '//') RelativePathPattern)? | '//'? RelativePathPattern
protected  int MultiplicativeExpr(int addPos)
          This has to handle construction of the operations so that they are evaluated in pre-fix order.
protected  void NCName()
          NCName ::= (Letter | '_') (NCNameChar) NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender
protected  void NodeTest(int axesType)
          NodeTest ::= WildcardName | NodeType '(' ')' | 'processing-instruction' '(' Literal ')'
protected  void Number()
          Number ::= [0-9]+('.'[0-9]+)? | '.'[0-9]+
protected  void NumberExpr()
          NumberExpr ::= Expr
protected  void OrExpr()
          OrExpr ::= AndExpr | OrExpr 'or' AndExpr
protected  void PathExpr()
          PathExpr ::= LocationPath | FilterExpr | FilterExpr '/' RelativeLocationPath | FilterExpr '//' RelativeLocationPath
protected  void Pattern()
          Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern
protected  void Predicate()
          Predicate ::= '[' PredicateExpr ']'
protected  void PredicateExpr()
          PredicateExpr ::= Expr
protected  void PrimaryExpr()
          PrimaryExpr ::= VariableReference | '(' Expr ')' | Literal | Number | FunctionCall
protected  void QName()
          QName ::= (Prefix ':')? LocalPart Prefix ::= NCName LocalPart ::= NCName
protected  int RelationalExpr(int addPos)
          .
protected  void RelativeLocationPath()
          RelativeLocationPath ::= Step | RelativeLocationPath '/' Step | AbbreviatedRelativeLocationPath
protected  void RelativePathPattern()
          RelativePathPattern ::= StepPattern | RelativePathPattern '/' StepPattern | RelativePathPattern '//' StepPattern
 void setErrorHandler(javax.xml.transform.ErrorListener handler)
          Allow an application to register an error event handler, where syntax errors will be sent.
protected  void Step()
          Step ::= Basis Predicate | AbbreviatedStep
protected  void StepPattern()
          StepPattern ::= AbbreviatedNodeTestStep
protected  void StringExpr()
          StringExpr ::= Expr
protected  void UnaryExpr()
          UnaryExpr ::= UnionExpr | '-' UnaryExpr
protected  void UnionExpr()
          The context of the right hand side expressions is the context of the left hand side expression.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XPathParser

public XPathParser(javax.xml.transform.ErrorListener errorListener,
                   javax.xml.transform.SourceLocator sourceLocator)
The parser constructor.
Method Detail

initXPath

public void initXPath(Compiler compiler,
                      java.lang.String expression,
                      PrefixResolver namespaceContext)
               throws javax.xml.transform.TransformerException
Given an string, init an XPath object for selections, in order that a parse doesn't have to be done each time the expression is evaluated.

Parameters:
compiler - The compiler object.
expression - A string conforming to the XPath grammar.
namespaceContext - An object that is able to resolve prefixes in the XPath to namespaces.
Throws:
javax.xml.transform.TransformerException -  

initMatchPattern

public void initMatchPattern(Compiler compiler,
                             java.lang.String expression,
                             PrefixResolver namespaceContext)
                      throws javax.xml.transform.TransformerException
Given an string, init an XPath object for pattern matches, in order that a parse doesn't have to be done each time the expression is evaluated.

Parameters:
compiler - The XPath object to be initialized.
expression - A String representing the XPath.
namespaceContext - An object that is able to resolve prefixes in the XPath to namespaces.
Throws:
javax.xml.transform.TransformerException -  

setErrorHandler

public void setErrorHandler(javax.xml.transform.ErrorListener handler)
Allow an application to register an error event handler, where syntax errors will be sent. If the error listener is not set, syntax errors will be sent to System.err.

Parameters:
handler - Reference to error listener where syntax errors will be sent.

getErrorListener

public javax.xml.transform.ErrorListener getErrorListener()
Return the current error listener.

Returns:
The error listener, which should not normally be null, but may be.

dumpRemainingTokenQueue

protected java.lang.String dumpRemainingTokenQueue()
Dump the remaining token queue. Thanks to Craig for this.

Returns:
A dump of the remaining token queue, which may be appended to an error message.

Expr

protected void Expr()
             throws javax.xml.transform.TransformerException
Expr ::= OrExpr

Throws:
javax.xml.transform.TransformerException -  

OrExpr

protected void OrExpr()
               throws javax.xml.transform.TransformerException
OrExpr ::= AndExpr | OrExpr 'or' AndExpr

Throws:
javax.xml.transform.TransformerException -  

AndExpr

protected void AndExpr()
                throws javax.xml.transform.TransformerException
AndExpr ::= EqualityExpr | AndExpr 'and' EqualityExpr

Throws:
javax.xml.transform.TransformerException -  

EqualityExpr

protected int EqualityExpr(int addPos)
                    throws javax.xml.transform.TransformerException

Parameters:
addPos - Position where expression is to be added, or -1 for append.
Returns:
the position at the end of the equality expression.
Throws:
javax.xml.transform.TransformerException -  

RelationalExpr

protected int RelationalExpr(int addPos)
                      throws javax.xml.transform.TransformerException
.

Parameters:
addPos - Position where expression is to be added, or -1 for append.
Returns:
the position at the end of the relational expression.
Throws:
javax.xml.transform.TransformerException -  

AdditiveExpr

protected int AdditiveExpr(int addPos)
                    throws javax.xml.transform.TransformerException
This has to handle construction of the operations so that they are evaluated in pre-fix order. So, for 9+7-6, instead of |+|9|-|7|6|, this needs to be evaluated as |-|+|9|7|6|. AdditiveExpr ::= MultiplicativeExpr | AdditiveExpr '+' MultiplicativeExpr | AdditiveExpr '-' MultiplicativeExpr

Parameters:
addPos - Position where expression is to be added, or -1 for append.
Returns:
the position at the end of the equality expression.
Throws:
javax.xml.transform.TransformerException -  

MultiplicativeExpr

protected int MultiplicativeExpr(int addPos)
                          throws javax.xml.transform.TransformerException
This has to handle construction of the operations so that they are evaluated in pre-fix order. So, for 9+7-6, instead of |+|9|-|7|6|, this needs to be evaluated as |-|+|9|7|6|. MultiplicativeExpr ::= UnaryExpr | MultiplicativeExpr MultiplyOperator UnaryExpr | MultiplicativeExpr 'div' UnaryExpr | MultiplicativeExpr 'mod' UnaryExpr | MultiplicativeExpr 'quo' UnaryExpr

Parameters:
addPos - Position where expression is to be added, or -1 for append.
Returns:
the position at the end of the equality expression.
Throws:
javax.xml.transform.TransformerException -  

UnaryExpr

protected void UnaryExpr()
                  throws javax.xml.transform.TransformerException
UnaryExpr ::= UnionExpr | '-' UnaryExpr

Throws:
javax.xml.transform.TransformerException -  

StringExpr

protected void StringExpr()
                   throws javax.xml.transform.TransformerException
StringExpr ::= Expr

Throws:
javax.xml.transform.TransformerException -  

BooleanExpr

protected void BooleanExpr()
                    throws javax.xml.transform.TransformerException
StringExpr ::= Expr

Throws:
javax.xml.transform.TransformerException -  

NumberExpr

protected void NumberExpr()
                   throws javax.xml.transform.TransformerException
NumberExpr ::= Expr

Throws:
javax.xml.transform.TransformerException -  

UnionExpr

protected void UnionExpr()
                  throws javax.xml.transform.TransformerException
The context of the right hand side expressions is the context of the left hand side expression. The results of the right hand side expressions are node sets. The result of the left hand side UnionExpr is the union of the results of the right hand side expressions. UnionExpr ::= PathExpr | UnionExpr '|' PathExpr

Throws:
javax.xml.transform.TransformerException -  

PathExpr

protected void PathExpr()
                 throws javax.xml.transform.TransformerException
PathExpr ::= LocationPath | FilterExpr | FilterExpr '/' RelativeLocationPath | FilterExpr '//' RelativeLocationPath

Throws:
XSLProcessorException - thrown if the active ProblemListener and XPathContext decide the error condition is severe enough to halt processing.
javax.xml.transform.TransformerException -  

FilterExpr

protected void FilterExpr()
                   throws javax.xml.transform.TransformerException
FilterExpr ::= PrimaryExpr | FilterExpr Predicate

Throws:
XSLProcessorException - thrown if the active ProblemListener and XPathContext decide the error condition is severe enough to halt processing.
javax.xml.transform.TransformerException -  

PrimaryExpr

protected void PrimaryExpr()
                    throws javax.xml.transform.TransformerException
PrimaryExpr ::= VariableReference | '(' Expr ')' | Literal | Number | FunctionCall

Throws:
javax.xml.transform.TransformerException -  

Argument

protected void Argument()
                 throws javax.xml.transform.TransformerException
Argument ::= Expr

Throws:
javax.xml.transform.TransformerException -  

FunctionCall

protected void FunctionCall()
                     throws javax.xml.transform.TransformerException
FunctionCall ::= FunctionName '(' ( Argument ( ',' Argument)*)? ')'

Throws:
javax.xml.transform.TransformerException -  

LocationPath

protected void LocationPath()
                     throws javax.xml.transform.TransformerException
LocationPath ::= RelativeLocationPath | AbsoluteLocationPath

Throws:
javax.xml.transform.TransformerException -  

RelativeLocationPath

protected void RelativeLocationPath()
                             throws javax.xml.transform.TransformerException
RelativeLocationPath ::= Step | RelativeLocationPath '/' Step | AbbreviatedRelativeLocationPath

Throws:
javax.xml.transform.TransformerException -  

Step

protected void Step()
             throws javax.xml.transform.TransformerException
Step ::= Basis Predicate | AbbreviatedStep

Throws:
javax.xml.transform.TransformerException -  

Basis

protected void Basis()
              throws javax.xml.transform.TransformerException
Basis ::= AxisName '::' NodeTest | AbbreviatedBasis

Throws:
javax.xml.transform.TransformerException -  

AxisName

protected int AxisName()
                throws javax.xml.transform.TransformerException
Basis ::= AxisName '::' NodeTest | AbbreviatedBasis

Returns:
FROM_XXX axes type, found in Keywords.
Throws:
javax.xml.transform.TransformerException -  

NodeTest

protected void NodeTest(int axesType)
                 throws javax.xml.transform.TransformerException
NodeTest ::= WildcardName | NodeType '(' ')' | 'processing-instruction' '(' Literal ')'

Parameters:
axesType - FROM_XXX axes type, found in Keywords.
Throws:
javax.xml.transform.TransformerException -  

Predicate

protected void Predicate()
                  throws javax.xml.transform.TransformerException
Predicate ::= '[' PredicateExpr ']'

Throws:
javax.xml.transform.TransformerException -  

PredicateExpr

protected void PredicateExpr()
                      throws javax.xml.transform.TransformerException
PredicateExpr ::= Expr

Throws:
javax.xml.transform.TransformerException -  

QName

protected void QName()
              throws javax.xml.transform.TransformerException
QName ::= (Prefix ':')? LocalPart Prefix ::= NCName LocalPart ::= NCName

Throws:
javax.xml.transform.TransformerException -  

NCName

protected void NCName()
NCName ::= (Letter | '_') (NCNameChar) NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender

Literal

protected void Literal()
                throws javax.xml.transform.TransformerException
The value of the Literal is the sequence of characters inside the " or ' characters>. Literal ::= '"' [^"]* '"' | "'" [^']* "'"

Throws:
javax.xml.transform.TransformerException -  

Number

protected void Number()
               throws javax.xml.transform.TransformerException
Number ::= [0-9]+('.'[0-9]+)? | '.'[0-9]+

Throws:
javax.xml.transform.TransformerException -  

Pattern

protected void Pattern()
                throws javax.xml.transform.TransformerException
Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern

Throws:
javax.xml.transform.TransformerException -  

LocationPathPattern

protected void LocationPathPattern()
                            throws javax.xml.transform.TransformerException
LocationPathPattern ::= '/' RelativePathPattern? | IdKeyPattern (('/' | '//') RelativePathPattern)? | '//'? RelativePathPattern

Throws:
javax.xml.transform.TransformerException -  

IdKeyPattern

protected void IdKeyPattern()
                     throws javax.xml.transform.TransformerException
IdKeyPattern ::= 'id' '(' Literal ')' | 'key' '(' Literal ',' Literal ')' (Also handle doc())

Throws:
javax.xml.transform.TransformerException -  

RelativePathPattern

protected void RelativePathPattern()
                            throws javax.xml.transform.TransformerException
RelativePathPattern ::= StepPattern | RelativePathPattern '/' StepPattern | RelativePathPattern '//' StepPattern

Throws:
javax.xml.transform.TransformerException -  

StepPattern

protected void StepPattern()
                    throws javax.xml.transform.TransformerException
StepPattern ::= AbbreviatedNodeTestStep

Throws:
javax.xml.transform.TransformerException -  

AbbreviatedNodeTestStep

protected void AbbreviatedNodeTestStep()
                                throws javax.xml.transform.TransformerException
AbbreviatedNodeTestStep ::= '@'? NodeTest Predicate

Throws:
javax.xml.transform.TransformerException -  

Documentation is available at
http://download.oracle.com/docs/cd/E13222_01/wls/docs61

WebLogic classes and methods that do not appear in this reference are not public and are not supported.