1 /****************************************************************************
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
6 ** This file is part of the QtXmlPatterns module of the Qt Toolkit.
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** GNU Lesser General Public License Usage
10 ** This file may be used under the terms of the GNU Lesser General Public
11 ** License version 2.1 as published by the Free Software Foundation and
12 ** appearing in the file LICENSE.LGPL included in the packaging of this
13 ** file. Please review the following information to ensure the GNU Lesser
14 ** General Public License version 2.1 requirements will be met:
15 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 ** In addition, as a special exception, Nokia gives you certain additional
18 ** rights. These rights are described in the Nokia Qt LGPL Exception
19 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21 ** GNU General Public License Usage
22 ** Alternatively, this file may be used under the terms of the GNU General
23 ** Public License version 3.0 as published by the Free Software Foundation
24 ** and appearing in the file LICENSE.GPL included in the packaging of this
25 ** file. Please review the following information to ensure the GNU General
26 ** Public License version 3.0 requirements will be met:
27 ** http://www.gnu.org/copyleft/gpl.html.
30 ** Alternatively, this file may be used in accordance with the terms and
31 ** conditions contained in a signed written agreement between you and Nokia.
40 ****************************************************************************/
46 // This file is not part of the Qt API. It exists purely as an
47 // implementation detail. This header file may change from version to
48 // version without notice, or even be removed.
52 #ifndef Patternist_CommonValues_H
53 #define Patternist_CommonValues_H
55 #include <private/qdaytimeduration_p.h>
56 #include <private/qyearmonthduration_p.h>
57 #include <private/qemptyiterator_p.h>
67 * @short A collection of common values.
69 * @author Frans Englich <frans.englich@nokia.com>
70 * @ingroup Patternist_xdm
71 * @todo Documentation is missing/incomplete
77 * An empty, zero-length string.
79 * @note It is not @c null, but empty.
81 static const AtomicValue::Ptr EmptyString;
84 * The string "true", the lexical representation of
85 * @c xs:boolean's value @c true.
87 static const AtomicValue::Ptr TrueString;
90 * The string "false", the lexical representation of
91 * @c xs:boolean's value @c false.
93 static const AtomicValue::Ptr UntypedAtomicFalse;
96 * The string "true", the lexical representation of
97 * @c xs:boolean's value @c true.
99 static const AtomicValue::Ptr UntypedAtomicTrue;
102 * The string "false", the lexical representation of
103 * @c xs:boolean's value @c false.
105 static const AtomicValue::Ptr FalseString;
108 * @returns a Boolean instance carrying the boolean value @c true.
109 * Use this value instead of Boolean::fromValue() if you
110 * know what boolean value you need.
112 static const AtomicValue::Ptr BooleanTrue;
115 * @returns a Boolean instance carrying the boolean value @c true.
116 * Use this value instead of Boolean::fromValue() if you
117 * know what boolean value you need.
119 static const AtomicValue::Ptr BooleanFalse;
122 * Not-a-Numeric typed as @c xs:double.
124 static const AtomicValue::Ptr DoubleNaN;
127 * Not-a-Number typed as @c xs:float, <tt>xs:float("NaN")</tt>.
129 static const AtomicValue::Ptr FloatNaN;
132 * Zero(0) typed as @c xs:integer, <tt>xs:integer("0")</tt>.
134 static const Item IntegerZero;
137 * An empty, "", @c xs:anyURI.
139 static const AtomicValue::Ptr EmptyAnyURI;
142 * The empty sequence.
144 static const EmptyIterator<Item>::Ptr emptyIterator;
147 * <tt>xs:float("-INF")</tt>
149 static const AtomicValue::Ptr NegativeInfFloat;
152 * <tt>xs:float("INF")</tt>
154 static const AtomicValue::Ptr InfFloat;
157 * <tt>xs:double("-INF")</tt>
159 static const AtomicValue::Ptr NegativeInfDouble;
162 * <tt>xs:double("INF")</tt>
164 static const AtomicValue::Ptr InfDouble;
167 * <tt>xs:float("1")</tt>
169 static const AtomicValue::Ptr FloatOne;
171 * <tt>xs:double("1")</tt>
173 static const AtomicValue::Ptr DoubleOne;
175 * <tt>xs:decimal("1")</tt>
177 static const AtomicValue::Ptr DecimalOne;
180 * <tt>xs:integer("1")</tt>
182 static const Item IntegerOne;
185 * <tt>xs:integer("-1")</tt>
187 static const Item IntegerOneNegative;
190 * <tt>xs:double("0")</tt>
192 static const AtomicValue::Ptr DoubleZero;
195 * <tt>xs:float("0")</tt>
197 static const AtomicValue::Ptr FloatZero;
199 * <tt>xs:integer("0")</tt>
201 static const AtomicValue::Ptr DecimalZero;
204 * The @c xs:dayTimeDuration value PT0S
206 static const DayTimeDuration::Ptr DayTimeDurationZero;
209 * The @c xs:yearMonthDuration value P0M
211 static const DayTimeDuration::Ptr YearMonthDurationZero;
215 * The constructor is private because this class is not meant to be instantiated,
216 * but should only be used via its static const members.
218 inline CommonValues();
220 Q_DISABLE_COPY(CommonValues)