. . 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.