File indexing completed on 2024-05-12 15:59:16
0001 /* 0002 * SPDX-FileCopyrightText: 2007, 2009 Cyrille Berger <cberger@cberger.net> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #include "kis_meta_data_schema.h" 0008 0009 #include <QHash> 0010 0011 class QDomElement; 0012 0013 namespace KisMetaData 0014 { 0015 struct Q_DECL_HIDDEN Schema::Private { 0016 QString uri; 0017 QString prefix; 0018 struct EntryInfo { 0019 const TypeInfo* propertyType; 0020 QHash<QString, TypeInfo*> qualifiers; 0021 }; 0022 QHash<QString, EntryInfo> types; 0023 QHash<QString, const TypeInfo*> structures; 0024 bool load(const QString&); 0025 private: 0026 void parseStructures(QDomElement&); 0027 void parseStructure(QDomElement&); 0028 void parseProperties(QDomElement&); 0029 bool parseEltType(QDomElement&, EntryInfo& entryInfo, QString& name, bool ignoreStructure, bool ignoreName); 0030 const TypeInfo* parseAttType(QDomElement&, bool ignoreStructure); 0031 const TypeInfo* parseEmbType(QDomElement&, bool ignoreStructure); 0032 const TypeInfo* parseChoice(QDomElement&); 0033 }; 0034 }