b2be38b2697702583b02d47b53ded761d0e870ee
[profile/ivi/qtxmlpatterns.git] / src / xmlpatterns / schema / qxsdschemachecker_setup.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/
5 **
6 ** This file is part of the QtXmlPatterns module of the Qt Toolkit.
7 **
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.
16 **
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.
20 **
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.
28 **
29 ** Other Usage
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.
32 **
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 #include "qxsdschemachecker_p.h"
43
44 QT_BEGIN_NAMESPACE
45
46 using namespace QPatternist;
47
48 void XsdSchemaChecker::setupAllowedAtomicFacets()
49 {
50     // string
51     {
52         QSet<XsdFacet::Type> facets;
53         facets << XsdFacet::Length
54                << XsdFacet::MinimumLength
55                << XsdFacet::MaximumLength
56                << XsdFacet::Pattern
57                << XsdFacet::Enumeration
58                << XsdFacet::WhiteSpace
59                << XsdFacet::Assertion;
60
61         m_allowedAtomicFacets.insert(BuiltinTypes::xsString->name(m_namePool), facets);
62     }
63
64     // boolean
65     {
66         QSet<XsdFacet::Type> facets;
67         facets << XsdFacet::Pattern
68                << XsdFacet::WhiteSpace
69                << XsdFacet::Assertion;
70
71         m_allowedAtomicFacets.insert(BuiltinTypes::xsBoolean->name(m_namePool), facets);
72     }
73
74     // float
75     {
76         QSet<XsdFacet::Type> facets;
77         facets << XsdFacet::Pattern
78                << XsdFacet::Enumeration
79                << XsdFacet::WhiteSpace
80                << XsdFacet::MaximumInclusive
81                << XsdFacet::MaximumExclusive
82                << XsdFacet::MinimumInclusive
83                << XsdFacet::MinimumExclusive
84                << XsdFacet::Assertion;
85
86         m_allowedAtomicFacets.insert(BuiltinTypes::xsFloat->name(m_namePool), facets);
87     }
88
89     // double
90     {
91         QSet<XsdFacet::Type> facets;
92         facets << XsdFacet::Pattern
93                << XsdFacet::Enumeration
94                << XsdFacet::WhiteSpace
95                << XsdFacet::MaximumInclusive
96                << XsdFacet::MaximumExclusive
97                << XsdFacet::MinimumInclusive
98                << XsdFacet::MinimumExclusive
99                << XsdFacet::Assertion;
100
101         m_allowedAtomicFacets.insert(BuiltinTypes::xsDouble->name(m_namePool), facets);
102     }
103
104     // decimal
105     {
106         QSet<XsdFacet::Type> facets;
107         facets << XsdFacet::TotalDigits
108                << XsdFacet::FractionDigits
109                << XsdFacet::Pattern
110                << XsdFacet::Enumeration
111                << XsdFacet::WhiteSpace
112                << XsdFacet::MaximumInclusive
113                << XsdFacet::MaximumExclusive
114                << XsdFacet::MinimumInclusive
115                << XsdFacet::MinimumExclusive
116                << XsdFacet::Assertion;
117
118         m_allowedAtomicFacets.insert(BuiltinTypes::xsDecimal->name(m_namePool), facets);
119     }
120
121     // duration
122     {
123         QSet<XsdFacet::Type> facets;
124         facets << XsdFacet::Pattern
125                << XsdFacet::Enumeration
126                << XsdFacet::WhiteSpace
127                << XsdFacet::MaximumInclusive
128                << XsdFacet::MaximumExclusive
129                << XsdFacet::MinimumInclusive
130                << XsdFacet::MinimumExclusive
131                << XsdFacet::Assertion;
132
133         m_allowedAtomicFacets.insert(BuiltinTypes::xsDuration->name(m_namePool), facets);
134     }
135
136     // dateTime
137     {
138         QSet<XsdFacet::Type> facets;
139         facets << XsdFacet::Pattern
140                << XsdFacet::Enumeration
141                << XsdFacet::WhiteSpace
142                << XsdFacet::MaximumInclusive
143                << XsdFacet::MaximumExclusive
144                << XsdFacet::MinimumInclusive
145                << XsdFacet::MinimumExclusive
146                << XsdFacet::Assertion;
147
148         m_allowedAtomicFacets.insert(BuiltinTypes::xsDateTime->name(m_namePool), facets);
149     }
150
151     // time
152     {
153         QSet<XsdFacet::Type> facets;
154         facets << XsdFacet::Pattern
155                << XsdFacet::Enumeration
156                << XsdFacet::WhiteSpace
157                << XsdFacet::MaximumInclusive
158                << XsdFacet::MaximumExclusive
159                << XsdFacet::MinimumInclusive
160                << XsdFacet::MinimumExclusive
161                << XsdFacet::Assertion;
162
163         m_allowedAtomicFacets.insert(BuiltinTypes::xsTime->name(m_namePool), facets);
164     }
165
166     // date
167     {
168         QSet<XsdFacet::Type> facets;
169         facets << XsdFacet::Pattern
170                << XsdFacet::Enumeration
171                << XsdFacet::WhiteSpace
172                << XsdFacet::MaximumInclusive
173                << XsdFacet::MaximumExclusive
174                << XsdFacet::MinimumInclusive
175                << XsdFacet::MinimumExclusive
176                << XsdFacet::Assertion;
177
178         m_allowedAtomicFacets.insert(BuiltinTypes::xsDate->name(m_namePool), facets);
179     }
180
181     // gYearMonth
182     {
183         QSet<XsdFacet::Type> facets;
184         facets << XsdFacet::Pattern
185                << XsdFacet::Enumeration
186                << XsdFacet::WhiteSpace
187                << XsdFacet::MaximumInclusive
188                << XsdFacet::MaximumExclusive
189                << XsdFacet::MinimumInclusive
190                << XsdFacet::MinimumExclusive
191                << XsdFacet::Assertion;
192
193         m_allowedAtomicFacets.insert(BuiltinTypes::xsGYearMonth->name(m_namePool), facets);
194     }
195
196     // gYear
197     {
198         QSet<XsdFacet::Type> facets;
199         facets << XsdFacet::Pattern
200                << XsdFacet::Enumeration
201                << XsdFacet::WhiteSpace
202                << XsdFacet::MaximumInclusive
203                << XsdFacet::MaximumExclusive
204                << XsdFacet::MinimumInclusive
205                << XsdFacet::MinimumExclusive
206                << XsdFacet::Assertion;
207
208         m_allowedAtomicFacets.insert(BuiltinTypes::xsGYear->name(m_namePool), facets);
209     }
210
211     // gMonthDay
212     {
213         QSet<XsdFacet::Type> facets;
214         facets << XsdFacet::Pattern
215                << XsdFacet::Enumeration
216                << XsdFacet::WhiteSpace
217                << XsdFacet::MaximumInclusive
218                << XsdFacet::MaximumExclusive
219                << XsdFacet::MinimumInclusive
220                << XsdFacet::MinimumExclusive
221                << XsdFacet::Assertion;
222
223         m_allowedAtomicFacets.insert(BuiltinTypes::xsGMonthDay->name(m_namePool), facets);
224     }
225
226     // gDay
227     {
228         QSet<XsdFacet::Type> facets;
229         facets << XsdFacet::Pattern
230                << XsdFacet::Enumeration
231                << XsdFacet::WhiteSpace
232                << XsdFacet::MaximumInclusive
233                << XsdFacet::MaximumExclusive
234                << XsdFacet::MinimumInclusive
235                << XsdFacet::MinimumExclusive
236                << XsdFacet::Assertion;
237
238         m_allowedAtomicFacets.insert(BuiltinTypes::xsGDay->name(m_namePool), facets);
239     }
240
241     // gMonth
242     {
243         QSet<XsdFacet::Type> facets;
244         facets << XsdFacet::Pattern
245                << XsdFacet::Enumeration
246                << XsdFacet::WhiteSpace
247                << XsdFacet::MaximumInclusive
248                << XsdFacet::MaximumExclusive
249                << XsdFacet::MinimumInclusive
250                << XsdFacet::MinimumExclusive
251                << XsdFacet::Assertion;
252
253         m_allowedAtomicFacets.insert(BuiltinTypes::xsGMonth->name(m_namePool), facets);
254     }
255
256     // hexBinary
257     {
258         QSet<XsdFacet::Type> facets;
259         facets << XsdFacet::Length
260                << XsdFacet::MinimumLength
261                << XsdFacet::MaximumLength
262                << XsdFacet::Pattern
263                << XsdFacet::Enumeration
264                << XsdFacet::WhiteSpace
265                << XsdFacet::Assertion;
266
267         m_allowedAtomicFacets.insert(BuiltinTypes::xsHexBinary->name(m_namePool), facets);
268     }
269
270     // base64Binary
271     {
272         QSet<XsdFacet::Type> facets;
273         facets << XsdFacet::Length
274                << XsdFacet::MinimumLength
275                << XsdFacet::MaximumLength
276                << XsdFacet::Pattern
277                << XsdFacet::Enumeration
278                << XsdFacet::WhiteSpace
279                << XsdFacet::Assertion;
280
281         m_allowedAtomicFacets.insert(BuiltinTypes::xsBase64Binary->name(m_namePool), facets);
282     }
283
284     // anyURI
285     {
286         QSet<XsdFacet::Type> facets;
287         facets << XsdFacet::Length
288                << XsdFacet::MinimumLength
289                << XsdFacet::MaximumLength
290                << XsdFacet::Pattern
291                << XsdFacet::Enumeration
292                << XsdFacet::WhiteSpace
293                << XsdFacet::Assertion;
294
295         m_allowedAtomicFacets.insert(BuiltinTypes::xsAnyURI->name(m_namePool), facets);
296     }
297
298     // QName
299     {
300         QSet<XsdFacet::Type> facets;
301         facets << XsdFacet::Length
302                << XsdFacet::MinimumLength
303                << XsdFacet::MaximumLength
304                << XsdFacet::Pattern
305                << XsdFacet::Enumeration
306                << XsdFacet::WhiteSpace
307                << XsdFacet::Assertion;
308
309         m_allowedAtomicFacets.insert(BuiltinTypes::xsQName->name(m_namePool), facets);
310     }
311
312     // NOTATION
313     {
314         QSet<XsdFacet::Type> facets;
315         facets << XsdFacet::Length
316                << XsdFacet::MinimumLength
317                << XsdFacet::MaximumLength
318                << XsdFacet::Pattern
319                << XsdFacet::Enumeration
320                << XsdFacet::WhiteSpace
321                << XsdFacet::Assertion;
322
323         m_allowedAtomicFacets.insert(BuiltinTypes::xsNOTATION->name(m_namePool), facets);
324     }
325 }
326
327 QT_END_NAMESPACE