.
.
e
E
+
-
"
"
"
"
&
"
'
'
'
'
&
'
xquery
version
at
module
namespace
*
?
+
<?
?>
child
::
descendant
::
parent
::
attribute
::
self
::
descendant-or-self
::
ancestor
::
following-sibling
::
preceding-sibling
::
following
::
preceding
::
namespace
::
ancestor-or-self
::
define
element
define
attribute
define
type
declare
function
declare
ordering
ordered
unordered
external
or
and
div
idiv
mod
*
in
$
lax
strict
preserve
strip
?
declare
construction
satisfies
return
then
else
default
declare
xmlspace
declare
base-uri
preserve
strip
namespace
declare
namespace
to
where
collation
intersect
union
except
as
at
case
instance
of
castable
as
)
as
item
(
)
element
(
attribute
(
schema-element
(
schema-attribute
(
ordered
{
unordered
{
element
{
attribute
{
namespace
{
processing-instruction
{
processing-instruction
{
comment
{
element
{
attribute
{
text
{
declare
default
collation
default
element
declare
default
element
declare
default
function
type
empty
(
)
none
import
schema
import
module
_
.
-
_
*
:
*
*
:
/
//
/
//
=
=
is
!=
<=
<<
>=
>>
eq
ne
gt
ge
lt
le
:=
<
>
-
+
?
|
(
@
[
]
)
some
every
for
let
cast
as
treat
as
update
{
}
;
insert
delete
replace
value
of
with
do
as
last
as
first
into
after
before
update
{
update
for
update
let
update
if
update
insert
update
replace
update
delete
validate
validate
{
validate
document-node
(
document
{
node
(
comment
(
text
(
processing-instruction
(
if
(
typeswitch
(
,
;
%%%
"
"
.
..
order
by
stable
order
by
ascending
descending
empty
greatest
empty
least
declare
variable
id
(
key
(
(
<![CDATA[
]]>
&
&
lt
gt
amp
quot
apos
;
&#
x
;
<
<
>
/>
</
>
=
{
{
{{
}}
""
''
-
'
'
(::
::)
(:
:)
pragma
extension
<!--
-->
:
}
.
.
e
E
+
-
This state is for very general patterns that can be
recognized in any state, but are not recognized as significant
patterns by themselves in the grammar.
No state change.
This state is for patterns that occur at the beginning
of an expression or subexpression.
No state change.
This state is for patterns that are defined for
operators.
No state change.
[To Be Done]
This state occurs inside of a namespace declaration, and
is needed to recognize a NCName that is to be used as the prefix,
as opposed to allowing a QName to occur. (Otherwise, the difference
between NCName and QName are ambiguous.)
No state change.
This state occurs at places where the keyword
"namespace" is expected, which would otherwise be ambiguous
compared to a QName. QNames can not occur in this state.
No state change.
This state occurs at places where the keywords
"preserve" and "strip" is expected to support "declare xmlspace".
QNames can not occur in this state.
This state distinguishes tokens that can occur only
inside the SingleType production.
This state distinguishes tokens that can occur only
inside the ItemType production.
No state change.
This special state is needed to distinguish occurrence indicators that appear in the SequenceType production. For instance, compare "foo instance of baz*" to "baz*foo". In the first case, the "*" is interpreted as an occurrence indicator, and in the second case, it must be interpreted as a multiplication operator. But, when in the OCCURRENCEINDICATOR state, if anything else other than "?", "*", and "+", those symbols must be interpreted in the OPERATOR state. For instance, this would occur with the expression "foo instance of baz and $x", with the operator "and". This backing up of the lexical characters in order to reset the state, is symbolized by the notation "input_stream.backup(1)". NotOccurrenceIndicator is a special symbol for any character that is not an occurrence indicator.
This state differentiates variable names from qualified
names. This allows only the pattern of a QName to be recognized
when otherwise ambiguities could occur.
This state allows attributes in the native XML syntax,
and marks the beginning of an element construction. Element
constructors also push the current state, popping it at the
conclusion of an end tag. In the START_TAG state, the string ">" is
recognized as a token which is associated with the transition to
the original state.
No state change.
This state allows XML-like content, without these
characters being misinterpreted as expressions. The character "{"
marks a transition to the DEFAULT state, i.e. the start of an
embedded expression, and the "}" character pops back to the
ELEMENT_CONTENT state. To allow curly braces to be used as
character content, a double left or right curly brace is
interpreted as a single curly brace character. The string "</"
is interpreted as the beginning of an end tag, which is associated
with a transition to the END_TAG state.
Transition to an Element Value
Template.
No state change.
When the end tag is terminated, the state is popped to
the state that was pushed at the start of the corresponding start
tag.
No state change.
The "<--" token marks the beginning of an XML
Comment, and the "-->" token marks the end. This allows no special
interpretation of other characters in this state.
No state change.
The "(:" token marks the beginning of an expression
Comment, and the ":)" token marks the end. This allows no special
interpretation of other characters in this state.
No state change.
This state occurs for the content of must-understand
extension.
No state change.
The "(::" token marks the beginning of an expression
extension, which must be followed by a keyword.
No state change.
No state change.
This state recognizes extension names and transitions to
the extension content state.
No state change.
In this state, only patterns that are legal in a
processing instruction name are recognized.
No state change.
In this state, only characters are that are legal in
processing instruction content are recognized.
No state change.
In this state, only lexemes that are legal in a CDATA
section are recognized.
No state change.
This state allows content legal for attributes. The
character "{" marks a transition to the DEFAULT state, i.e. the
start of an embedded expression, and the "}" character pops back to
the original state. To allow curly braces to be used as character
content, a double left or right curly brace is interpreted as a
single curly brace character. This state is the same as
APOS_ATTRIBUTE_CONTENT, except that apostrophes are allowed without
escaping, and an unescaped quote marks the end of the
state.
Transition to an Attribute Value
Template.
No state change.
This state is the same as QUOT_ATTRIBUTE_CONTENT, except
that quotes are allowed, and an unescaped apostrophe marks the end
of the state.
Transition to an Attribute Value
Template.
No state change.