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