Imported Upstream version 1.4.1
[routino] / xml / routino-profiles.xsd
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <!-- ============================================================
4      $Header$
5
6      An XML Schema Definition for the Routino profile XML format
7
8      Part of the Routino routing software.
9      ============================================================
10      This file Copyright 2010 Andrew M. Bishop
11
12      This program is free software: you can redistribute it and/or modify
13      it under the terms of the GNU Affero General Public License as published by
14      the Free Software Foundation, either version 3 of the License, or
15      (at your option) any later version.
16      ============================================================ -->
17
18 <xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
19
20   <!-- The top level Routino profiles -->
21
22   <xsd:element name="routino-profiles" type="RoutinoProfilesType"/>
23
24   <xsd:complexType name="RoutinoProfilesType">
25     <xsd:sequence>
26       <xsd:element name="profile" type="profileType" minOccurs="0" maxOccurs="unbounded"/>
27     </xsd:sequence>
28   </xsd:complexType>
29
30   <xsd:complexType name="profileType">
31     <xsd:sequence>
32       <xsd:element name="speeds"       type="speedsType"      />
33       <xsd:element name="preferences"  type="preferencesType" />
34       <xsd:element name="properties"   type="propertiesType"  />
35       <xsd:element name="restrictions" type="restrictionsType"/>
36     </xsd:sequence>
37     <xsd:attribute name="name"         type="xsd:string"/>
38     <xsd:attribute name="transport"    type="xsd:string"/>
39   </xsd:complexType>
40
41   <!-- The second level preferences, speed, properties and restrictions -->
42
43   <xsd:complexType name="speedsType">
44     <xsd:sequence>
45       <xsd:element name="speed" type="speedType" maxOccurs="unbounded"/>
46     </xsd:sequence>
47   </xsd:complexType>
48
49   <xsd:complexType name="preferencesType">
50     <xsd:sequence>
51       <xsd:element name="preference" type="preferenceType" maxOccurs="unbounded"/>
52     </xsd:sequence>
53   </xsd:complexType>
54
55   <xsd:complexType name="propertiesType">
56     <xsd:sequence>
57       <xsd:element name="property" type="propertyType" maxOccurs="unbounded"/>
58     </xsd:sequence>
59   </xsd:complexType>
60
61   <xsd:complexType name="restrictionsType">
62     <xsd:sequence>
63       <xsd:element name="oneway" type="onewayType"/>
64       <xsd:element name="weight" type="weightType"/>
65       <xsd:element name="height" type="heightType"/>
66       <xsd:element name="width"  type="widthType"/>
67       <xsd:element name="length" type="lengthType"/>
68     </xsd:sequence>
69   </xsd:complexType>
70
71   <!-- The lowest level elements containing the real information -->
72
73   <xsd:complexType name="speedType">
74     <xsd:attribute name="highway" type="xsd:string"/>
75     <xsd:attribute name="kph"     type="xsd:string"/>
76   </xsd:complexType>
77
78   <xsd:complexType name="preferenceType">
79     <xsd:attribute name="highway" type="xsd:string"/>
80     <xsd:attribute name="percent" type="xsd:string"/>
81   </xsd:complexType>
82
83   <xsd:complexType name="propertyType">
84     <xsd:attribute name="type"    type="xsd:string"/>
85     <xsd:attribute name="percent" type="xsd:string"/>
86   </xsd:complexType>
87
88   <xsd:complexType name="onewayType">
89     <xsd:attribute name="obey"    type="xsd:string"/>
90   </xsd:complexType>
91
92   <xsd:complexType name="weightType">
93     <xsd:attribute name="limit"   type="xsd:string"/>
94   </xsd:complexType>
95
96   <xsd:complexType name="heightType">
97     <xsd:attribute name="limit"   type="xsd:string"/>
98   </xsd:complexType>
99
100   <xsd:complexType name="widthType">
101     <xsd:attribute name="limit"   type="xsd:string"/>
102   </xsd:complexType>
103
104   <xsd:complexType name="lengthType">
105     <xsd:attribute name="limit"   type="xsd:string"/>
106   </xsd:complexType>
107
108 </xsd:schema>