Skip to content

Commit 5c4a332

Browse files
committedApr 4, 2017
Added draft XML schema for QGIS metadata
1 parent 85e83e1 commit 5c4a332

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed
 
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<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">
3+
<xs:element name="ResourceMetadata" type="rm:ResourceMetadataType">
4+
<xs:annotation>
5+
<xs:documentation>Comment describing your root element</xs:documentation>
6+
</xs:annotation>
7+
</xs:element>
8+
<xs:complexType name="ResourceMetadataType">
9+
<xs:sequence>
10+
<xs:element name="identifier" type="xs:string"/>
11+
<xs:element name="parentidentifier" type="xs:string" minOccurs="0"/>
12+
<xs:element name="language" type="xs:string"/>
13+
<xs:element name="type" type="xs:string"/>
14+
<xs:element name="title" type="xs:string"/>
15+
<xs:element name="abstract" type="xs:string"/>
16+
<xs:element name="keywords" type="rm:keywordsType" minOccurs="0" maxOccurs="unbounded"/>
17+
<xs:element name="fees" type="xs:string" minOccurs="0"/>
18+
<xs:element name="constraints" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
19+
<xs:element name="rights" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
20+
<xs:element name="encoding" type="xs:string" minOccurs="0"/>
21+
<xs:element name="crs" type="xs:string"/>
22+
<xs:element name="extent" type="rm:extentType" maxOccurs="1"/>
23+
<xs:element name="contact" type="rm:contactType" maxOccurs="unbounded"/>
24+
<xs:element name="links" type="rm:linksType"/>
25+
</xs:sequence>
26+
<xs:attribute name="version" use="required" fixed="1.0"/>
27+
</xs:complexType>
28+
<xs:complexType name="keywordsType">
29+
<xs:sequence>
30+
<xs:element name="keyword" maxOccurs="unbounded"/>
31+
</xs:sequence>
32+
<xs:attribute name="vocabulary" type="xs:string"/>
33+
</xs:complexType>
34+
<xs:complexType name="extentType">
35+
<xs:sequence>
36+
<xs:element name="spatial" type="rm:spatialType" maxOccurs="unbounded"/>
37+
<xs:element name="temporal" type="rm:temporalType" minOccurs="0" maxOccurs="unbounded"/>
38+
</xs:sequence>
39+
</xs:complexType>
40+
<xs:complexType name="spatialType">
41+
<xs:attribute name="dimensions" type="xs:integer" default="2"/>
42+
<xs:attribute name="crs" type="xs:string" use="required"/>
43+
<xs:attribute name="minx" type="xs:decimal" use="required"/>
44+
<xs:attribute name="miny" type="xs:decimal" use="required"/>
45+
<xs:attribute name="minz" type="xs:decimal" use="optional"/>
46+
<xs:attribute name="maxx" type="xs:decimal" use="required"/>
47+
<xs:attribute name="maxy" type="xs:decimal" use="required"/>
48+
<xs:attribute name="maxz" type="xs:decimal" use="optional"/>
49+
</xs:complexType>
50+
<xs:complexType name="temporalType">
51+
<xs:choice>
52+
<xs:element name="instant" type="xs:dateTime"/>
53+
<xs:element name="period" type="rm:periodType"/>
54+
</xs:choice>
55+
</xs:complexType>
56+
<xs:complexType name="periodType">
57+
<xs:sequence>
58+
<xs:element name="start" type="xs:dateTime"/>
59+
<xs:element name="end" type="xs:dateTime" minOccurs="0"/>
60+
</xs:sequence>
61+
<xs:attribute name="indeterminatePosition" type="xs:boolean"/>
62+
</xs:complexType>
63+
<xs:complexType name="contactType">
64+
<xs:sequence>
65+
<xs:element name="name" type="xs:string"/>
66+
<xs:element name="organization" type="xs:string" minOccurs="0"/>
67+
<xs:element name="position" type="xs:string" minOccurs="0"/>
68+
<xs:element name="address" type="rm:addressType" minOccurs="0"/>
69+
<xs:element name="voice" type="xs:string" minOccurs="0"/>
70+
<xs:element name="fax" type="xs:string" minOccurs="0"/>
71+
<xs:element name="email" type="xs:string" minOccurs="0"/>
72+
<xs:element name="role" type="xs:string" minOccurs="0"/>
73+
</xs:sequence>
74+
</xs:complexType>
75+
<xs:complexType name="addressType">
76+
<xs:sequence>
77+
<xs:element name="type" type="xs:string" minOccurs="0"/>
78+
<xs:element name="address" type="xs:string" minOccurs="0"/>
79+
<xs:element name="city" type="xs:string" minOccurs="0"/>
80+
<xs:element name="administrativearea" type="xs:string" minOccurs="0"/>
81+
<xs:element name="postalcode" type="xs:string" minOccurs="0"/>
82+
<xs:element name="country" type="xs:string" minOccurs="0"/>
83+
</xs:sequence>
84+
</xs:complexType>
85+
<xs:complexType name="linksType">
86+
<xs:sequence>
87+
<xs:element name="link" type="rm:linkType" maxOccurs="unbounded"/>
88+
</xs:sequence>
89+
</xs:complexType>
90+
<xs:complexType name="linkType">
91+
<xs:attributeGroup ref="rm:linkAttrs"/>
92+
</xs:complexType>
93+
<xs:attributeGroup name="linkAttrs">
94+
<xs:attribute name="name" type="xs:string"/>
95+
<xs:attribute name="type" type="xs:string"/>
96+
<xs:attribute name="description" type="xs:string" use="optional"/>
97+
<xs:attribute name="url" type="xs:anyURI" use="required"/>
98+
<xs:attribute name="format" type="xs:string" use="optional"/>
99+
<xs:attribute name="mimeType" type="xs:string" use="optional"/>
100+
<xs:attribute name="size" type="xs:string" use="optional"/>
101+
</xs:attributeGroup>
102+
</xs:schema>

0 commit comments

Comments
 (0)
Please sign in to comment.