Qt 4.8
qxpath20corefunctions.cpp
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the QtXmlPatterns module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41 
42 #include "qanyuri_p.h"
43 #include "qatomizer_p.h"
44 #include "qbuiltintypes_p.h"
45 #include "qcardinalityverifier_p.h"
46 #include "qcommonsequencetypes_p.h"
47 #include "qcommonvalues_p.h"
48 #include "qemptysequence_p.h"
49 #include "qcommonnamespaces_p.h"
50 #include "qxmlname.h"
51 #include "qatomicstring_p.h"
52 
53 /* Functions */
54 #include "qaccessorfns_p.h"
55 #include "qaggregatefns_p.h"
56 #include "qassemblestringfns_p.h"
57 #include "qbooleanfns_p.h"
58 #include "qcomparestringfns_p.h"
59 #include "qcomparingaggregator_p.h"
60 #include "qcontextfns_p.h"
61 #include "qdatetimefn_p.h"
62 #include "qdatetimefns_p.h"
63 #include "qdeepequalfn_p.h"
64 #include "qerrorfn_p.h"
65 #include "qnodefns_p.h"
66 #include "qnumericfns_p.h"
67 #include "qpatternmatchingfns_p.h"
68 #include "qqnamefns_p.h"
69 #include "qresolveurifn_p.h"
70 #include "qsequencefns_p.h"
72 #include "qstringvaluefns_p.h"
73 #include "qsubstringfns_p.h"
74 #include "qtimezonefns_p.h"
75 #include "qtracefn_p.h"
76 
78 
80 
81 using namespace QPatternist;
82 
84  const Expression::List &args,
85  const FunctionSignature::Ptr &sign) const
86 {
87  Q_ASSERT(sign);
88 
89  Expression::Ptr fn;
90 #define testFN(ln, cname) else if(name.localName() == StandardLocalNames::ln) fn = Expression::Ptr(new cname())
91 
92  if(false) /* Dummy for the macro handling. Will be optimized away anyway. */
93  return Expression::Ptr();
94  /* Alphabetic order. */
95  testFN(QName, QNameFN);
96  testFN(abs, AbsFN);
97  testFN(adjust_date_to_timezone, AdjustDateToTimezoneFN);
98  testFN(adjust_dateTime_to_timezone, AdjustDateTimeToTimezoneFN);
99  testFN(adjust_time_to_timezone, AdjustTimeToTimezoneFN);
100  testFN(avg, AvgFN);
101  testFN(base_uri, BaseURIFN);
102  testFN(codepoint_equal, CodepointEqualFN);
103  testFN(codepoints_to_string, CodepointsToStringFN);
104  testFN(collection, CollectionFN);
106  testFN(current_date, CurrentDateFN);
107  testFN(current_dateTime, CurrentDateTimeFN);
108  testFN(current_time, CurrentTimeFN);
109  testFN(dateTime, DateTimeFN);
110  testFN(day_from_date, DayFromAbstractDateTimeFN);
111  testFN(day_from_dateTime, DayFromAbstractDateTimeFN);
112  testFN(days_from_duration, DaysFromDurationFN);
113  testFN(deep_equal, DeepEqualFN);
114  testFN(default_collation, DefaultCollationFN);
115  testFN(distinct_values, DistinctValuesFN);
116  testFN(doc, DocFN);
117  testFN(doc_available, DocAvailableFN);
118  testFN(document_uri, DocumentURIFN);
120  testFN(encode_for_uri, EncodeForURIFN);
121  testFN(ends_with, EndsWithFN);
122  testFN(error, ErrorFN);
123  testFN(escape_html_uri, EscapeHtmlURIFN);
125  testFN(hours_from_dateTime, HoursFromAbstractDateTimeFN);
126  testFN(hours_from_duration, HoursFromDurationFN);
127  testFN(hours_from_time, HoursFromAbstractDateTimeFN);
128  testFN(idref, IdrefFN);
129  testFN(implicit_timezone, ImplicitTimezoneFN);
130  testFN(in_scope_prefixes, InScopePrefixesFN);
131  testFN(index_of, IndexOfFN);
132  testFN(insert_before, InsertBeforeFN);
133  testFN(iri_to_uri, IriToURIFN);
134  testFN(local_name_from_QName, LocalNameFromQNameFN);
135  testFN(lower_case, LowerCaseFN);
136  testFN(matches, MatchesFN);
137  testFN(max, MaxFN);
138  testFN(min, MinFN);
139  testFN(minutes_from_dateTime, MinutesFromAbstractDateTimeFN);
140  testFN(minutes_from_duration, MinutesFromDurationFN);
141  testFN(minutes_from_time, MinutesFromAbstractDateTimeFN);
142  testFN(month_from_date, MonthFromAbstractDateTimeFN);
143  testFN(month_from_dateTime, MonthFromAbstractDateTimeFN);
144  testFN(months_from_duration, MonthsFromDurationFN);
145  testFN(namespace_uri_for_prefix, NamespaceURIForPrefixFN);
146  testFN(namespace_uri_from_QName, NamespaceURIFromQNameFN);
147  testFN(nilled, NilledFN);
148  testFN(node_name, NodeNameFN);
149  testFN(normalize_unicode, NormalizeUnicodeFN);
150  testFN(prefix_from_QName, PrefixFromQNameFN);
151  testFN(remove, RemoveFN);
152  testFN(replace, ReplaceFN);
153  testFN(resolve_QName, ResolveQNameFN);
154  testFN(resolve_uri, ResolveURIFN);
155  testFN(generic_string_join, StringJoinFN);
157  testFN(root, RootFN);
158  testFN(round_half_to_even, RoundHalfToEvenFN);
159  testFN(seconds_from_dateTime, SecondsFromAbstractDateTimeFN);
160  testFN(seconds_from_duration, SecondsFromDurationFN);
161  testFN(seconds_from_time, SecondsFromAbstractDateTimeFN);
162  testFN(static_base_uri, StaticBaseURIFN);
163  testFN(string_join, StringJoinFN);
164  testFN(string_to_codepoints, StringToCodepointsFN);
165  testFN(subsequence, SubsequenceFN);
166  testFN(timezone_from_date, TimezoneFromAbstractDateTimeFN);
167  testFN(timezone_from_dateTime, TimezoneFromAbstractDateTimeFN);
168  testFN(timezone_from_time, TimezoneFromAbstractDateTimeFN);
169  testFN(tokenize, TokenizeFN);
170  testFN(trace, TraceFN);
171  testFN(upper_case, UpperCaseFN);
172  testFN(year_from_date, YearFromAbstractDateTimeFN);
173  testFN(year_from_dateTime, YearFromAbstractDateTimeFN);
174  testFN(years_from_duration, YearsFromDurationFN);
175 #undef testFN
176 
177  if(fn)
178  {
179  fn->setOperands(args);
180  fn->as<FunctionCall>()->setSignature(sign);
181  }
182  else
183  {
184  /* Do the ones which are not FunctionCall sub-classes. The effect is
185  * that FunctionCall sub-classes has "automatic" type checking in the base
186  * class done from the background of their function signature, while
187  * these special classes are on their own, and must do it manually. */
188  if(name.localName() == StandardLocalNames::data)
189  fn = Expression::Ptr(new Atomizer(args.first()));
190  else if(name.localName() == StandardLocalNames::zero_or_one)
193  else if(name.localName() == StandardLocalNames::one_or_more)
196  else if(name.localName() == StandardLocalNames::exactly_one)
199  else if(name.localName() == StandardLocalNames::unordered)
200  /* We don't make use of the unordered() function, so just pop in
201  * the arg. */
202  fn = args.first();
203  }
204 
205  return fn;
206 }
207 
209  const QXmlName name)
210 {
212  return FunctionSignature::Ptr();
213 
215 
216  if(!s)
217  {
218  const QXmlName::LocalNameCode localName = name.localName();
219 
220  /* Alphabetic order. */
221  if(StandardLocalNames::QName == localName)
222  {
226  }
227  else if(StandardLocalNames::abs == localName)
228  {
232  }
233  else if(StandardLocalNames::adjust_date_to_timezone == localName)
234  {
239  }
241  {
246  }
247  else if(StandardLocalNames::adjust_time_to_timezone == localName)
248  {
253  }
254  else if(StandardLocalNames::avg == localName)
255  {
259  }
260  else if(StandardLocalNames::base_uri == localName)
261  {
265  }
266  else if(StandardLocalNames::codepoint_equal == localName)
267  {
271  }
272  else if(StandardLocalNames::codepoints_to_string == localName)
273  {
276  }
277  else if(StandardLocalNames::collection == localName)
278  {
281  }
282  else if(StandardLocalNames::compare == localName)
283  {
289  }
290  else if(StandardLocalNames::current_date == localName)
291  {
294  }
295  else if(StandardLocalNames::current_dateTime == localName)
296  {
299  }
300  else if(StandardLocalNames::current_time == localName)
301  {
304  }
305  else if(StandardLocalNames::data == localName)
306  {
309  }
310  else if(StandardLocalNames::dateTime == localName)
311  {
315  }
316  else if(StandardLocalNames::day_from_date == localName)
317  {
321  }
322  else if(StandardLocalNames::day_from_dateTime == localName)
323  {
327  }
328  else if(StandardLocalNames::days_from_duration == localName)
329  {
333  }
334  else if(StandardLocalNames::deep_equal == localName)
335  {
341  }
342  else if(StandardLocalNames::default_collation == localName)
343  {
345  }
346  else if(StandardLocalNames::distinct_values == localName)
347  {
354  }
355  else if(StandardLocalNames::doc == localName)
356  {
359  }
360  else if(StandardLocalNames::doc_available == localName)
361  {
364  }
365  else if(StandardLocalNames::document_uri == localName)
366  {
369  }
370  else if(StandardLocalNames::empty == localName)
371  {
374  }
375  else if(StandardLocalNames::encode_for_uri == localName)
376  {
379  }
380  else if(StandardLocalNames::ends_with == localName)
381  {
387  }
388  else if(StandardLocalNames::error == localName)
389  {
395  }
396  else if(StandardLocalNames::escape_html_uri == localName)
397  {
400  }
401  else if(StandardLocalNames::exactly_one == localName)
402  {
405  }
406  else if(StandardLocalNames::exists == localName)
407  {
410  }
411  else if(StandardLocalNames::hours_from_dateTime == localName)
412  {
416  }
417  else if(StandardLocalNames::hours_from_duration == localName)
418  {
422  }
423  else if(StandardLocalNames::hours_from_time == localName)
424  {
428  }
429  else if(StandardLocalNames::idref == localName)
430  {
435  }
436  else if(StandardLocalNames::implicit_timezone == localName)
437  {
440  }
441  else if(StandardLocalNames::in_scope_prefixes == localName)
442  {
445  }
446  else if(StandardLocalNames::index_of == localName)
447  {
453  }
454  else if(StandardLocalNames::insert_before == localName)
455  {
460  }
461  else if(StandardLocalNames::iri_to_uri == localName)
462  {
465  }
466  else if(StandardLocalNames::local_name_from_QName == localName)
467  {
471  }
472  else if(StandardLocalNames::lower_case == localName)
473  {
477  }
478  else if(StandardLocalNames::matches == localName)
479  {
484  }
485  else if(StandardLocalNames::max == localName)
486  {
493  }
494  else if(StandardLocalNames::min == localName)
495  {
502  }
503  else if(StandardLocalNames::minutes_from_dateTime == localName)
504  {
508  }
509  else if(StandardLocalNames::minutes_from_duration == localName)
510  {
514  }
515  else if(StandardLocalNames::minutes_from_time == localName)
516  {
520  }
521  else if(StandardLocalNames::month_from_date == localName)
522  {
526  }
527  else if(StandardLocalNames::month_from_dateTime == localName)
528  {
532  }
533  else if(StandardLocalNames::months_from_duration == localName)
534  {
538  }
540  {
544  }
546  {
550  }
551  else if(StandardLocalNames::nilled == localName)
552  {
555  }
556  else if(StandardLocalNames::node_name == localName)
557  {
560  }
561  else if(StandardLocalNames::normalize_unicode == localName)
562  {
565  s->appendArgument(argument(np, "normalizationForm"), CommonSequenceTypes::ExactlyOneString);
566  }
567  else if(StandardLocalNames::one_or_more == localName)
568  {
571  }
572  else if(StandardLocalNames::prefix_from_QName == localName)
573  {
577  }
578  else if(StandardLocalNames::remove == localName)
579  {
584  }
585  else if(StandardLocalNames::replace == localName)
586  {
592  }
593  else if(StandardLocalNames::resolve_QName == localName)
594  {
599  }
600  else if(StandardLocalNames::resolve_uri == localName)
601  {
606  }
607  else if(StandardLocalNames::reverse == localName)
608  {
611  }
612  else if(StandardLocalNames::root == localName)
613  {
619  }
620  else if(StandardLocalNames::round_half_to_even == localName)
621  {
626  }
627  else if(StandardLocalNames::seconds_from_dateTime == localName)
628  {
632  }
633  else if(StandardLocalNames::seconds_from_duration == localName)
634  {
638  }
639  else if(StandardLocalNames::seconds_from_time == localName)
640  {
644  }
645  else if(StandardLocalNames::static_base_uri == localName)
646  {
648  }
649  else if(StandardLocalNames::string_join == localName)
650  {
654  }
655  else if(StandardLocalNames::generic_string_join == localName)
656  {
663  }
664  else if(StandardLocalNames::string_to_codepoints == localName)
665  {
668  }
669  else if(StandardLocalNames::subsequence == localName)
670  {
675  }
676  else if(StandardLocalNames::timezone_from_date == localName)
677  {
681  }
682  else if(StandardLocalNames::timezone_from_dateTime == localName)
683  {
687  }
688  else if(StandardLocalNames::timezone_from_time == localName)
689  {
693  }
694  else if(StandardLocalNames::tokenize == localName)
695  {
700  }
701  else if(StandardLocalNames::trace == localName)
702  {
707  }
708  else if(StandardLocalNames::unordered == localName)
709  {
712  }
713  else if(StandardLocalNames::upper_case == localName)
714  {
718  }
719  else if(StandardLocalNames::year_from_date == localName)
720  {
724  }
725  else if(StandardLocalNames::year_from_dateTime == localName)
726  {
730  }
731  else if(StandardLocalNames::years_from_duration == localName)
732  {
736  }
737  else if(StandardLocalNames::zero_or_one == localName)
738  {
741  }
742  }
743 
744  return s;
745 }
746 
747 
Implements the function fn:current-dateTime().
Implements the function fn:years-from-duration().
Implements the function fn:base-uri().
Base class for implementations of builtin functions.
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
static const SequenceType::Ptr ZeroOrOneNode
virtual Expression::Ptr retrieveExpression(const QXmlName name, const Expression::List &args, const FunctionSignature::Ptr &sign) const
Implements the function fn:adjust-dateTime-to-timezone().
virtual void setOperands(const Expression::List &operands)=0
#define QT_END_NAMESPACE
This macro expands to.
Definition: qglobal.h:90
NamespaceCode LocalNameCode
Definition: qxmlname.h:84
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Verifies that the sequence an Expression evaluates to conforms to a Cardinality.
static const SequenceType::Ptr ZeroOrMoreItems
static QXmlName::LocalNameCode argument(const NamePool::Ptr &np, const char *const name)
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
#define error(msg)
static C reverse(const C &l)
void appendArgument(const QXmlName::LocalNameCode name, const SequenceType::Ptr &type)
Implements the function fn:lower-case().
static const SequenceType::Ptr ExactlyOneQName
Implements the function fn:replace().
static const SequenceType::Ptr ZeroOrOneQName
Implements the function fn:remove().
Implements the function fn:prefix-from-QXmlName().
Definition: qqnamefns_p.h:103
static const SequenceType::Ptr ExactlyOneString
Implements the function fn:local-name-from-QXmlName().
Definition: qqnamefns_p.h:115
static const SequenceType::Ptr ZeroOrMoreNodes
Implements the function fn:doc().
Implements the function fn:idref().
Implements the function fn:abs().
Definition: qnumericfns_p.h:91
Implements the function fn:namespace-uri-from-QXmlName().
Definition: qqnamefns_p.h:139
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
static const SequenceType::Ptr ExactlyOneAtomicType
static const SequenceType::Ptr ZeroOrOneNCName
Implements the function fn:local-name-from-QXmlName().
Definition: qqnamefns_p.h:127
Implements the function fn:default-collation().
static const SequenceType::Ptr ExactlyOneTime
Implements the function fn:document-uri().
FunctionSignature::Ptr addFunction(const QXmlName::LocalNameCode localName, const FunctionSignature::Arity minArgs, const FunctionSignature::Arity maxArgs, const SequenceType::Ptr &returnType, const Expression::Properties props)
static const SequenceType::Ptr ZeroOrOneInteger
static const SequenceType::Ptr ZeroOrOneString
static int sign(int x)
static const SequenceType::Ptr ZeroOrOneDuration
static const SequenceType::Ptr ExactlyOneInteger
Implements the function fn:index-of().
static const SequenceType::Ptr ZeroOrMoreIntegers
virtual FunctionSignature::Hash functionSignatures() const
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition: qglobal.h:89
Implements the function fn:string-join().
const TCastTarget * as() const
static bool compare(const QVariant::Private *a, const QVariant::Private *b)
Compares a to b.
Definition: qvariant.cpp:383
Implements the function fn:root().
Definition: qnodefns_p.h:161
static const SequenceType::Ptr ExactlyOneAnyURI
static const SequenceType::Ptr ZeroOrMoreElements
static const SequenceType::Ptr ZeroOrOneDayTimeDuration
Implements the function fn:nilled().
static Cardinality oneOrMore()
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Implements the function fn:normalize-unicode().
Implements the function fn:node-name().
Implements the function fn:resolve-QXmlName().
Definition: qqnamefns_p.h:91
Implements the function fn:dateTime().
Definition: qdatetimefn_p.h:71
static const SequenceType::Ptr ExactlyOneDateTime
Implements the function fn:ends-with().
Implements the function fn:implicit-timezone().
const char * name
Extracts the timezone property from a sub-class of AbstractDateTime such as DateTime or Date...
Implements the function fn:deep-equal().
The namespace for the internal API of QtXmlPatterns.
Implements the function fn:current-date().
Implements the function fn:adjust-time-to-timezone().
Base class for the implementations of the fn:min() and fn:max() function.
Implements the function fn:trace().
Definition: qtracefn_p.h:68
static const SequenceType::Ptr ZeroOrOneBoolean
static const SequenceType::Ptr ExactlyOneDayTimeDuration
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Implements the function fn:adjust-dateTime-to-timezone().
static const SequenceType::Ptr OneOrMoreItems
Implements the function fn:distinct-values().
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Implements the function fn:string-to-codepoints().
static const SequenceType::Ptr ZeroOrOneDate
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
QString localName(const QXmlNamePool &query) const
Returns the local name.
Definition: qxmlname.cpp:387
Implements the function fn:iri-to-uri().
Performs atomization. Effectively, it is an implementation of the fn:data() function.
Definition: qatomizer_p.h:76
T & first()
Returns a reference to the first item in the list.
Definition: qlist.h:282
static const SequenceType::Ptr ZeroOrOneNumeric
QExplicitlySharedDataPointer< Expression > Ptr
A smart pointer wrapping mutable Expression instances.
static const SequenceType::Ptr ZeroOrOneTime
Implements the function fn:months-from-duration().
static const SequenceType::Ptr ExactlyOneBoolean
Implements the function fn:QXmlName().
Definition: qqnamefns_p.h:79
NamespaceCode namespaceURI() const
Definition: qnamepool_p.h:503
Extracts the day property from a sub-class of AbstractDateTime such as DateTime or Date...
Implements the function fn:codepoint-equal().
Implements the function fn:collection().
static const SequenceType::Ptr ZeroOrOneDocumentNode
static Cardinality zeroOrOne()
The QXmlName class represents the name of an XML node, in an efficient, namespace-aware way...
Definition: qxmlname.h:58
static const SequenceType::Ptr ExactlyOneDouble
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Implements the function fn:avg().
Implements the function fn:subsequence().
Implements the function fn:escape-html-uri().
Implements the function fn:hours-from-duration().
static const SequenceType::Ptr ExactlyOneItem
Implements the function fn:static-base-uri().
Implements the function fn:days-from-duration().
Implements the function fn:minutes-from-duration().
Implements the function fn:current-time().
implements the functions fn:month-from-dateTime() and fn:month-from-date().
Implements the function fn:compare().
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Extracts the minutes property from a sub-class of AbstractDateTime such as DateTime or Date...
Implements the function fn:seconds-from-duration().
static Cardinality exactlyOne()
#define testFN(ln, cname)
static const SequenceType::Ptr ExactlyOneDate
Contains the implementations for the functions fn:max(), MaxFN, and fn:min(), MinFN, and the class ComparingAggregator.
virtual FunctionSignature::Ptr retrieveFunctionSignature(const NamePool::Ptr &np, const QXmlName name)
Implements the function fn:matches().
Implements the function fn:resolve-uri().
Implements the function fn:upper-case().
Implements the function fn:error().
Definition: qerrorfn_p.h:79
Extracts the minute property from a sub-class of AbstractDateTime such as DateTime or SchemaTime...
Implements the function fn:doc-available().
The QFlags class provides a type-safe way of storing OR-combinations of enum values.
Definition: qglobal.h:2313
Implements the function fn:round-half-to-even().
Extracts the seconds property from a sub-class of AbstractDateTime such as DateTime or Date...
static const SequenceType::Ptr ZeroOrOneAtomicType
static const SequenceType::Ptr ZeroOrMoreAtomicTypes
Implements the function fn:reverse().
Implements the function fn:tokenize().
Implements the function fn:in-scope-prefixes().
Definition: qqnamefns_p.h:151
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Extracts the year property from a sub-class of AbstractDateTime such as DateTime or Date...
static const SequenceType::Ptr ExactlyOneElement
static const SequenceType::Ptr ZeroOrOneItem
static const SequenceType::Ptr ZeroOrOneAnyURI
Implements the functions fn:exists() and fn:empty().
Implements the function fn:codepoints-to-string().
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
static const SequenceType::Ptr ZeroOrOneDecimal
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...
Implements the function fn:encode-for-uri().
Implements the function fn:insert-before().
static const SequenceType::Ptr ZeroOrMoreStrings
static const SequenceType::Ptr ExactlyOneNode
static const SequenceType::Ptr ZeroOrOneDateTime
Contains classes implementing the functions found in XQuery 1.0 and XPath 2.0 Functions and Operators...