|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnet.sf.saxon.expr.parser.ExpressionParser
net.sf.saxon.query.QueryParser
public class QueryParser
This class defines extensions to the XPath parser to handle the additional syntax supported in XQuery
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class net.sf.saxon.expr.parser.ExpressionParser |
|---|
ExpressionParser.TemporaryContainer |
| Field Summary | |
|---|---|
protected Executable |
executable
|
protected static int |
FUNCTION_IS_NONDETERMINISTIC
|
protected static int |
FUNCTION_IS_PRIVATE
|
protected static int |
FUNCTION_IS_UPDATING
|
Set |
importedModules
|
protected String |
queryVersion
|
static String |
XQUERY10
|
static String |
XQUERY30
|
| Fields inherited from class net.sf.saxon.expr.parser.ExpressionParser |
|---|
allowXPath30Syntax, defaultContainer, env, language, languageVersion, nameChecker, rangeVariables, scanOnly, SEQUENCE_TYPE, t, XPATH, XQUERY, XSLT_PATTERN |
| Constructor Summary | |
|---|---|
QueryParser()
Constructor for internal use: this class should be instantiated via the QueryModule |
|
| Method Summary | |
|---|---|
void |
applyModuleImport(net.sf.saxon.query.QueryParser.Import mImport)
|
protected boolean |
atStartOfRelativePath()
Test whether the current token is one that can start a RelativePathExpression |
protected void |
checkForClauseAllowingEmpty(ForClause clause)
Check a ForClause for an "outer for" |
protected void |
customizeTokenizer(Tokenizer t)
Callback to tailor the tokenizer |
Executable |
getExecutable()
Get the executable containing this expression. |
protected String |
getLanguage()
Get the current language (XPath or XQuery) |
int |
getPermittedFunctions()
Get the permitted set of standard functions in this environment |
protected void |
grumble(String message,
StructuredQName errorCode,
int offset)
Report a static error |
protected void |
lookAhead()
Lookahead one token, catching any exception thrown by the tokenizer. |
protected LetExpression |
makeLetExpression()
Make a LetExpression. |
protected void |
makeSimpleContent(Expression content,
SimpleNodeConstructor inst,
int offset)
Make the instructions for the children of a node with simple content (attribute, text, PI, etc) |
static Expression |
makeStringJoin(Expression exp,
StaticContext env)
Make a string-join expression that concatenates the string-values of items in a sequence with intervening spaces. |
protected Literal |
makeStringLiteral(String token)
Method to make a string literal from a token identified as a string literal. |
XQueryExpression |
makeXQueryExpression(String query,
QueryModule mainModule,
Configuration config)
Create an XQueryExpression |
QueryParser |
newParser()
Create a new parser of the same kind |
protected String |
normalizeEQName(String s)
Convert a QName in expanded-name format "uri":local into Clark format |
protected int |
parseAnnotations()
|
protected Expression |
parseConstructor()
Parse a node constructor. |
protected void |
parseContextItemDeclaration()
Parse a context item declaration. |
protected void |
parseCountClause(List clauseList)
Parse a count clause. |
protected void |
parseDecimalFormatDeclaration()
Parse the "declare decimal-format" declaration. |
protected void |
parseDefaultDecimalFormat()
|
protected Expression |
parseExtensionExpression()
Parse an Extension Expression. |
protected Expression |
parseFLWORExpression()
Parse a FLWOR expression. |
protected void |
parseFunctionDeclaration(int functionOptions)
Parse a function declaration. |
protected void |
parseGroupByClause(List<Clause> clauseList)
Parse a Group By clause. |
void |
parseLibraryModule(String queryString,
QueryModule env)
Parse a library module. |
protected Expression |
parseNamedNamespaceConstructor(int offset)
|
protected Expression |
parseNamespaceConstructor(int offset)
|
protected void |
parseRevalidationDeclaration()
Parse the "declare revalidation" declaration. |
protected Expression |
parseTypeswitchExpression()
Parse a Typeswitch Expression. |
protected void |
parseUpdatingFunctionDeclaration()
Parse an updating function declaration (allowed in XQuery Update only) |
protected Expression |
parseValidateExpression()
Parse a Validate Expression. |
protected void |
parseWindowClause(List<Clause> clauseList)
Parse a tumbling or sliding window clause. |
protected String |
readCollationName()
|
Expression |
setDefaultValue(String exp)
Parse the expression (inside a string literal) used to define default values for external variables. |
void |
setDisableCycleChecks(boolean disable)
Disable checks for certain kinds of cycle. |
void |
setExecutable(Executable exec)
Set the executable used for this query expression |
static Expression |
stringify(Expression exp,
boolean noNodeIfEmpty,
Configuration config)
Convert an expression so it generates a space-separated sequence of strings |
String |
URILiteral(String in)
Handle a URI literal. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static String XQUERY10
public static String XQUERY30
protected String queryVersion
protected Executable executable
public Set importedModules
protected static final int FUNCTION_IS_UPDATING
protected static final int FUNCTION_IS_PRIVATE
protected static final int FUNCTION_IS_NONDETERMINISTIC
| Constructor Detail |
|---|
public QueryParser()
| Method Detail |
|---|
public QueryParser newParser()
public XQueryExpression makeXQueryExpression(String query,
QueryModule mainModule,
Configuration config)
throws XPathException
query - the source text of the querymainModule - the static context of the queryconfig - the Saxon configuration
XPathException - if the expression contains static errorspublic int getPermittedFunctions()
public Executable getExecutable()
public void setExecutable(Executable exec)
exec - the executablepublic void setDisableCycleChecks(boolean disable)
declare option saxon:allow-cycles "true"
disable - true if checks for import cycles are to be suppressed, that is,
if cycles should be allowedprotected void customizeTokenizer(Tokenizer t)
customizeTokenizer in class ExpressionParsert - the Tokenizer to be customized
public final void parseLibraryModule(String queryString,
QueryModule env)
throws XPathException
queryString - The text of the library module.env - The static context. The result of parsing
a library module is that the static context is populated with a set of function
declarations and variable declarations. Each library module must have its own
static context objext.
XPathException - if the expression contains a syntax error
protected void grumble(String message,
StructuredQName errorCode,
int offset)
throws XPathException
grumble in class ExpressionParsermessage - the error messageoffset - the location in the source queryerrorCode - the error code
XPathException - always thrown: an exception containing the
supplied message
protected int parseAnnotations()
throws XPathException
XPathException
protected void parseRevalidationDeclaration()
throws XPathException
XPathException - if the syntax is incorrect, or is not allowed in this XQuery processor
public void applyModuleImport(net.sf.saxon.query.QueryParser.Import mImport)
throws XPathException
XPathException
protected void parseDecimalFormatDeclaration()
throws XPathException
XPathException - if parsing fails
protected void parseDefaultDecimalFormat()
throws XPathException
XPathException
protected void parseContextItemDeclaration()
throws XPathException
XPathException - if parsing fails
protected void parseFunctionDeclaration(int functionOptions)
throws XPathException
Syntax:
<"declare" "function"> QName "(" ParamList? ")" ("as" SequenceType)?
(EnclosedExpr | "external")
On entry, the "declare function" has already been recognized
functionOptions - function annotations such as updating, deterministic etc
XPathException - if a syntax error is found
protected void parseUpdatingFunctionDeclaration()
throws XPathException
XPathException - if parsing fails or if updating functions are not allowedpublic Expression setDefaultValue(String exp)
exp - holds the expression used to define a default value
protected Expression parseFLWORExpression()
throws XPathException
parseFLWORExpression in class ExpressionParserXPathException - if any error is encounteredprotected LetExpression makeLetExpression()
protected void checkForClauseAllowingEmpty(ForClause clause)
throws XPathException
clause - the clause to be checked
XPathException - if invalid
protected void parseCountClause(List clauseList)
throws XPathException
clauseList - the list of clauses for the expression, to which this
clause will be added
XPathException - if a static error is found
protected void parseGroupByClause(List<Clause> clauseList)
throws XPathException
clauseList - the list of clauses for the expression, to which this
clause will be added
XPathException - if a static error is found
protected void parseWindowClause(List<Clause> clauseList)
throws XPathException
clauseList - the list of clauses for the expression, to which this
clause will be added
XPathException - if a static error is found
public static Expression makeStringJoin(Expression exp,
StaticContext env)
exp - the base expression, evaluating to a sequenceenv - the static context
protected String readCollationName()
throws XPathException
XPathException
protected Expression parseTypeswitchExpression()
throws XPathException
parseTypeswitchExpression in class ExpressionParserXPathException - if parsing fails
protected Expression parseValidateExpression()
throws XPathException
parseValidateExpression in class ExpressionParserXPathException - if parsing fails
protected Expression parseExtensionExpression()
throws XPathException
parseExtensionExpression in class ExpressionParserXPathException - if parsing fails
protected Expression parseConstructor()
throws XPathException
parseConstructor in class ExpressionParserXPathException - in the event of a syntax error.
protected Expression parseNamespaceConstructor(int offset)
throws XPathException
XPathException
protected Expression parseNamedNamespaceConstructor(int offset)
throws XPathException
XPathException
protected void makeSimpleContent(Expression content,
SimpleNodeConstructor inst,
int offset)
throws XPathException
content - the expression making up the simple contentinst - the skeletal instruction for creating the nodeoffset - the character position of this construct within the source query
XPathException - if a static error is encountered
public static Expression stringify(Expression exp,
boolean noNodeIfEmpty,
Configuration config)
throws XPathException
exp - the expression that calculates the contentnoNodeIfEmpty - if true, no node is produced when the value of the content
expression is an empty sequence. If false, the effect of supplying an empty sequence
is that a node is created whose string-value is a zero-length string. Set to true for
text node constructors, false for other kinds of node.config - the Saxon configuration
XPathException - if parsing fails
protected Literal makeStringLiteral(String token)
throws XPathException
makeStringLiteral in class ExpressionParsertoken - the string as written (or as returned by the tokenizer)
XPathException - if parsing fails
public String URILiteral(String in)
throws XPathException
in - the string as written
XPathException - if an error is found while unescaping the URI
protected String normalizeEQName(String s)
throws XPathException
normalizeEQName in class ExpressionParsers - the QName in expanded-name format
XPathException
protected void lookAhead()
throws XPathException
XPathException - if parsing failsprotected boolean atStartOfRelativePath()
ExpressionParser
atStartOfRelativePath in class ExpressionParserprotected String getLanguage()
getLanguage in class ExpressionParser
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||