diff options
Diffstat (limited to 'src/xmlpatterns/type/qcommonsequencetypes.cpp')
-rw-r--r-- | src/xmlpatterns/type/qcommonsequencetypes.cpp | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/src/xmlpatterns/type/qcommonsequencetypes.cpp b/src/xmlpatterns/type/qcommonsequencetypes.cpp new file mode 100644 index 0000000..7da810e --- /dev/null +++ b/src/xmlpatterns/type/qcommonsequencetypes.cpp @@ -0,0 +1,132 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtXmlPatterns module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qebvtype_p.h" +#include "qgenericsequencetype_p.h" +#include "qnonetype_p.h" + +#include "qcommonsequencetypes_p.h" + +/* To avoid the static initialization fiasco, we put the builtin types in this compilation unit, since + * the sequence types depends on them. */ +#include "qbuiltintypes.cpp" + +QT_BEGIN_NAMESPACE + +using namespace QPatternist; + +// STATIC DATA +#define st(var, type, card) \ +const SequenceType::Ptr \ +CommonSequenceTypes::var(new GenericSequenceType(BuiltinTypes::type, \ + Cardinality::card())) + +/* Alphabetically. */ +st(ExactlyOneAnyURI, xsAnyURI, exactlyOne); +st(ExactlyOneAtomicType, xsAnyAtomicType, exactlyOne); +st(ExactlyOneAttribute, attribute, exactlyOne); +st(ExactlyOneBase64Binary, xsBase64Binary, exactlyOne); +st(ExactlyOneBoolean, xsBoolean, exactlyOne); +st(ExactlyOneComment, comment, exactlyOne); +st(ExactlyOneDateTime, xsDateTime, exactlyOne); +st(ExactlyOneDate, xsDate, exactlyOne); +st(ExactlyOneDayTimeDuration, xsDayTimeDuration, exactlyOne); +st(ExactlyOneDecimal, xsDecimal, exactlyOne); +st(ExactlyOneDocumentNode, document, exactlyOne); +st(OneOrMoreDocumentNodes, document, oneOrMore); +st(ExactlyOneDouble, xsDouble, exactlyOne); +st(ExactlyOneDuration, xsDuration, exactlyOne); +st(ExactlyOneElement, element, exactlyOne); +st(ExactlyOneFloat, xsFloat, exactlyOne); +st(ExactlyOneGDay, xsGDay, exactlyOne); +st(ExactlyOneGMonthDay, xsGMonthDay, exactlyOne); +st(ExactlyOneGMonth, xsGMonth, exactlyOne); +st(ExactlyOneGYearMonth, xsGYearMonth, exactlyOne); +st(ExactlyOneGYear, xsGYear, exactlyOne); +st(ExactlyOneHexBinary, xsHexBinary, exactlyOne); +st(ExactlyOneInteger, xsInteger, exactlyOne); +st(ExactlyOneItem, item, exactlyOne); +st(ExactlyOneNCName, xsNCName, exactlyOne); +st(ExactlyOneNode, node, exactlyOne); +st(ExactlyOneNumeric, numeric, exactlyOne); +st(ExactlyOneProcessingInstruction, pi, exactlyOne); +st(ExactlyOneQName, xsQName, exactlyOne); +st(ExactlyOneString, xsString, exactlyOne); +st(ExactlyOneTextNode, text, exactlyOne); +st(ExactlyOneTime, xsTime, exactlyOne); +st(ExactlyOneUntypedAtomic, xsUntypedAtomic, exactlyOne); +st(ExactlyOneYearMonthDuration, xsYearMonthDuration, exactlyOne); +st(OneOrMoreItems, item, oneOrMore); +st(ZeroOrMoreAtomicTypes, xsAnyAtomicType, zeroOrMore); +st(ZeroOrMoreElements, element, zeroOrMore); +st(ZeroOrMoreIntegers, xsInteger, zeroOrMore); +st(ZeroOrMoreItems, item, zeroOrMore); +st(ZeroOrMoreNodes, node, zeroOrMore); +st(ZeroOrMoreStrings, xsString, zeroOrMore); +st(ZeroOrOneAnyURI, xsAnyURI, zeroOrOne); +st(ZeroOrOneAtomicType, xsAnyAtomicType, zeroOrOne); +st(ZeroOrOneBoolean, xsBoolean, zeroOrOne); +st(ZeroOrOneDateTime, xsDateTime, zeroOrOne); +st(ZeroOrOneDate, xsDate, zeroOrOne); +st(ZeroOrOneDayTimeDuration, xsDayTimeDuration, zeroOrOne); +st(ZeroOrOneDecimal, xsDecimal, zeroOrOne); +st(ZeroOrOneDocumentNode, document, zeroOrOne); +st(ZeroOrOneDuration, xsDuration, zeroOrOne); +st(ZeroOrOneInteger, xsInteger, zeroOrOne); +st(ZeroOrOneItem, item, zeroOrOne); +st(ZeroOrOneNCName, xsNCName, zeroOrOne); +st(ZeroOrOneNode, node, zeroOrOne); +st(ZeroOrOneNumeric, numeric, zeroOrOne); +st(ZeroOrOneQName, xsQName, zeroOrOne); +st(ZeroOrOneString, xsString, zeroOrOne); +st(ZeroOrOneTextNode, text, zeroOrOne); +st(ZeroOrOneTime, xsTime, zeroOrOne); +st(ZeroOrOneYearMonthDuration, xsYearMonthDuration, zeroOrOne); + +#undef st + +/* Special cases. */ +const EmptySequenceType::Ptr CommonSequenceTypes::Empty (new EmptySequenceType()); +const NoneType::Ptr CommonSequenceTypes::None (new NoneType()); +const SequenceType::Ptr CommonSequenceTypes::EBV (new EBVType()); + + +QT_END_NAMESPACE |