SourceForge.net Logo
XQilla.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2001-2008
3  * DecisionSoft Limited. All rights reserved.
4  * Copyright (c) 2004-2008
5  * Oracle. All rights reserved.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  * $Id$
20  */
21 
22 #ifndef _XQILLA_07637_HPP
23 #define _XQILLA_07637_HPP
24 
25 #include <xqilla/framework/XQillaExport.hpp>
26 
29 #include <xercesc/util/XMemory.hpp>
30 
31 class DynamicContext;
32 class XQQuery;
35 
36 XERCES_CPP_NAMESPACE_BEGIN
37 class InputSource;
38 class XMLBuffer;
39 XERCES_CPP_NAMESPACE_END
40 
48 class XQILLA_API XQilla : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory
49 {
50 public:
52  enum Flags {
53  NO_STATIC_RESOLUTION = 0x1,
54  NO_ADOPT_CONTEXT = 0x2,
55  DEBUG_QUERY = 0x4,
56  NO_OPTIMIZATION = 0x8
57  };
58 
60  enum Language {
61  XQUERY = 0x00,
62  XPATH2 = 0x01,
63  FULLTEXT = 0x02,
64  UPDATE = 0x04,
65  EXTENSIONS = 0x08,
66  XSLT2 = 0x10,
67 
68  XQUERY_FULLTEXT = (XQUERY | FULLTEXT),
69  XPATH2_FULLTEXT = (XPATH2 | FULLTEXT),
70  XQUERY_UPDATE = (XQUERY | UPDATE),
71  XQUERY_FULLTEXT_UPDATE = (XQUERY | FULLTEXT | UPDATE),
72  XSLT2_FULLTEXT = (XSLT2 | FULLTEXT)
73  };
74 
81  XQilla(XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr = 0);
82 
87  ~XQilla();
88 
90  // @{
91 
108  static XQQuery* parse(const XMLCh* query,
109  DynamicContext* context = 0,
110  const XMLCh* queryFile = NULL,
111  unsigned int flags = 0,
112  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
113  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
114 
129  static XQQuery* parse(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc,
130  DynamicContext* context = 0,
131  unsigned int flags = 0,
132  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
133  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
134 
149  static XQQuery* parseFromURI(const XMLCh* queryFile,
150  DynamicContext* context = 0,
151  unsigned int flags = 0,
152  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
153  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
154 
156 
158  // @{
159 
165  static DynamicContext *createContext(Language language = XQUERY,
166  XQillaConfiguration *conf = 0,
167  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager *memMgr =
168  XERCES_CPP_NAMESPACE_QUALIFIER XMLPlatformUtils::fgMemoryManager);
169 
171 
172 private:
173  static bool readQuery(const XMLCh* queryFile,
174  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr,
175  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText);
176  static bool readQuery(const XERCES_CPP_NAMESPACE_QUALIFIER InputSource& querySrc,
177  XERCES_CPP_NAMESPACE_QUALIFIER MemoryManager* memMgr,
178  XERCES_CPP_NAMESPACE_QUALIFIER XMLBuffer& queryText);
179 };
180 
181 #endif
Flags
Flags used by the XQilla methods. These are used by bitwise OR-ing (|) their values together...
Definition: XQilla.hpp:52
Definition: XPath2MemoryManager.hpp:47
Encapsulates a query expression.
Definition: XQQuery.hpp:57
A single input source for an XML entity.
Definition: InputSource.hpp:62
The execution time dynamic context interface.
Definition: DynamicContext.hpp:39
Definition: XQillaConfiguration.hpp:39
Provides factory methods for creating XQQuery and DynamicContext objects.
Definition: XQilla.hpp:48
Language
Enumeration used to select a language to parse.
Definition: XQilla.hpp:60