Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into master-integration
[qt-netbsd.git] / src / xmlpatterns / schema / qxsdschemaparsercontext.cpp
blob381d4d0464a51c2d60b56f00edb5433b2c2d1e69
1 /****************************************************************************
2 **
3 ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 **
7 ** This file is part of the QtXmlPatterns module of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** No Commercial Usage
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
16 ** GNU Lesser General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU Lesser
18 ** General Public License version 2.1 as published by the Free Software
19 ** Foundation and appearing in the file LICENSE.LGPL included in the
20 ** packaging of this file. Please review the following information to
21 ** ensure the GNU Lesser General Public License version 2.1 requirements
22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 ** In addition, as a special exception, Nokia gives you certain additional
25 ** rights. These rights are described in the Nokia Qt LGPL Exception
26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
38 ** $QT_END_LICENSE$
40 ****************************************************************************/
42 #include "qxsdschemaparsercontext_p.h"
44 QT_BEGIN_NAMESPACE
46 using namespace QPatternist;
48 XsdSchemaParserContext::XsdSchemaParserContext(const NamePool::Ptr &namePool, const XsdSchemaContext::Ptr &context)
49 : m_namePool(namePool)
50 , m_schema(new XsdSchema(m_namePool))
51 , m_checker(new XsdSchemaChecker(context, this))
52 , m_resolver(new XsdSchemaResolver(context, this))
53 , m_elementDescriptions(setupElementDescriptions())
57 NamePool::Ptr XsdSchemaParserContext::namePool() const
59 return m_namePool;
62 XsdSchemaResolver::Ptr XsdSchemaParserContext::resolver() const
64 return m_resolver;
67 XsdSchemaChecker::Ptr XsdSchemaParserContext::checker() const
69 return m_checker;
72 XsdSchema::Ptr XsdSchemaParserContext::schema() const
74 return m_schema;
77 ElementDescription<XsdSchemaToken, XsdTagScope::Type>::Hash XsdSchemaParserContext::elementDescriptions() const
79 return m_elementDescriptions;
82 QXmlName XsdSchemaParserContext::createAnonymousName(const QString &targetNamespace) const
84 m_anonymousNameCounter.ref();
86 const QString name = QString::fromLatin1("__AnonymousClass_%1").arg((int)m_anonymousNameCounter);
88 return m_namePool->allocateQName(targetNamespace, name);
91 ElementDescription<XsdSchemaToken, XsdTagScope::Type>::Hash XsdSchemaParserContext::setupElementDescriptions()
93 enum
95 ReservedForElements = 60
98 ElementDescription<XsdSchemaToken, XsdTagScope::Type>::Hash elementDescriptions;
99 elementDescriptions.reserve(ReservedForElements);
102 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Schema];
103 description.optionalAttributes.reserve(10);
104 //description.tagToken = XsdSchemaToken::Schema;
105 description.optionalAttributes.insert(XsdSchemaToken::AttributeFormDefault);
106 description.optionalAttributes.insert(XsdSchemaToken::BlockDefault);
107 description.optionalAttributes.insert(XsdSchemaToken::DefaultAttributes);
108 description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
109 description.optionalAttributes.insert(XsdSchemaToken::ElementFormDefault);
110 description.optionalAttributes.insert(XsdSchemaToken::FinalDefault);
111 description.optionalAttributes.insert(XsdSchemaToken::Id);
112 description.optionalAttributes.insert(XsdSchemaToken::TargetNamespace);
113 description.optionalAttributes.insert(XsdSchemaToken::Version);
114 description.optionalAttributes.insert(XsdSchemaToken::XmlLanguage);
118 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Include];
119 //description.tagToken = XsdSchemaToken::Include;
120 description.requiredAttributes.insert(XsdSchemaToken::SchemaLocation);
121 description.optionalAttributes.insert(XsdSchemaToken::Id);
125 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Import];
126 //description.tagToken = XsdSchemaToken::Import;
127 description.optionalAttributes.insert(XsdSchemaToken::Id);
128 description.optionalAttributes.insert(XsdSchemaToken::Namespace);
129 description.optionalAttributes.insert(XsdSchemaToken::SchemaLocation);
133 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Redefine];
134 //description.tagToken = XsdSchemaToken::Redefine;
135 description.optionalAttributes.insert(XsdSchemaToken::Id);
136 description.requiredAttributes.insert(XsdSchemaToken::SchemaLocation);
140 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Override];
141 //description.tagToken = XsdSchemaToken::Override;
142 description.optionalAttributes.insert(XsdSchemaToken::Id);
143 description.requiredAttributes.insert(XsdSchemaToken::SchemaLocation);
147 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Annotation];
148 //description.tagToken = XsdSchemaToken::Annotation;
149 description.optionalAttributes.insert(XsdSchemaToken::Id);
153 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::AppInfo];
154 //description.tagToken = XsdSchemaToken::Appinfo;
155 description.optionalAttributes.insert(XsdSchemaToken::Source);
159 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Documentation];
160 //description.tagToken = XsdSchemaToken::Documentation;
161 description.optionalAttributes.insert(XsdSchemaToken::Source);
165 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::GlobalSimpleType];
166 //description.tagToken = XsdSchemaToken::SimpleType;
167 description.optionalAttributes.insert(XsdSchemaToken::Final);
168 description.optionalAttributes.insert(XsdSchemaToken::Id);
169 description.requiredAttributes.insert(XsdSchemaToken::Name);
173 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalSimpleType];
174 //description.tagToken = XsdSchemaToken::SimpleType;
175 description.optionalAttributes.insert(XsdSchemaToken::Id);
179 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::SimpleRestriction];
180 //description.tagToken = XsdSchemaToken::Restriction;
181 description.optionalAttributes.insert(XsdSchemaToken::Base);
182 description.optionalAttributes.insert(XsdSchemaToken::Id);
186 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::List];
187 //description.tagToken = XsdSchemaToken::List;
188 description.optionalAttributes.insert(XsdSchemaToken::Id);
189 description.optionalAttributes.insert(XsdSchemaToken::ItemType);
193 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Union];
194 //description.tagToken = XsdSchemaToken::Union;
195 description.optionalAttributes.insert(XsdSchemaToken::Id);
196 description.optionalAttributes.insert(XsdSchemaToken::MemberTypes);
200 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MinExclusiveFacet];
201 //description.tagToken = XsdSchemaToken::MinExclusive;
202 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
203 description.optionalAttributes.insert(XsdSchemaToken::Id);
204 description.requiredAttributes.insert(XsdSchemaToken::Value);
208 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MinInclusiveFacet];
209 //description.tagToken = XsdSchemaToken::MinInclusive;
210 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
211 description.optionalAttributes.insert(XsdSchemaToken::Id);
212 description.requiredAttributes.insert(XsdSchemaToken::Value);
216 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MaxExclusiveFacet];
217 //description.tagToken = XsdSchemaToken::MaxExclusive;
218 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
219 description.optionalAttributes.insert(XsdSchemaToken::Id);
220 description.requiredAttributes.insert(XsdSchemaToken::Value);
224 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MaxInclusiveFacet];
225 //description.tagToken = XsdSchemaToken::MaxInclusive;
226 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
227 description.optionalAttributes.insert(XsdSchemaToken::Id);
228 description.requiredAttributes.insert(XsdSchemaToken::Value);
232 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::TotalDigitsFacet];
233 //description.tagToken = XsdSchemaToken::TotalDigits;
234 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
235 description.optionalAttributes.insert(XsdSchemaToken::Id);
236 description.requiredAttributes.insert(XsdSchemaToken::Value);
240 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::FractionDigitsFacet];
241 //description.tagToken = XsdSchemaToken::FractionDigits;
242 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
243 description.optionalAttributes.insert(XsdSchemaToken::Id);
244 description.requiredAttributes.insert(XsdSchemaToken::Value);
248 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LengthFacet];
249 //description.tagToken = XsdSchemaToken::Length;
250 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
251 description.optionalAttributes.insert(XsdSchemaToken::Id);
252 description.requiredAttributes.insert(XsdSchemaToken::Value);
256 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MinLengthFacet];
257 //description.tagToken = XsdSchemaToken::MinLength;
258 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
259 description.optionalAttributes.insert(XsdSchemaToken::Id);
260 description.requiredAttributes.insert(XsdSchemaToken::Value);
264 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::MaxLengthFacet];
265 //description.tagToken = XsdSchemaToken::MaxLength;
266 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
267 description.optionalAttributes.insert(XsdSchemaToken::Id);
268 description.requiredAttributes.insert(XsdSchemaToken::Value);
272 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::EnumerationFacet];
273 //description.tagToken = XsdSchemaToken::Enumeration;
274 description.optionalAttributes.insert(XsdSchemaToken::Id);
275 description.requiredAttributes.insert(XsdSchemaToken::Value);
279 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::WhiteSpaceFacet];
280 //description.tagToken = XsdSchemaToken::WhiteSpace;
281 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
282 description.optionalAttributes.insert(XsdSchemaToken::Id);
283 description.requiredAttributes.insert(XsdSchemaToken::Value);
287 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::PatternFacet];
288 //description.tagToken = XsdSchemaToken::Pattern;
289 description.optionalAttributes.insert(XsdSchemaToken::Id);
290 description.requiredAttributes.insert(XsdSchemaToken::Value);
294 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::GlobalComplexType];
295 description.optionalAttributes.reserve(7);
296 //description.tagToken = XsdSchemaToken::ComplexType;
297 description.optionalAttributes.insert(XsdSchemaToken::Abstract);
298 description.optionalAttributes.insert(XsdSchemaToken::Block);
299 description.optionalAttributes.insert(XsdSchemaToken::DefaultAttributesApply);
300 description.optionalAttributes.insert(XsdSchemaToken::Final);
301 description.optionalAttributes.insert(XsdSchemaToken::Id);
302 description.optionalAttributes.insert(XsdSchemaToken::Mixed);
303 description.requiredAttributes.insert(XsdSchemaToken::Name);
307 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalComplexType];
308 //description.tagToken = XsdSchemaToken::ComplexType;
309 description.optionalAttributes.insert(XsdSchemaToken::Id);
310 description.optionalAttributes.insert(XsdSchemaToken::Mixed);
314 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::SimpleContent];
315 //description.tagToken = XsdSchemaToken::SimpleContent;
316 description.optionalAttributes.insert(XsdSchemaToken::Id);
320 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::SimpleContentRestriction];
321 //description.tagToken = XsdSchemaToken::Restriction;
322 description.requiredAttributes.insert(XsdSchemaToken::Base);
323 description.optionalAttributes.insert(XsdSchemaToken::Id);
327 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::SimpleContentExtension];
328 //description.tagToken = XsdSchemaToken::Extension;
329 description.requiredAttributes.insert(XsdSchemaToken::Base);
330 description.optionalAttributes.insert(XsdSchemaToken::Id);
334 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ComplexContent];
335 //description.tagToken = XsdSchemaToken::ComplexContent;
336 description.optionalAttributes.insert(XsdSchemaToken::Id);
337 description.optionalAttributes.insert(XsdSchemaToken::Mixed);
341 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ComplexContentRestriction];
342 //description.tagToken = XsdSchemaToken::Restriction;
343 description.requiredAttributes.insert(XsdSchemaToken::Base);
344 description.optionalAttributes.insert(XsdSchemaToken::Id);
348 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ComplexContentExtension];
349 //description.tagToken = XsdSchemaToken::Extension;
350 description.requiredAttributes.insert(XsdSchemaToken::Base);
351 description.optionalAttributes.insert(XsdSchemaToken::Id);
355 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::NamedGroup];
356 //description.tagToken = XsdSchemaToken::Group;
357 description.optionalAttributes.insert(XsdSchemaToken::Id);
358 description.requiredAttributes.insert(XsdSchemaToken::Name);
362 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ReferredGroup];
363 description.optionalAttributes.reserve(4);
364 //description.tagToken = XsdSchemaToken::Group;
365 description.optionalAttributes.insert(XsdSchemaToken::Id);
366 description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
367 description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
368 description.requiredAttributes.insert(XsdSchemaToken::Ref);
372 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::All];
373 //description.tagToken = XsdSchemaToken::All;
374 description.optionalAttributes.insert(XsdSchemaToken::Id);
378 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalAll];
379 //description.tagToken = XsdSchemaToken::All;
380 description.optionalAttributes.insert(XsdSchemaToken::Id);
381 description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
382 description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
386 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Choice];
387 //description.tagToken = XsdSchemaToken::Choice;
388 description.optionalAttributes.insert(XsdSchemaToken::Id);
392 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalChoice];
393 //description.tagToken = XsdSchemaToken::Choice;
394 description.optionalAttributes.insert(XsdSchemaToken::Id);
395 description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
396 description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
400 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Sequence];
401 //description.tagToken = XsdSchemaToken::Sequence;
402 description.optionalAttributes.insert(XsdSchemaToken::Id);
406 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalSequence];
407 //description.tagToken = XsdSchemaToken::Sequence;
408 description.optionalAttributes.insert(XsdSchemaToken::Id);
409 description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
410 description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
414 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::GlobalAttribute];
415 description.optionalAttributes.reserve(5);
416 //description.tagToken = XsdSchemaToken::Attribute;
417 description.optionalAttributes.insert(XsdSchemaToken::Default);
418 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
419 description.optionalAttributes.insert(XsdSchemaToken::Id);
420 description.requiredAttributes.insert(XsdSchemaToken::Name);
421 description.optionalAttributes.insert(XsdSchemaToken::Type);
425 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalAttribute];
426 description.optionalAttributes.reserve(8);
427 //description.tagToken = XsdSchemaToken::Attribute;
428 description.optionalAttributes.insert(XsdSchemaToken::Default);
429 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
430 description.optionalAttributes.insert(XsdSchemaToken::Form);
431 description.optionalAttributes.insert(XsdSchemaToken::Id);
432 description.optionalAttributes.insert(XsdSchemaToken::Name);
433 description.optionalAttributes.insert(XsdSchemaToken::Ref);
434 description.optionalAttributes.insert(XsdSchemaToken::Type);
435 description.optionalAttributes.insert(XsdSchemaToken::Use);
439 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::NamedAttributeGroup];
440 //description.tagToken = XsdSchemaToken::AttributeGroup;
441 description.optionalAttributes.insert(XsdSchemaToken::Id);
442 description.requiredAttributes.insert(XsdSchemaToken::Name);
446 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::ReferredAttributeGroup];
447 //description.tagToken = XsdSchemaToken::AttributeGroup;
448 description.optionalAttributes.insert(XsdSchemaToken::Id);
449 description.requiredAttributes.insert(XsdSchemaToken::Ref);
453 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::LocalElement];
454 description.optionalAttributes.reserve(11);
455 //description.tagToken = XsdSchemaToken::Element;
456 description.optionalAttributes.insert(XsdSchemaToken::Block);
457 description.optionalAttributes.insert(XsdSchemaToken::Default);
458 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
459 description.optionalAttributes.insert(XsdSchemaToken::Form);
460 description.optionalAttributes.insert(XsdSchemaToken::Id);
461 description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
462 description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
463 description.optionalAttributes.insert(XsdSchemaToken::Name);
464 description.optionalAttributes.insert(XsdSchemaToken::Nillable);
465 description.optionalAttributes.insert(XsdSchemaToken::Ref);
466 description.optionalAttributes.insert(XsdSchemaToken::Type);
470 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::GlobalElement];
471 description.optionalAttributes.reserve(10);
472 //description.tagToken = XsdSchemaToken::Element;
473 description.optionalAttributes.insert(XsdSchemaToken::Abstract);
474 description.optionalAttributes.insert(XsdSchemaToken::Block);
475 description.optionalAttributes.insert(XsdSchemaToken::Default);
476 description.optionalAttributes.insert(XsdSchemaToken::Final);
477 description.optionalAttributes.insert(XsdSchemaToken::Fixed);
478 description.optionalAttributes.insert(XsdSchemaToken::Id);
479 description.requiredAttributes.insert(XsdSchemaToken::Name);
480 description.optionalAttributes.insert(XsdSchemaToken::Nillable);
481 description.optionalAttributes.insert(XsdSchemaToken::SubstitutionGroup);
482 description.optionalAttributes.insert(XsdSchemaToken::Type);
486 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Unique];
487 //description.tagToken = XsdSchemaToken::Unique;
488 description.optionalAttributes.insert(XsdSchemaToken::Id);
489 description.requiredAttributes.insert(XsdSchemaToken::Name);
493 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Key];
494 //description.tagToken = XsdSchemaToken::Key;
495 description.optionalAttributes.insert(XsdSchemaToken::Id);
496 description.requiredAttributes.insert(XsdSchemaToken::Name);
500 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::KeyRef];
501 //description.tagToken = XsdSchemaToken::Keyref;
502 description.optionalAttributes.insert(XsdSchemaToken::Id);
503 description.requiredAttributes.insert(XsdSchemaToken::Name);
504 description.requiredAttributes.insert(XsdSchemaToken::Refer);
508 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Selector];
509 //description.tagToken = XsdSchemaToken::Selector;
510 description.optionalAttributes.insert(XsdSchemaToken::Id);
511 description.requiredAttributes.insert(XsdSchemaToken::Xpath);
512 description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
516 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Field];
517 //description.tagToken = XsdSchemaToken::Field;
518 description.optionalAttributes.insert(XsdSchemaToken::Id);
519 description.requiredAttributes.insert(XsdSchemaToken::Xpath);
520 description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
524 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Notation];
525 description.optionalAttributes.reserve(4);
526 //description.tagToken = XsdSchemaToken::Notation;
527 description.optionalAttributes.insert(XsdSchemaToken::Id);
528 description.requiredAttributes.insert(XsdSchemaToken::Name);
529 description.optionalAttributes.insert(XsdSchemaToken::Public);
530 description.optionalAttributes.insert(XsdSchemaToken::System);
534 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Any];
535 description.optionalAttributes.reserve(7);
536 //description.tagToken = XsdSchemaToken::Any;
537 description.optionalAttributes.insert(XsdSchemaToken::Id);
538 description.optionalAttributes.insert(XsdSchemaToken::MaxOccurs);
539 description.optionalAttributes.insert(XsdSchemaToken::MinOccurs);
540 description.optionalAttributes.insert(XsdSchemaToken::Namespace);
541 description.optionalAttributes.insert(XsdSchemaToken::NotNamespace);
542 description.optionalAttributes.insert(XsdSchemaToken::NotQName);
543 description.optionalAttributes.insert(XsdSchemaToken::ProcessContents);
547 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::AnyAttribute];
548 description.optionalAttributes.reserve(5);
549 //description.tagToken = XsdSchemaToken::AnyAttribute;
550 description.optionalAttributes.insert(XsdSchemaToken::Id);
551 description.optionalAttributes.insert(XsdSchemaToken::Namespace);
552 description.optionalAttributes.insert(XsdSchemaToken::NotNamespace);
553 description.optionalAttributes.insert(XsdSchemaToken::NotQName);
554 description.optionalAttributes.insert(XsdSchemaToken::ProcessContents);
558 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Alternative];
559 //description.tagToken = XsdSchemaToken::Alternative;
560 description.optionalAttributes.insert(XsdSchemaToken::Id);
561 description.optionalAttributes.insert(XsdSchemaToken::Test);
562 description.optionalAttributes.insert(XsdSchemaToken::Type);
563 description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
567 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::OpenContent];
568 //description.tagToken = XsdSchemaToken::OpenContent;
569 description.optionalAttributes.insert(XsdSchemaToken::Id);
570 description.optionalAttributes.insert(XsdSchemaToken::Mode);
574 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::DefaultOpenContent];
575 //description.tagToken = XsdSchemaToken::DefaultOpenContent;
576 description.optionalAttributes.insert(XsdSchemaToken::AppliesToEmpty);
577 description.optionalAttributes.insert(XsdSchemaToken::Id);
578 description.optionalAttributes.insert(XsdSchemaToken::Mode);
582 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Assert];
583 //description.tagToken = XsdSchemaToken::Assert;
584 description.optionalAttributes.insert(XsdSchemaToken::Id);
585 description.requiredAttributes.insert(XsdSchemaToken::Test);
586 description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
590 ElementDescription<XsdSchemaToken, XsdTagScope::Type> &description = elementDescriptions[XsdTagScope::Assertion];
591 //description.tagToken = XsdSchemaToken::Assertion;
592 description.optionalAttributes.insert(XsdSchemaToken::Id);
593 description.requiredAttributes.insert(XsdSchemaToken::Test);
594 description.optionalAttributes.insert(XsdSchemaToken::XPathDefaultNamespace);
597 Q_ASSERT_X(elementDescriptions.count() == ReservedForElements, Q_FUNC_INFO,
598 qPrintable(QString::fromLatin1("Expected is %1, actual is %2.").arg(ReservedForElements).arg(elementDescriptions.count())));
600 return elementDescriptions;
603 QT_END_NAMESPACE