1<?xml version="1.0"?> 2<!-- 3/****************************************************************************** 4 * $Id: netcdf_config.xsd ca74100efca7e6715fc97a5a0174ebfc439db0d3 2021-02-27 13:45:16 -0500 luzpaz $ 5 * 6 * Project: netCDF driver 7 * Purpose: Schema of netCDF writer configuration files 8 * Author: Even Rouault, <even dot rouault at spatialys dot com> 9 * 10 ********************************************************************** 11 * Copyright (c) 2016, Even Rouault <even dot rouault at spatialys dot com> 12 * 13 * Permission is hereby granted, free of charge, to any person obtaining a 14 * copy of this software and associated documentation files (the "Software"), 15 * to deal in the Software without restriction, including without limitation 16 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 17 * and/or sell copies of the Software, and to permit persons to whom the 18 * Software is furnished to do so, subject to the following conditions: 19 * 20 * The above copyright notice and this permission notice shall be included 21 * in all copies or substantial portions of the Software. 22 * 23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 24 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 26 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 29 * DEALINGS IN THE SOFTWARE. 30 ****************************************************************************/ 31--> 32<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 33 <xs:element name="Configuration"> 34 <xs:complexType> 35 <xs:sequence> 36 <xs:element name="DatasetCreationOption" type="optionType" minOccurs="0" maxOccurs="unbounded"/> 37 <xs:element name="LayerCreationOption" type="optionType" minOccurs="0" maxOccurs="unbounded"> 38 <xs:annotation><xs:documentation> 39 Define a layer creation option that applies to all layers. 40 </xs:documentation></xs:annotation> 41 </xs:element> 42 <xs:element name="Attribute" type="attributeType" minOccurs="0" maxOccurs="unbounded"> 43 <xs:annotation><xs:documentation> 44 Define a global attribute that must be written (or removed) and applies to all layers. 45 </xs:documentation></xs:annotation> 46 </xs:element> 47 <xs:element name="Field" type="fieldType" minOccurs="0" maxOccurs="unbounded"> 48 <xs:annotation><xs:documentation> 49 Define the characteristics of an OGR field / netCDF variable that applies to all layers (that actually uses it) 50 </xs:documentation></xs:annotation> 51 </xs:element> 52 <xs:element name="Layer" type="layerType" minOccurs="0" maxOccurs="unbounded"> 53 <xs:annotation><xs:documentation> 54 Define layer specific settings for layer creaetion options, fields and attributes. 55 </xs:documentation></xs:annotation> 56 </xs:element> 57 </xs:sequence> 58 </xs:complexType> 59 </xs:element> 60 61 <xs:complexType name="optionType"> 62 <xs:attribute name="name" type="xs:string"/> 63 <xs:attribute name="value" type="xs:string"/> 64 </xs:complexType> 65 66 <xs:complexType name="attributeType"> 67 <xs:attribute name="name" type="xs:string"/> 68 <xs:attribute name="value" type="xs:string"> 69 <xs:annotation><xs:documentation> 70 Value to set as attribute, or empty string 71 to delete an existing attribute 72 </xs:documentation></xs:annotation> 73 </xs:attribute> 74 <xs:attribute name="type" use="optional"> 75 <xs:simpleType> 76 <xs:restriction base="xs:string"> 77 <xs:enumeration value="string"/> 78 <xs:enumeration value="integer"/> 79 <xs:enumeration value="double"/> 80 </xs:restriction> 81 </xs:simpleType> 82 </xs:attribute> 83 </xs:complexType> 84 85 <xs:complexType name="fieldType"> 86 <xs:sequence> 87 <xs:element name="Attribute" type="attributeType" minOccurs="0" maxOccurs="unbounded"> 88 <xs:annotation><xs:documentation> 89 Define an attribute that must be written (or removed) from a OGR field / netCDF variable. 90 </xs:documentation></xs:annotation> 91 </xs:element> 92 </xs:sequence> 93 <xs:attribute name="name" type="xs:string" use="optional"> 94 <xs:annotation><xs:documentation>OGR field name.</xs:documentation></xs:annotation> 95 </xs:attribute> 96 <xs:attribute name="netcdf_name" type="xs:string" use="optional"> 97 <xs:annotation><xs:documentation>netCDF variable name. When both name 98 and netcdf_name are set, the OGR field {name} will be written as the 99 netCDF {netcdf_name} variable. When netcdf_name is set, but name is none, 100 then the Field definition will match an implicitly created netCDF variable, 101 such as x/lon, y/lat, z, ... 102 </xs:documentation></xs:annotation> 103 </xs:attribute> 104 <xs:attribute name="main_dim" type="xs:string" use="optional"> 105 <xs:annotation><xs:documentation> 106 Name of the main dimension against which the variable must be indexed. 107 If not set, the record dimension will be used. Only useful when using 108 a layer with FeatureType!=Point. 109 </xs:documentation></xs:annotation> 110 </xs:attribute> 111 </xs:complexType> 112 113 <xs:complexType name="layerType"> 114 <xs:sequence> 115 <xs:element name="LayerCreationOption" type="optionType" minOccurs="0" maxOccurs="unbounded"> 116 <xs:annotation><xs:documentation> 117 Define a layer creation option. Overrides or appended to 118 existing global layer creation options. 119 </xs:documentation></xs:annotation> 120 </xs:element> 121 <xs:element name="Attribute" type="attributeType" minOccurs="0" maxOccurs="unbounded"> 122 <xs:annotation><xs:documentation> 123 Define a global attribute that must be written (or removed). 124 Overrides or appended to existing global attributes. 125 </xs:documentation></xs:annotation> 126 </xs:element> 127 <xs:element name="Field" type="fieldType" minOccurs="0" maxOccurs="unbounded"> 128 <xs:annotation><xs:documentation> 129 Define the characteristics of an OGR field / netCDF variable 130 (that must exist as an explicit OGR field, or an implicitly created netCDF variable). 131 Supersedes global Field definition. 132 </xs:documentation></xs:annotation> 133 </xs:element> 134 </xs:sequence> 135 <xs:attribute name="name" type="xs:string"> 136 <xs:annotation><xs:documentation>OGR layer name.</xs:documentation></xs:annotation> 137 </xs:attribute> 138 <xs:attribute name="netcdf_name" type="xs:string" use="optional"> 139 <xs:annotation><xs:documentation>netCDF group name.</xs:documentation></xs:annotation> 140 </xs:attribute> 141 </xs:complexType> 142 143</xs:schema> 144