Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Project: GML registry 4 : * Purpose: GML reader 5 : * Author: Even Rouault, <even dot rouault at spatialys.com> 6 : * 7 : ****************************************************************************** 8 : * Copyright (c) 2013, Even Rouault <even dot rouault at spatialys.com> 9 : * 10 : * SPDX-License-Identifier: MIT 11 : ****************************************************************************/ 12 : 13 : #ifndef GMLREGISTRY_H_INCLUDED 14 : #define GMLREGISTRY_H_INCLUDED 15 : 16 : #include "cpl_string.h" 17 : #include "cpl_minixml.h" 18 : 19 : #include <vector> 20 : 21 : class GMLRegistryFeatureType 22 : { 23 : public: 24 : CPLString osElementName{}; 25 : CPLString osElementValue{}; 26 : CPLString osSchemaLocation{}; 27 : CPLString osGFSSchemaLocation{}; 28 : 29 : bool Parse(const char *pszRegistryFilename, CPLXMLNode *psNode); 30 : }; 31 : 32 : class GMLRegistryNamespace 33 : { 34 : public: 35 655 : GMLRegistryNamespace() = default; 36 : 37 : CPLString osPrefix{}; 38 : CPLString osURI{}; 39 : bool bUseGlobalSRSName = false; 40 : std::vector<GMLRegistryFeatureType> aoFeatureTypes{}; 41 : 42 : bool Parse(const char *pszRegistryFilename, CPLXMLNode *psNode); 43 : }; 44 : 45 : class GMLRegistry 46 : { 47 : CPLString osRegistryPath{}; 48 : 49 : public: 50 : std::vector<GMLRegistryNamespace> aoNamespaces{}; 51 : 52 110 : explicit GMLRegistry(const CPLString &osRegistryPathIn) 53 110 : : osRegistryPath(osRegistryPathIn) 54 : { 55 110 : } 56 : 57 : bool Parse(); 58 : }; 59 : 60 : #endif /* GMLREGISTRY_H_INCLUDED */