package org.basex.query; import static org.basex.util.Token.*; import org.basex.core.Text; import org.basex.util.hash.TokenSet; /** * This class assembles text string and tokens required by the XQuery processor * implementation. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public interface QueryText { // FULL-TEXT TOKENS ========================================================= /** Parser token. */ String AFTER = "after"; /** Parser token. */ String ALL = "all"; /** Parser token. */ String AND = "and"; /** Parser token. */ String ANY = "any"; /** Parser token. */ String AS = "as"; /** Parser token. */ String ASCENDING = "ascending"; /** Parser token. */ String AT = "at"; /** Parser token. */ String ATTRIBUTE = "attribute"; /** Parser token. */ String BASEURI = "base-uri"; /** Parser token. */ String BEFORE = "before"; /** Parser token. */ String BOUNDARY = "boundary-space"; /** Parser token. */ String BY = "by"; /** Parser token. */ String CASE = "case"; /** Parser token. */ String CAST = "cast"; /** Parser token. */ String CASTABLE = "castable"; /** Parser token. */ String CATCH = "catch"; /** Parser token. */ String COLLATION = "collation"; /** Parser token. */ String COMMENT = "comment"; /** Parser token. */ String CONSTRUCTION = "construction"; /** Parser token. */ String CONTAINS = "contains"; /** Parser token. */ String CONTENT = "content"; /** Parser token. */ String CONTEXT = "context"; /** Parser token. */ String COPY = "copy"; /** Parser token. */ String COPYNS = "copy-namespaces"; /** Parser token. */ String DECFORMAT = "decimal-format"; /** Parser token. */ String DECLARE = "declare"; /** Parser token. */ String DEFAULT = "default"; /** Parser token. */ String DELETE = "delete"; /** Parser token. */ String DESCENDING = "descending"; /** Parser token. */ String DIACRITICS = "diacritics"; /** Parser token. */ String DIFFERENT = "different"; /** Parser token. */ String DISTANCE = "distance"; /** Parser token. */ String DIV = "div"; /** Parser token. */ String DOCUMENT = "document"; /** Parser token. */ String ELEMENT = "element"; /** Parser token. */ String ELSE = "else"; /** Parser token. */ String EMPTYORD = "empty"; /** Parser token. */ String ENCODING = "encoding"; /** Parser token. */ String END = "end"; /** Parser token. */ String ENTIRE = "entire"; /** Parser token. */ String EVERY = "every"; /** Parser token. */ String EXACTLY = "exactly"; /** Parser token. */ String EXCEPT = "except"; /** Parser token. */ String EXTERNAL = "external"; /** Parser token. */ String FIRST = "first"; /** Parser token. */ String FOR = "for"; /** Parser token. */ String FROM = "from"; /** Parser token. */ String FTOPTION = "ft-option"; /** Parser token. */ String FTAND = "ftand"; /** Parser token. */ String FTNOT = "ftnot"; /** Parser token. */ String FTOR = "ftor"; /** Parser token. */ String FUZZY = "fuzzy"; /** Parser token. */ String FUNCTION = "function"; /** Parser token. */ String GREATEST = "greatest"; /** Parser token. */ String IDIV = "idiv"; /** Parser token. */ String IF = "if"; /** Parser token. */ String IMPORT = "import"; /** Parser token. */ String IN = "in"; /** Parser token. */ String INHERIT = "inherit"; /** Parser token. */ String INSENSITIVE = "insensitive"; /** Parser token. */ String INSERT = "insert"; /** Parser token. */ String INSTANCE = "instance"; /** Parser token. */ String INTERSECT = "intersect"; /** Parser token. */ String INTO = "into"; /** Parser token. */ String ITEMM = "item"; /** Parser token. */ String JSONSTR = "json"; /** Parser token. */ String LANGUAGE = "language"; /** Parser token. */ String LAST = "last"; /** Parser token. */ String LAX = "lax"; /** Parser token. */ String LEAST = "least"; /** Parser token. */ String LET = "let"; /** Parser token. */ String LEVELS = "levels"; /** Parser token. */ String LOWERCASE = "lowercase"; /** Parser token. */ String MAPSTR = "map"; /** Parser token. */ String MOD = "mod"; /** Parser token. */ String MODIFY = "modify"; /** Parser token. */ String MODULE = "module"; /** Parser token. */ String MOST = "most"; /** Parser token. */ String NSPACE = "namespace"; /** Parser token. */ String NOINHERIT = "no-inherit"; /** Parser token. */ String NOPRESERVE = "no-preserve"; /** Parser token. */ String NODE = "node"; /** Parser token. */ String NODES = "nodes"; /** Parser token. */ String NO = "no"; /** Parser token. */ String NOT = "not"; /** Parser token. */ String OCCURS = "occurs"; /** Parser token. */ String OF = "of"; /** Parser token. */ String OPTION = "option"; /** Parser token. */ String OR = "or"; /** Parser token. */ String ORDER = "order"; /** Parser token. */ String ORDERED = "ordered"; /** Parser token. */ String ORDERING = "ordering"; /** Parser token. */ String PARAGRAPH = "paragraph"; /** Parser token. */ String PARAGRAPHS = "paragraphs"; /** Parser token. */ String PHRASE = "phrase"; /** Parser token. */ String PRESERVE = "preserve"; /** Parser token. */ String PI = "processing-instruction"; /** Parser token. */ String RELATIONSHIP = "relationship"; /** Parser token. */ String RENAME = "rename"; /** Parser token. */ String REPLACE = "replace"; /** Parser token. */ String RETURN = "return"; /** Parser token. */ String REVALIDATION = "revalidation"; /** Parser token. */ String SAME = "same"; /** Parser token. */ String SATISFIES = "satisfies"; /** Parser token. */ String SCHEMA = "schema"; /** Parser token. */ String SCHEMAATTRIBUTE = "schema-attribute"; /** Parser token. */ String SCHEMAELEMENT = "schema-element"; /** Parser token. */ String SCORE = "score"; /** Parser token. */ String SENSITIVE = "sensitive"; /** Parser token. */ String SENTENCE = "sentence"; /** Parser token. */ String SENTENCES = "sentences"; /** Parser token. */ String SKIP = "skip"; /** Parser token. */ String SOME = "some"; /** Parser token. */ String STABLE = "stable"; /** Parser token. */ String START = "start"; /** Parser token. */ String STEMMING = "stemming"; /** Parser token. */ String STOP = "stop"; /** Parser token. */ String STRICT = "strict"; /** Parser token. */ String STRIP = "strip"; /** Parser token. */ String SWITCH = "switch"; /** Parser token. */ String THEN = "then"; /** Parser token. */ String TIMES = "times"; /** Parser token. */ String TEXT = "text"; /** Parser token. */ String THESAURUS = "thesaurus"; /** Parser token. */ String TO = "to"; /** Parser token. */ String TREAT = "treat"; /** Parser token. */ String TRY = "try"; /** Parser token. */ String TYPE = "type"; /** Parser token. */ String TYPESWITCH = "typeswitch"; /** Parser token. */ String UNION = "union"; /** Parser token. */ String UNORDERED = "unordered"; /** Parser token. */ String UPDATING = "updating"; /** Parser token. */ String UPPERCASE = "uppercase"; /** Parser token. */ String USING = "using"; /** Parser token. */ String VALIDATE = "validate"; /** Parser token. */ String VALUEE = "value"; /** Parser token. */ String VARIABLE = "variable"; /** Parser token. */ String VERSION = "version"; /** Parser token. */ String WEIGHT = "weight"; /** Parser token. */ String WHERE = "where"; /** Parser token. */ String GROUP = "group"; /** Parser token. */ String WILDCARDS = "wildcards"; /** Parser token. */ String WINDOW = "window"; /** Parser token. */ String WITH = "with"; /** Parser token. */ String WITHOUT = "without"; /** Parser token. */ String WORD = "word"; /** Parser token. */ String WORDS = "words"; /** Parser token. */ String XQUERY = "xquery"; /** Parser token. */ String DF_DEC = "decimal-separator"; /** Parser token. */ String DF_DIG = "digit"; /** Parser token. */ String DF_GRP = "grouping-separator"; /** Parser token. */ String DF_INF = "infinity"; /** Parser token. */ String DF_MIN = "minus-sign"; /** Parser token. */ String DF_NAN = "NaN"; /** Parser token. */ String DF_PAT = "pattern-separator"; /** Parser token. */ String DF_PC = "percent"; /** Parser token. */ String DF_PM = "per-mille"; /** Parser token. */ String DF_ZG = "zero-digit"; // ERROR INFORMATION ======================================================= /** Skip flag for the syntax highlighter (don't remove!). */ String IGNORE = null; /** Decimal declarations. */ String[] DECFORMATS = { DF_DEC, DF_DIG, DF_GRP, DF_INF, DF_MIN, DF_NAN, DF_PAT, DF_PC, DF_PM, DF_ZG }; /** Parser token. */ String CONCAT = "||"; /** Parser token. */ String ASSIGN = ":="; /** Parser token. */ String BR1 = "["; /** Parser token. */ String BR2 = "]"; /** Parser token. */ String BRACE1 = "{"; /** Parser token. */ String BRACE2 = "}"; /** Parser token. */ String CDATA = "<![CDATA["; /** Parser token. */ String COLS = "::"; /** Parser token. */ String COMMA = ","; /** Parser token. */ String DOLLAR = "$"; /** Parser token. */ String DOT2 = ".."; /** Parser token. */ String IS = "="; /** Parser token. */ String XQ10 = "1.0"; /** Parser token. */ String XQ11 = "1.1"; /** Parser token. */ String XQ30 = "3.0"; /** Parser token. */ String PAR1 = "("; /** Parser token. */ String PAR2 = ")"; /** Parser token. */ String PIPE = "|"; /** Parser token. */ String PRAGMA = "(#"; /** Parser token. */ String PRAGMA2 = "#)"; /** Parser Token. */ String PLHOLDER = "?"; /** Parser Token. */ String ASTERISK = "*"; // PREFIXES ================================================================= /** Base token. */ byte[] BASE = token("base"); /** ID token. */ byte[] ID = token("id"); /** IDRef token. */ byte[] IDREF = token("idref"); /** Error token. */ byte[] ECODE = token("code"); /** Error token. */ byte[] EVALUE = token("value"); /** Error token. */ byte[] EDESC = token("description"); /** Error token. */ byte[] EMODULE = token("module"); /** Error token. */ byte[] ELINENUM = token("line-number"); /** Error token. */ byte[] ECOLNUM = token("column-number"); /** Error token. */ byte[] EADD = token("additional"); /** Error prefix. */ byte[] ERR = token("err"); /** FN token. */ byte[] FN = token("fn"); /** Math token. */ byte[] MATH = token("math"); /** Option token. */ byte[] OPT = token("opt"); /** Output token. */ byte[] OUTPUT = token("output"); /** BaseX token. */ byte[] BASEX = token("basex"); /** DB token. */ byte[] DB = token("db"); /** Index token. */ byte[] INDEX = token("index"); /** FT token. */ byte[] FT = token("ft"); /** XS token. */ byte[] XS = token("xs"); /** XS token. */ byte[] XSI = token("xsi"); /** XS token. */ byte[] LOCAL = token("local"); /** File module token. */ byte[] FILE = token("file"); /** HTTP Client token. */ byte[] HTTP = token("http"); /** Util token. */ byte[] UTIL = token("util"); /** XSLT token. */ byte[] XSLT = token("xslt"); /** ZIP token. */ byte[] ZIP = token("zip"); /** HOF token. */ byte[] HOF = token("hof"); /** JSON token. */ byte[] JSON = token(JSONSTR); /** MAP token. */ byte[] MAP = token(MAPSTR); /** Package token. */ byte[] PKG = token("pkg"); /** SQL token. */ byte[] SQL = token("sql"); /** Crypto token. */ byte[] CRYPTO = token("crytpo"); /** Repo token. */ byte[] REPO = token("repo"); /** Language attribute. */ byte[] LANG = token("xml:lang"); // URIS ===================================================================== /** W3 URI. */ String W3URI = "http://www.w3.org"; /** XML URI. */ byte[] XMLURI = token(W3URI + "/XML/1998/namespace"); /** Functions URI. */ byte[] FNURI = token(W3URI + "/2005/xpath-functions"); /** Math URI. */ byte[] MATHURI = token(W3URI + "/2005/xpath-functions/math"); /** XMLNS URI. */ byte[] XMLNSURI = token(W3URI + "/2000/xmlns/"); /** Local Functions URI. */ byte[] LOCALURI = token(W3URI + "/2005/xquery-local-functions"); /** XMLSchema URI. */ byte[] XSURI = token(W3URI + "/2001/XMLSchema"); /** XMLSchema Instance URI. */ byte[] XSIURI = token(W3URI + "/2001/XMLSchema-instance"); /** Output URI. */ byte[] OUTPUTURI = token(W3URI + "/2010/xslt-xquery-serialization"); /** Error URI. */ byte[] ERRORURI = token(W3URI + "/2005/xqt-errors"); /** Map URI. */ byte[] MAPURI = token(W3URI + "/2005/xpath-functions/map"); /** Option URI. */ byte[] OPTIONURI = token(W3URI + "/2011/xquery-options"); /** EXPath URI. */ String EXPATH = "http://expath.org/ns/"; /** Cryptographic module URI. */ byte[] CRYPTOURI = token(EXPATH + "crypto"); /** File module URI. */ byte[] FILEURI = token(EXPATH + "file"); /** HTTP Client URI. */ byte[] HTTPURI = token(EXPATH + "http-client"); /** Package API URI. */ byte[] PKGURI = token(EXPATH + "pkg"); /** ZIP URI.*/ byte[] ZIPURI = token(EXPATH + "zip"); /** Database URI. */ byte[] BASEXURI = token(Text.URL); /** EXPath URI. */ String BXMODULES = Text.URL + "/modules/"; /** Database module URI. */ byte[] DBURI = token(BXMODULES + "db"); /** Full-text module URI. */ byte[] FTURI = token(BXMODULES + "ft"); /** Higher-order URI. */ byte[] HOFURI = token(BXMODULES + "hof"); /** Index URI. */ byte[] INDEXURI = token(BXMODULES + "index"); /** JSON URI. */ byte[] JSONURI = token(BXMODULES + "json"); /** Utility module URI. */ byte[] UTILURI = token(BXMODULES + "util"); /** XSLT module URI. */ byte[] XSLTURI = token(BXMODULES + "xslt"); /** SQL Module URI. */ byte[] SQLURI = token(BXMODULES + "sql"); /** Repo URI. */ byte[] REPOURI = token(BXMODULES + "repo"); /** Java prefix. */ byte[] JAVAPRE = token("java:"); /** Default collation. */ byte[] URLCOLL = concat(FNURI, token("/collation/codepoint")); /** Static modules. */ TokenSet MODULES = new TokenSet(FILEURI, HTTPURI, PKGURI, ZIPURI, SQLURI, CRYPTOURI); // QUERY PLAN =============================================================== /** Separator. */ String SEP = ", "; /** Dots. */ String DOTS = "..."; /** Query Plan. */ String ARG = "arg"; /** Query Plan. */ String FUNC = "Function"; /** Query Plan. */ String VARBL = "Variable"; /** Query Info: Plan. */ byte[] PLAN = token("QueryPlan"); /** Query Plan. */ byte[] OP = token("op"); /** Query Plan. */ byte[] POS = token("pos"); /** Query Plan. */ byte[] VAR = token("var"); /** Query Plan. */ byte[] DATA = token("data"); /** Query Plan. */ byte[] TYP = token("type"); /** Query Plan. */ byte[] NAM = token("name"); /** Query Plan. */ byte[] WHR = token("Where"); /** Query Plan. */ byte[] RET = token("Return"); /** Query Plan. */ byte[] ITM = token("Item"); /** Query Plan. */ byte[] THN = token("Then"); /** Query Plan. */ byte[] ELS = token("Else"); /** Query Plan. */ byte[] DIR = token("dir"); /** Query Plan. */ byte[] PRE = token("pre"); /** Query Plan. */ byte[] VAL = token("value"); /** Query Plan. */ byte[] SIZE = token("size"); /** Query Plan. */ byte[] AXIS = token("axis"); /** Query Plan. */ byte[] TEST = token("test"); /** Minimum . */ byte[] MIN = token("min"); /** Attribute name. */ byte[] MAX = token("max"); /** Minimum . */ byte[] INF = token("inf"); /** Query Plan. */ byte[] ENTRY = token("entry"); /** Query Plan. */ byte[] KEY = token("key"); /** Query Plan. */ byte[] COUNT = token("count"); /** Example for a Date format. */ String XDATE = "2000-12-31"; /** Example for a Time format. */ String XTIME = "23:59:59"; /** Example for a DateTime format. */ String XDTM = XDATE + 'T' + XTIME; /** Example for a DayTimeDuration format. */ String XDTD = "P23DT12M34S"; /** Example for a YearMonthDuration format. */ String XYMD = "P2000Y12M"; /** Example for a Duration format. */ String XDURR = "P2000Y12MT23H12M34S"; /** Example for a YearMonth format. */ String XYMO = "2000-12"; /** Example for a Year format. */ String XYEA = "2000"; /** Example for a MonthDay format. */ String XMDA = "--12-31"; /** Example for a Day format. */ String XDAY = "---31"; /** Example for a Month format. */ String XMON = "--12"; // OPTIMIZATIONS /** Optimization info. */ String OPTDESC = "optimizing descendant-or-self step(s)"; /** Optimization info. */ String OPTMERGE = "merging axis paths"; /** Optimization info. */ String OPTPRE = "pre-evaluating %"; /** Optimization info. */ String OPTWRITE = "rewriting %"; /** Optimization info. */ String OPTFLAT = "flattening %"; /** Optimization info. */ String OPTREMOVE = "%: removing %"; /** Optimization info. */ String OPTFORLET = "moving for/let clauses"; /** Optimization info. */ String OPTSWAP = "operands swapped: %"; /** Optimization info. */ String OPTTEXT = "adding text() step"; /** Optimization info. */ String OPTFLWOR = "simplifying flwor expression"; /** Optimization info. */ String OPTINLINE = "inlining function %(...)"; /** Optimization info. */ String OPTWHERE = "rewriting where clause to predicate(s)"; /** Optimization info. */ String OPTPRED = "rewriting % to predicate(s)"; /** Optimization info. */ String OPTCAST = "removing redundant % cast."; /** Optimization info. */ String OPTVAR = "removing variable %"; /** Optimization info. */ String OPTPREF = "skipping namespace test for \"%\""; /** Optimization info. */ String OPTNAME = "removing unknown tag/attribute %"; /** Optimization info. */ String OPTPATH = "removing non-existing path %"; /** Optimization info. */ String OPTTXTINDEX = "applying text index"; /** Optimization info. */ String OPTATVINDEX = "applying attribute index"; /** Optimization info. */ String OPTFTXINDEX = "applying full-text index"; /** Optimization info. */ String OPTRNGINDEX = "applying range index"; /** Optimization info. */ String OPTNOINDEX = "removing path with no index results"; /** Optimization info. */ String OPTBIND = "binding static variable %"; /** Optimization info. */ String OPTCHILD = "converting % to child steps"; }