|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.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 ExpressionParser
t
- the Tokenizer to be customizedpublic 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 errorprotected void grumble(String message, StructuredQName errorCode, int offset) throws XPathException
grumble
in class ExpressionParser
message
- the error messageoffset
- the location in the source queryerrorCode
- the error code
XPathException
- always thrown: an exception containing the
supplied messageprotected int parseAnnotations() throws XPathException
XPathException
protected void parseRevalidationDeclaration() throws XPathException
XPathException
- if the syntax is incorrect, or is not allowed in this XQuery processorpublic void applyModuleImport(net.sf.saxon.query.QueryParser.Import mImport) throws XPathException
XPathException
protected void parseDecimalFormatDeclaration() throws XPathException
XPathException
- if parsing failsprotected void parseDefaultDecimalFormat() throws XPathException
XPathException
protected void parseContextItemDeclaration() throws XPathException
XPathException
- if parsing failsprotected 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 foundprotected 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 ExpressionParser
XPathException
- if any error is encounteredprotected LetExpression makeLetExpression()
protected void checkForClauseAllowingEmpty(ForClause clause) throws XPathException
clause
- the clause to be checked
XPathException
- if invalidprotected 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 foundprotected 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 foundprotected 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 foundpublic 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 ExpressionParser
XPathException
- if parsing failsprotected Expression parseValidateExpression() throws XPathException
parseValidateExpression
in class ExpressionParser
XPathException
- if parsing failsprotected Expression parseExtensionExpression() throws XPathException
parseExtensionExpression
in class ExpressionParser
XPathException
- if parsing failsprotected Expression parseConstructor() throws XPathException
parseConstructor
in class ExpressionParser
XPathException
- 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 encounteredpublic 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 failsprotected Literal makeStringLiteral(String token) throws XPathException
makeStringLiteral
in class ExpressionParser
token
- the string as written (or as returned by the tokenizer)
XPathException
- if parsing failspublic String URILiteral(String in) throws XPathException
in
- the string as written
XPathException
- if an error is found while unescaping the URIprotected String normalizeEQName(String s) throws XPathException
normalizeEQName
in class ExpressionParser
s
- the QName in expanded-name format
XPathException
protected void lookAhead() throws XPathException
XPathException
- if parsing failsprotected boolean atStartOfRelativePath()
ExpressionParser
atStartOfRelativePath
in class ExpressionParser
protected String getLanguage()
getLanguage
in class ExpressionParser
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |