Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
181 lines (180 sloc) 7.33 KB
<?xml version="1.0" encoding="UTF-8"?>
<!--
###############################################################################
#
# Copyright (C) 2017 Tom Kralidis (tomkralidis@gmail.com)
# Copyright (C) 2017 Angelos Tzotsos (gcpp.kalxas@gmail.com)
#
# This source is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This code is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
###############################################################################
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:rm="http://qgis.org/resource-metadata/1.0" targetNamespace="http://qgis.org/resource-metadata/1.0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xs:include schemaLocation="qgis-base-metadata.xsd"/>
<xs:element name="ResourceMetadata" type="rm:ResourceMetadataType" base="rm:BaseMetadataType">
<xs:annotation>
<xs:appinfo>QGIS Resource Metadata Schema</xs:appinfo>
<xs:documentation>Copyright (C) 2017 Tom Kralidis (tomkralidis@gmail.com)</xs:documentation>
<xs:documentation>Copyright (C) 2017 Angelos Tzotsos (gcpp.kalxas@gmail.com)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="ResourceMetadataType">
<xs:sequence>
<xs:element name="fees" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Any fees associated with a given resource.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="constraints" type="rm:constraintsType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>List of constraints associated with a given resource.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="rights" type="xs:string" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Attribution or copyright associated with a given resource.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="license" type="xs:string" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>License associated with a given resource (examples: http://opendefinition.org/licenses/).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="encoding" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Character encoding of the data of a given resource.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="crs" type="xs:string">
<xs:annotation>
<xs:documentation>Coordinate reference system associated with the data of a given resource. Examples:
* EPSG:EPSGCODE
* http://www.opengis.net/def/crs/EPSG/0/EPSGCODE (URI Style 1)
* http://www.opengis.net/gml/srs/epsg.xml#EPSGCODE (URI Style 2)
* urn:EPSG:geographicCRS:EPSGCODE
* urn:ogc:def:crs:EPSG::EPSGCODE
* urn:ogc:def:crs:EPSG:EPSGCODE
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="extent" type="rm:extentType" maxOccurs="1">
<xs:annotation>
<xs:documentation>Spatial and temporal extents associated with a given resource.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="version" use="required" fixed="1.0">
<xs:annotation>
<xs:documentation>Version of QGIS Resource Metadata schema used. </xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="constraintsType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string">
<xs:annotation>
<xs:documentation>Type of constraint. Suggested types are 'access', 'other'.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="extentType">
<xs:sequence>
<xs:element name="spatial" type="rm:spatialType" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Geospatial Extent of a given resource.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="temporal" type="rm:temporalType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Temporal extent associated with a given resource. It is advised to use ISO 8601 for consistency.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="spatialType">
<xs:attribute name="dimensions" type="xs:integer" default="2"/>
<xs:attribute name="crs" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Coordinate reference system.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="minx" type="xs:decimal" use="required">
<xs:annotation>
<xs:documentation>Minimum x value according to crs.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="miny" type="xs:decimal" use="required">
<xs:annotation>
<xs:documentation>Minimum y value according to crs.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="minz" type="xs:decimal" use="optional">
<xs:annotation>
<xs:documentation>Minimum z value according to crs.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxx" type="xs:decimal" use="required">
<xs:annotation>
<xs:documentation>Maximum x value according to crs.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxy" type="xs:decimal" use="required">
<xs:annotation>
<xs:documentation>Maximum y value according to crs.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxz" type="xs:decimal" use="optional">
<xs:annotation>
<xs:documentation>Maximum z value according to crs.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="temporalType">
<xs:choice>
<xs:element name="instant" type="xs:dateTime">
<xs:annotation>
<xs:documentation>Single point in time.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="period" type="rm:periodType">
<xs:annotation>
<xs:documentation>Time period or envelope.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="periodType">
<xs:sequence>
<xs:element name="start" type="xs:dateTime">
<xs:annotation>
<xs:documentation>Begin date/time.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="end" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>End date/time.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="indeterminatePosition" type="xs:boolean">
<xs:annotation>
<xs:documentation>Whether resource has no end date/time (i.e. continuous acquisition).</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:schema>