/**************************************************************************** ** ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtXmlPatterns module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Digia. For licensing terms and ** conditions see http://qt.digia.com/licensing. For further information ** use the contact form at http://qt.digia.com/contact-us. ** ** 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, Digia gives you certain additional ** rights. These rights are described in the Digia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** ** $QT_END_LICENSE$ ** ****************************************************************************/ // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists purely as an // implementation detail. This header file may change from version to // version without notice, or even be removed. // // We mean it. #ifndef Patternist_CommonSequenceTypes_H #define Patternist_CommonSequenceTypes_H #include "qemptysequencetype_p.h" #include "qnonetype_p.h" QT_BEGIN_HEADER QT_BEGIN_NAMESPACE namespace QPatternist { /** * @short Provides access to singleton instances of SequenceType sub-classes. * * @ingroup Patternist_types * @author Frans Englich */ class Q_AUTOTEST_EXPORT CommonSequenceTypes { public: /** * xs:anyAtomicType? */ static const SequenceType::Ptr ZeroOrOneAtomicType; /** * xs:anyAtomicType */ static const SequenceType::Ptr ExactlyOneAtomicType; /** * xs:anyAtomicType* */ static const SequenceType::Ptr ZeroOrMoreAtomicTypes; /** * item() */ static const SequenceType::Ptr ExactlyOneItem; /** * item()* */ static const SequenceType::Ptr ZeroOrMoreItems; /** * item()? */ static const SequenceType::Ptr ZeroOrOneItem; /** * item()+ */ static const SequenceType::Ptr OneOrMoreItems; /** * The empty sequence, empty-sequence(). */ static const EmptySequenceType::Ptr Empty; /** * The special type @c none. Used for the function fn:error(), for example. */ static const NoneType::Ptr None; /** * xs:anyURI */ static const SequenceType::Ptr ExactlyOneAnyURI; /** * xs:boolean */ static const SequenceType::Ptr ExactlyOneBoolean; /** * xs:boolean? */ static const SequenceType::Ptr ZeroOrOneBoolean; /** * xs:untypedAtomic */ static const SequenceType::Ptr ExactlyOneUntypedAtomic; /** * xs:integer */ static const SequenceType::Ptr ExactlyOneInteger; /** * xs:integer? */ static const SequenceType::Ptr ZeroOrOneInteger; /** * xs:decimal? */ static const SequenceType::Ptr ZeroOrOneDecimal; /** * xs:integer* */ static const SequenceType::Ptr ZeroOrMoreIntegers; /** * xs:double */ static const SequenceType::Ptr ExactlyOneDouble; /** * xs:decimal */ static const SequenceType::Ptr ExactlyOneDecimal; /** * xs:float */ static const SequenceType::Ptr ExactlyOneFloat; /** * xs:QName */ static const SequenceType::Ptr ExactlyOneQName; /** * xs:string */ static const SequenceType::Ptr ExactlyOneString; /** * xs:string? */ static const SequenceType::Ptr ZeroOrOneString; /** * xs:string* */ static const SequenceType::Ptr ZeroOrMoreStrings; /** * xs:NCName? */ static const SequenceType::Ptr ZeroOrOneNCName; /** * xs:NCName */ static const SequenceType::Ptr ExactlyOneNCName; /** * xs:QName? */ static const SequenceType::Ptr ZeroOrOneQName; /** * The artificial type in XPath 2.0 that covers @c xs:double, @c xs:float, * @c xs:decimal, with cardinality zero or one. * * @see XML Path Language * (XPath) 2.0, definition for Numeric * @see XQuery 1.0 * and XPath 2.0 Functions and Operators, 1.3 Function Signatures and Descriptions * @see BuiltinTypes::numeric */ static const SequenceType::Ptr ZeroOrOneNumeric; /** * @c numeric */ static const SequenceType::Ptr ExactlyOneNumeric; /** * node()? */ static const SequenceType::Ptr ZeroOrOneNode; /** * node() */ static const SequenceType::Ptr ExactlyOneNode; /** * node()* */ static const SequenceType::Ptr ZeroOrMoreNodes; /** * element() */ static const SequenceType::Ptr ExactlyOneElement; /** * processing-instruction() */ static const SequenceType::Ptr ExactlyOneProcessingInstruction; /** * attribute() */ static const SequenceType::Ptr ExactlyOneAttribute; /** * text() */ static const SequenceType::Ptr ExactlyOneTextNode; /** * text()? */ static const SequenceType::Ptr ZeroOrOneTextNode; /** * comment() */ static const SequenceType::Ptr ExactlyOneComment; /** * element()* */ static const SequenceType::Ptr ZeroOrMoreElements; /** * document-node()? */ static const SequenceType::Ptr ZeroOrOneDocumentNode; /** * document-node() */ static const SequenceType::Ptr ExactlyOneDocumentNode; /** * document-node()+ */ static const SequenceType::Ptr OneOrMoreDocumentNodes; /** * Identifiers all values which the Effective %Boolean Value * can be extracted from. */ static const SequenceType::Ptr EBV; /** * xs:anyURI? */ static const SequenceType::Ptr ZeroOrOneAnyURI; /** * xs:hexBinary */ static const SequenceType::Ptr ExactlyOneHexBinary; /** * xs:base64Binary */ static const SequenceType::Ptr ExactlyOneBase64Binary; /** * xs:date */ static const SequenceType::Ptr ExactlyOneDate; /** * xs:dateTime */ static const SequenceType::Ptr ExactlyOneDateTime; /** * xs:dayTimeDuration */ static const SequenceType::Ptr ExactlyOneDayTimeDuration; /** * xs:duration */ static const SequenceType::Ptr ExactlyOneDuration; /** * xs:gDay */ static const SequenceType::Ptr ExactlyOneGDay; /** * xs:gMonth */ static const SequenceType::Ptr ExactlyOneGMonth; /** * xs:gMonthDay */ static const SequenceType::Ptr ExactlyOneGMonthDay; /** * xs:gYear */ static const SequenceType::Ptr ExactlyOneGYear; /** * xs:gYearMonth */ static const SequenceType::Ptr ExactlyOneGYearMonth; /** * xs:yearMonthDuration */ static const SequenceType::Ptr ExactlyOneYearMonthDuration; /** * xs:time */ static const SequenceType::Ptr ExactlyOneTime; /** * xs:time? */ static const SequenceType::Ptr ZeroOrOneDate; /** * xs:dateTime? */ static const SequenceType::Ptr ZeroOrOneDateTime; /** * xs:dayTimeDuration? */ static const SequenceType::Ptr ZeroOrOneDayTimeDuration; /** * xs:duration? */ static const SequenceType::Ptr ZeroOrOneDuration; /** * xs:time? */ static const SequenceType::Ptr ZeroOrOneTime; /** * xs:yearMonthDuration? */ static const SequenceType::Ptr ZeroOrOneYearMonthDuration; private: /** * The constructor is private and has no implementation, * because this class is not meant to be instantiated. * * It should only be used via its static members. */ inline CommonSequenceTypes(); Q_DISABLE_COPY(CommonSequenceTypes) }; } QT_END_NAMESPACE QT_END_HEADER #endif