Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
<xs:schema targetNamespace="http://mapbuilder.sourceforge.net/mapbuilder" xmlns:mb="http://mapbuilder.sourceforge.net/mapbuilder" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="0.2.1">
3
  <xs:annotation>
4
    <xs:appinfo>$Id: config.xsd 3965 2008-04-01 14:53:07Z oterral $</xs:appinfo>
5
    <xs:documentation xml:lang="en">
6
      <xs:description>Application schema for Mapbuilder runtime configuration</xs:description>
7
      <xs:copyright>License: LGPL as per: http://www.gnu.org/copyleft/lesser.html</xs:copyright>
8
    </xs:documentation>
9
  </xs:annotation>
10

    
11
  <!-- imports -->
12
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
13

    
14
  <!-- root element -->
15
  <xs:element name="MapbuilderConfig">
16
    <xs:annotation>
17
      <xs:documentation>root element for all Mapbuilder applications</xs:documentation>
18
    </xs:annotation>
19
    <xs:complexType>
20
      <xs:complexContent>
21
        <xs:extension base="mb:AbstractModelBaseType">
22
          <xs:sequence>
23
            <xs:element name="skinDir" type="mb:urlPathType" minOccurs="1"/>
24
            <xs:element name="userWidgetTextDir" type="mb:urlPathType" minOccurs="0"/>
25
            <xs:element name="proxyUrl" type="mb:urlPathType" minOccurs="0"/>
26
            <xs:element name="serializeUrl" type="mb:urlPathType" minOccurs="0"/>
27
          </xs:sequence>
28
          <xs:attribute name="version" type="xs:string" use="required" fixed="0.2.1">
29
            <xs:annotation>
30
              <xs:appinfo source="An attribute &quot;version&quot; representing the published specification version number, contains three positive integers, separated by decimal points, in the form &quot;x.y.z&quot;. Each context specification is numbered independently. This attribute is required."/>
31
            </xs:annotation>
32
          </xs:attribute>
33
        </xs:extension>
34
      </xs:complexContent>
35
    </xs:complexType>
36
  </xs:element>
37

    
38
  <!--  global base types -->
39
  <xs:complexType name="AbstractModelBaseType" abstract="true">
40
    <xs:sequence>
41
      <xs:element name="title" type="xs:string" minOccurs="0"/>
42
      <xs:element name="defaultModelUrl" type="mb:urlPathType" minOccurs="0">
43
        <xs:annotation>
44
          <xs:documentation>The URL where the model gets loaded from.  If the method is HTTP GET, then include the full query string in the URL.  Optional, if present, the model will be loaded when the application loads.</xs:documentation>
45
        </xs:annotation>
46
      </xs:element>
47
      <xs:element name="method" type="xs:string" minOccurs="0">
48
        <xs:annotation>
49
          <xs:documentation>the HTTP method to use to retrieve the model.  Optional, defaults to GET.</xs:documentation>
50
        </xs:annotation>
51
      </xs:element>
52
      <xs:element name="scriptFile" type="mb:urlPathType" minOccurs="0">
53
        <xs:annotation>
54
          <xs:documentation>this property specifies a relative or absolute URL to a JavaScript file that can replace the default JavaScript object.  The file must be served from the same domain as the mapbuilder application.  Optional, if missing a default JavaScript file will be used (in the lib/widget directory with the same name as the widget)</xs:documentation>
55
        </xs:annotation>
56
      </xs:element>
57
      <xs:element name="debug" nillable="true" minOccurs="0">
58
        <xs:annotation>
59
          <xs:documentation>an empty property element to show debugging output during model processing.  Optional.</xs:documentation>
60
        </xs:annotation>
61
      </xs:element>
62
      <xs:element name="models" type="mb:modelsType" minOccurs="0">
63
        <xs:annotation>
64
          <xs:documentation>A list of child models objects where a parent/child relationship can be established between models (e.g. a DescribeFeatureType model can be a child of a WfsCapabilities model.  Optional.</xs:documentation>
65
        </xs:annotation>
66
      </xs:element>
67
      <xs:element name="widgets" type="mb:widgetsType" minOccurs="0">
68
        <xs:annotation>
69
          <xs:documentation>a list of widgets for this model.  Optional, however a model will usually have at least one widget.</xs:documentation>
70
        </xs:annotation>
71
      </xs:element>
72
      <xs:element name="tools" type="mb:toolsType" minOccurs="0">
73
        <xs:annotation>
74
          <xs:documentation>a list of tools that can be used to control this model. Optional.</xs:documentation>
75
        </xs:annotation>
76
      </xs:element>
77
      <xs:element name="namespace" type="xs:string" minOccurs="0">
78
        <xs:annotation>
79
          <xs:documentation>The namespace that will be used by Xpath queries on this model.  Optional.</xs:documentation>
80
        </xs:annotation>
81
      </xs:element>
82
      <xs:element name="nodeSelectXpath" type="xs:string" minOccurs="0">
83
        <xs:annotation>
84
          <xs:documentation/>
85
        </xs:annotation>
86
      </xs:element>
87
    </xs:sequence>
88
    <xs:attribute name="id" type="mb:idType" use="required"/>
89
    <xs:attribute name="template" type="xs:boolean" use="optional"/>
90
  </xs:complexType>
91
  <xs:complexType name="AbstractWidgetBaseType" abstract="true">
92
    <xs:sequence>
93
      <xs:element name="htmlTagId" type="xs:string" minOccurs="0">
94
        <xs:annotation>
95
          <xs:documentation>the ID of the HTML element in the web page where this widget's ouput should be placed.  Optional, if present, this value will be used instead of the widget's ID attribute.</xs:documentation>
96
        </xs:annotation>
97
      </xs:element>
98
      <xs:element name="outputNodeId" type="xs:string" minOccurs="0">
99
        <xs:annotation>
100
          <xs:documentation>the ID to be assigned to the widget stylesheet output.  This property can be used to share the same HTML element among widgets if multiple widgets use the same value for this property.  Optional, if not present, an id will be automatically assigned to the widget stylehseet output. </xs:documentation>
101
        </xs:annotation>
102
      </xs:element>
103
      <xs:element name="targetModel" type="xs:string" minOccurs="0">
104
        <xs:annotation>
105
          <xs:documentation>used so that the actions of this widget can affect a model other than this widget's parent model.  The value of this property is the ID of another model object in the config document.  Every widget will have a targetModel property.  Optional, if missing the targetModel is set to the parent model</xs:documentation>
106
        </xs:annotation>
107
      </xs:element>
108
      <xs:element name="scriptFile" type="mb:urlPathType" minOccurs="0">
109
        <xs:annotation>
110
          <xs:documentation>this property specifies a relative or absolute URL to a JavaScript file that can replace the default JavaScript object.  The file must be served from the same domain as the mapbuilder application.  Optional, if missing a default JavaScript file will be used (in the lib/widget directory with the same name as the widget)</xs:documentation>
111
        </xs:annotation>
112
      </xs:element>
113
      <xs:element name="debug" nillable="true" minOccurs="0">
114
        <xs:annotation>
115
          <xs:documentation>an empty property element to show debugging output during stylesheet processing.  Optional.</xs:documentation>
116
        </xs:annotation>
117
      </xs:element>
118
      <xs:element name="autoRefresh" type="xs:string" minOccurs="0">
119
        <xs:annotation>
120
          <xs:documentation>if this property has a value of "false", automatic refresh of the widget output is suppressed.  Optional, defaults to true</xs:documentation>
121
        </xs:annotation>
122
      </xs:element>
123
      <xs:element name="toolId" type="xs:string" minOccurs="0">
124
        <xs:annotation>
125
          <xs:documentation>i</xs:documentation>
126
        </xs:annotation>
127
      </xs:element>
128
    </xs:sequence>
129
    <xs:attribute name="id" type="mb:idType" use="required"/>
130
  </xs:complexType>
131
  <xs:complexType name="AbstractWidgetBaseXSLType" abstract="true">
132
    <xs:complexContent>
133
      <xs:extension base="mb:AbstractWidgetBaseType">
134
        <xs:sequence>
135
          <xs:element name="stylesheet" type="mb:urlPathType" minOccurs="0">
136
            <xs:annotation>
137
              <xs:documentation>this property specifies a relative or absolute URL to a stylesheet that can replace the default stylesheet.  The stylesheet must be served from the same domain as the mapbuilder application.  Optional, if missing a default stylesheet will be used (in the lib/widget directory with the same name as the widget)</xs:documentation>
138
            </xs:annotation>
139
          </xs:element>
140
          <xs:element name="parseHTMLNodes" type="xs:boolean" minOccurs="0">
141
            <xs:annotation>
142
              <xs:documentation>if true, HTML entities (like found in RSS feeds) will be parsed and converted to HTML, instead of showing HTML source code.</xs:documentation>
143
            </xs:annotation>
144
          </xs:element>
145
        </xs:sequence>
146
      </xs:extension>
147
    </xs:complexContent>
148
  </xs:complexType>
149
  <xs:complexType name="AbstractButtonBaseType" abstract="true">
150
    <xs:complexContent>
151
      <xs:extension base="mb:AbstractWidgetBaseType">
152
        <xs:sequence>
153
          <xs:element name="buttonBar" type="xs:string">
154
            <xs:annotation>
155
              <xs:documentation>equivalent to the htmlTagId property for placing buttons in a page.  Buttons get appended to this HTML element in sequence. Buttons with the same buttonBar property will belong to the same buttonBar group.</xs:documentation>
156
            </xs:annotation>
157
          </xs:element>
158
          <xs:element name="htmlTagId" type="xs:string" minOccurs="0">
159
            <xs:annotation>
160
              <xs:documentation>If set this property will be used for placing the buttons in a page. Buttons get appended to this HTML element in sequence. Use this property if you want to place buttons with the same buttonBar property on a different place in the web page.</xs:documentation>
161
            </xs:annotation>
162
          </xs:element>
163
          <xs:element name="targetModel" type="xs:string">
164
            <xs:annotation>
165
              <xs:documentation>Target Model</xs:documentation>
166
            </xs:annotation>
167
          </xs:element>
168
          <xs:element name="targetContext" type="xs:string" minOccurs="0">
169
            <xs:annotation>
170
              <xs:documentation>the id of a context object of the map on which to use the button.  Optional for buttons that have the context of the desired map as target model.</xs:documentation>
171
            </xs:annotation>
172
          </xs:element>
173
          <xs:element name="class" type="xs:string" minOccurs="0">
174
            <xs:annotation>
175
              <xs:documentation>specifies the type of button.  Permitted values include "Button", "Toggle" and "RadioButton".  A Button class will execute it's action immediately when pressed.  A "Toggle" will be enabled when clicked, and disabled when clicked again, without affecting other buttons. A "RadioButton" has enabled and disabled state and only one button in a buttonBar group can be enabled at any one time.</xs:documentation>
176
            </xs:annotation>
177
          </xs:element>
178
          <xs:element name="selected" type="xs:boolean" minOccurs="0">
179
            <xs:annotation>
180
              <xs:documentation>boolean value (true|false) to inidicate the initial state of this button</xs:documentation>
181
            </xs:annotation>
182
          </xs:element>
183
          <xs:element name="enabledSrc" type="mb:urlPathType" minOccurs="0">
184
            <xs:annotation>
185
              <xs:documentation>partial skin path to graphic source when this button is selected</xs:documentation>
186
            </xs:annotation>
187
          </xs:element>
188
          <xs:element name="disabledSrc" type="mb:urlPathType" minOccurs="0">
189
            <xs:annotation>
190
              <xs:documentation>partial skin path to graphic source when this button is not selected</xs:documentation>
191
            </xs:annotation>
192
          </xs:element>
193
          <xs:element name="tooltip" type="mb:tooltipType" minOccurs="0">
194
            <xs:annotation>
195
              <xs:documentation>text to be used when the mouse hovers over this button.  Multiple languages are supported by using an "xml:lang" attribute on this property.</xs:documentation>
196
            </xs:annotation>
197
          </xs:element>
198
          <xs:element name="action" type="xs:string" minOccurs="0">
199
            <xs:annotation>
200
              <xs:documentation/>
201
            </xs:annotation>
202
          </xs:element>
203
          <xs:element name="cursor" type="xs:string" minOccurs="0">
204
            <xs:annotation>
205
              <xs:documentation/>
206
            </xs:annotation>
207
          </xs:element>
208
        </xs:sequence>
209
      </xs:extension>
210
    </xs:complexContent>
211
  </xs:complexType>
212
  <xs:complexType name="AbstractToolBaseType" abstract="true">
213
    <xs:sequence>
214
      <xs:element name="targetModel" type="xs:string" minOccurs="0">
215
        <xs:annotation>
216
          <xs:documentation>the id of a model object which this tool acts on.  Optional, if absent the action happens on the parent model of this tool.</xs:documentation>
217
        </xs:annotation>
218
      </xs:element>
219
      <xs:element name="mouseHandler" type="xs:string" minOccurs="0">
220
        <xs:annotation>
221
          <xs:documentation>the id of a tool object on which to register mouse events.  Optional, if absent, not mouse events are handled and the action is the doSelect function</xs:documentation>
222
        </xs:annotation>
223
      </xs:element>
224
      <xs:element name="scriptFile" type="mb:urlPathType" minOccurs="0">
225
        <xs:annotation>
226
          <xs:documentation>this property specifies a relative or absolute URL to a JavaScript file that can replace the default JavaScript object.  The file must be served from the same domain as the mapbuilder application.  Optional, if missing a default JavaScript file will be used (in the lib/tool directory with the same name as the widget)</xs:documentation>
227
        </xs:annotation>
228
      </xs:element>
229
      <xs:element name="enabled" type="xs:boolean" minOccurs="0">
230
        <xs:annotation>
231
          <xs:documentation>a flag to indicate if this tool should initially be enabled.  Optional, accepts values of true and false.  Tools are enabled by default.</xs:documentation>
232
        </xs:annotation>
233
      </xs:element>
234
    </xs:sequence>
235
    <xs:attribute name="id" type="mb:idType" use="optional"/>
236
  </xs:complexType>
237

    
238
  <!--  document structure -->
239
  <xs:complexType name="modelsType">
240
    <xs:choice maxOccurs="unbounded">
241
      <xs:element name="Context" type="mb:ContextType"/>
242
      <xs:element name="FeatureCollection" type="mb:FeatureCollectionType"/>
243
      <xs:element name="GeoRSS" type="mb:GeoRSSType"/>
244
      <xs:element name="Logger" type="mb:LoggerType"/>
245
      <xs:element name="Model" type="mb:ModelType">
246
        <xs:annotation>
247
          <xs:documentation>A generic model to represent an XML document where no specialized get or set methods are required</xs:documentation>
248
        </xs:annotation>
249
      </xs:element>
250
      <xs:element name="OwsCatResources" type="mb:OwsCatResourcesType"/>
251
      <xs:element name="OwsContext" type="mb:ContextType"/>
252
      <xs:element name="StyledLayerDescriptor" type="mb:StyledLayerDescriptorType"/>
253
      <xs:element name="Transaction" type="mb:TransactionType"/>
254
      <xs:element name="WfsCapabilities" type="mb:WfsCapabilitiesType"/>
255
      <xs:element name="WmsCapabilities" type="mb:WmsCapabilitiesType"/>
256
      <xs:element name="WpsCapabilities" type="mb:WpsCapabilitiesType"/>
257
      <xs:element name="WpsDescribeProcess" type="mb:WpsDescribeProcessType"/>
258
    </xs:choice>
259
  </xs:complexType>
260
  <xs:complexType name="widgetsType">
261
    <xs:choice maxOccurs="unbounded">
262
      <xs:element name="Abstract" type="mb:WidgetType"/>
263
      <xs:element name="AoiBoxOL" type="mb:AoiBoxOLType"/>
264
      <xs:element name="AoiForm" type="mb:AoiFormType"/>
265
      <xs:element name="Back" type="mb:ButtonType"/>
266
      <xs:element name="Button" type="mb:ButtonType">
267
        <xs:annotation>
268
          <xs:documentation>A generic button</xs:documentation>
269
        </xs:annotation>
270
      </xs:element>
271
      <xs:element name="CatSearchForm" type="mb:WidgetType"/>
272
      <xs:element name="CollectionList" type="mb:CollectionListType"/>
273
      <xs:element name="CursorTrack" type="mb:CursorTrackType"/>
274
      <xs:element name="DeleteFeature" type="mb:DeleteFeatureType"/>
275
      <xs:element name="DragPan" type="mb:ButtonType"/>
276
      <xs:element name="EditLine" type="mb:EditButtonBaseType"/>
277
      <xs:element name="EditPoint" type="mb:EditButtonBaseType"/>
278
      <xs:element name="EditPolygon" type="mb:EditButtonBaseType"/>
279
      <xs:element name="EventLog" type="mb:WidgetType"/>
280
      <xs:element name="ExampleList" type="mb:WidgetType"/>
281
      <xs:element name="FeatureInfo" type="mb:WidgetType"/>
282
      <xs:element name="FeatureList" type="mb:WidgetType"/>
283
      <xs:element name="FilterAttributes" type="mb:WidgetType"/>
284
      <xs:element name="Forward" type="mb:ButtonType"/>
285
      <xs:element name="GetFeatureInfo" type="mb:GetFeatureInfoType"/>
286
      <xs:element name="GetFeatureInfoWSR" type="mb:GetFeatureInfoWSRType"/>
287
      <xs:element name="GmlRendererConfig" type="mb:GmlRendererConfigType"/>
288
      <xs:element name="GmlRendererOL" type="mb:GmlRendererOLType"/>
289
      <xs:element name="Graticule" type="mb:GraticuleType"/>
290
      <xs:element name="InsertFeature" type="mb:InsertFeatureType"/>
291
      <xs:element name="LayerControl" type="mb:LayerControlType"/>
292
      <xs:element name="Legend" type="mb:LegendType"/>
293
      <xs:element name="LegendGraphic" type="mb:LegendGraphicType"/>
294
      <xs:element name="Loading2" type="mb:Loading2Type"/>
295
      <xs:element name="Locations" type="mb:LocationsType"/>
296
      <xs:element name="MapPaneOL" type="mb:MapPaneOLType"/>
297
      <xs:element name="MapScaleBar" type="mb:MapScaleBarType"/>
298
      <xs:element name="MapScaleText" type="mb:MapScaleTextType"/>
299
      <xs:element name="MapTitle" type="mb:WidgetType"/>
300
      <xs:element name="Measurement" type="mb:EditButtonBaseType"/>
301
      <xs:element name="ModelStatus" type="mb:ModelStatusType"/>
302
      <xs:element name="ModelUrlInput" type="mb:ModelUrlInputType"/>
303
      <xs:element name="OpenLSForm" type="mb:OpenLSFormType"/>
304
      <xs:element name="OpenLSResponse" type="mb:OpenLSResponseType"/>
305
      <xs:element name="OverviewMap" type="mb:OverviewMapType"/>
306
      <xs:element name="PanZoomBar" type="mb:PanZoomBarType"/>
307
      <xs:element name="Reset" type="mb:ButtonType"/>
308
      <xs:element name="Save" type="mb:SaveType"/>
309
      <xs:element name="SaveModel" type="mb:SaveModelType"/>
310
      <xs:element name="SearchWidget" type="mb:SearchWidgetType"/>
311
      <xs:element name="SelectAllMapLayers" type="mb:WidgetType"/>
312
      <xs:element name="SelectFeatureType" type="mb:WidgetType"/>
313
      <xs:element name="SelectFromAtomFeed" type="mb:SelectFromAtomFeedType"/>
314
      <xs:element name="SelectMapLayers" type="mb:WidgetType"/>
315
      <xs:element name="SelectTimeFrame" type="mb:WidgetType"/>
316
      <xs:element name="ServiceRegistryList" type="mb:WidgetType"/>
317
      <xs:element name="SetAoi" type="mb:ButtonType"/>
318
      <xs:element name="SLDEditor" type="mb:WidgetType"/>
319
      <xs:element name="ShowDistance" type="mb:WidgetType"/>
320
      <xs:element name="TabbedContent" type="mb:TabbedContentType"/>
321
      <xs:element name="Timestamp" type="mb:TimestampType"/>
322
      <xs:element name="TipWidgetOL" type="mb:TipWidgetOLType"/>
323
      <xs:element name="TipWidgetConfig" type="mb:TipWidgetConfigType"/>
324
      <xs:element name="TransactionResponse" type="mb:WidgetType"/>
325
      <xs:element name="Version" type="mb:WidgetType"/>
326
      <xs:element name="WebServiceForm" type="mb:WebServiceFormType"/>
327
      <xs:element name="WfsGetFeature" type="mb:WfsGetFeatureType"/>
328
      <xs:element name="Widget" type="mb:WidgetType">
329
        <xs:annotation>
330
          <xs:documentation>A generic widget</xs:documentation>
331
        </xs:annotation>
332
      </xs:element>
333
      <xs:element name="ZoomIn" type="mb:ButtonType"/>
334
      <xs:element name="ZoomOut" type="mb:ButtonType"/>
335
    </xs:choice>
336
  </xs:complexType>
337
  <xs:complexType name="toolsType">
338
    <xs:choice maxOccurs="unbounded">
339
      <xs:element name="Caps2Context" type="mb:Caps2ContextType"/>
340
      <xs:element name="EditContext" type="mb:EditContextType"/>
341
      <xs:element name="EditSLD" type="mb:EditSLDType"/>
342
      <xs:element name="FeatureSelectHandler" type="mb:FeatureSelectHandlerType"/>
343
      <xs:element name="History" type="mb:HistoryType"/>
344
      <xs:element name="MergeModels" type="mb:MergeModelsType"/>
345
      <xs:element name="MovieLoop" type="mb:MovieLoopType"/>
346
      <xs:element name="Timer" type="mb:TimerType"/>
347
      <xs:element name="WebServiceRequest" type="mb:WebServiceRequestType"/>
348
      <xs:element name="ZoomToAoi" type="mb:ZoomToAoiType"/>
349
    </xs:choice>
350
  </xs:complexType>
351

    
352
  <!-- global model extension types; Models type represent different types of XML documents. Use Model for a generic XML document where no customization or specialized methods are required-->
353
  <xs:complexType name="ContextType">
354
    <xs:annotation>
355
      <xs:documentation>A Web Map Context document as specified by the Open Geospatial Consortium (http://www.opengeospatial.org/docs/03-036r2.pdf)</xs:documentation>
356
    </xs:annotation>
357
    <xs:complexContent>
358
      <xs:extension base="mb:AbstractModelBaseType"/>
359
    </xs:complexContent>
360
  </xs:complexType>
361
  <xs:complexType name="FeatureCollectionType">
362
    <xs:annotation>
363
      <xs:documentation>A representation of a geographic Feature or Feature Collection in GML as specified by the Open Geospatial Consortium (http://www.opengeospatial.org/docs/02-069.pdf) </xs:documentation>
364
    </xs:annotation>
365
    <xs:complexContent>
366
      <xs:extension base="mb:AbstractModelBaseType">
367
        <xs:sequence>
368
          <xs:element name="featureTagName" type="xs:string" minOccurs="0"/>
369
          <xs:element name="coordsTagName" type="xs:string" minOccurs="0"/>
370
          <xs:element name="coordSelectXpath" type="xs:string" minOccurs="0"/>
371
        </xs:sequence>
372
      </xs:extension>
373
    </xs:complexContent>
374
  </xs:complexType>
375
  <xs:complexType name="GeoRSSType">
376
    <xs:annotation>
377
      <xs:documentation>GeoRSS</xs:documentation>
378
    </xs:annotation>
379
    <xs:complexContent>
380
      <xs:extension base="mb:ModelType"/>
381
    </xs:complexContent>
382
  </xs:complexType>
383
  <xs:complexType name="LoggerType">
384
    <xs:annotation>
385
      <xs:documentation>Records a log of events that occur over the course of mapbuilder execution</xs:documentation>
386
    </xs:annotation>
387
    <xs:complexContent>
388
      <xs:extension base="mb:AbstractModelBaseType"/>
389
    </xs:complexContent>
390
  </xs:complexType>
391
  <xs:complexType name="ModelType">
392
    <xs:annotation>
393
      <xs:documentation>A generic base document type to handle any XML document (without any specialized methods)</xs:documentation>
394
    </xs:annotation>
395
    <xs:complexContent>
396
      <xs:extension base="mb:AbstractModelBaseType"/>
397
    </xs:complexContent>
398
  </xs:complexType>
399
  <xs:complexType name="OwsCatResourcesType">
400
    <xs:annotation>
401
      <xs:documentation>TBD</xs:documentation>
402
    </xs:annotation>
403
    <xs:complexContent>
404
      <xs:extension base="mb:FeatureCollectionType"/>
405
    </xs:complexContent>
406
  </xs:complexType>
407
  <xs:complexType name="StyledLayerDescriptorType">
408
    <xs:annotation>
409
      <xs:documentation>Stores an SLD file as defined by the Open Geospatial Consortium (http://www.opengeospatial.org/)</xs:documentation>
410
    </xs:annotation>
411
    <xs:complexContent>
412
      <xs:extension base="mb:AbstractModelBaseType">
413
        <xs:sequence>
414
          <xs:element name="sldXPath" type="xs:string" minOccurs="0">
415
            <xs:annotation>
416
              <xs:documentation>XPath pointing to the sld root node within the model. This is useful for extracting sld information from eg. wmc context documents</xs:documentation>
417
            </xs:annotation>
418
          </xs:element>
419
        </xs:sequence>
420
      </xs:extension>
421
    </xs:complexContent>
422
  </xs:complexType>
423
  <xs:complexType name="TransactionType">
424
    <xs:annotation>
425
      <xs:documentation>A response from a WFS Transaction operation</xs:documentation>
426
    </xs:annotation>
427
    <xs:complexContent>
428
      <xs:extension base="mb:AbstractModelBaseType"/>
429
    </xs:complexContent>
430
  </xs:complexType>
431
  <xs:complexType name="WfsCapabilitiesType">
432
    <xs:annotation>
433
      <xs:documentation>A document describing the capabilities of an OGC Web Feature Service (WFS) as specified by the Open Geospatial Consortium (https://portal.opengeospatial.org/files/?artifact_id=7176)</xs:documentation>
434
    </xs:annotation>
435
    <xs:complexContent>
436
      <xs:extension base="mb:AbstractModelBaseType"/>
437
    </xs:complexContent>
438
  </xs:complexType>
439
  <xs:complexType name="WmsCapabilitiesType">
440
    <xs:annotation>
441
      <xs:documentation>A document describing the capabilities of an OGC Web Map Service (WMS) as specified by the Open Geospatial Consortium (http://portal.opengeospatial.org/files/?artifact_id=5316)</xs:documentation>
442
    </xs:annotation>
443
    <xs:complexContent>
444
      <xs:extension base="mb:AbstractModelBaseType"/>
445
    </xs:complexContent>
446
  </xs:complexType>
447
  <xs:complexType name="WpsCapabilitiesType">
448
    <xs:annotation>
449
      <xs:documentation/>
450
    </xs:annotation>
451
    <xs:complexContent>
452
      <xs:extension base="mb:AbstractModelBaseType"/>
453
    </xs:complexContent>
454
  </xs:complexType>
455
  <xs:complexType name="WpsDescribeProcessType">
456
    <xs:annotation>
457
      <xs:documentation/>
458
    </xs:annotation>
459
    <xs:complexContent>
460
      <xs:extension base="mb:AbstractModelBaseType"/>
461
    </xs:complexContent>
462
  </xs:complexType>
463

    
464
  <!-- global widget extension types -->
465
  <xs:complexType name="AoiBoxOLType">
466
    <xs:annotation>
467
      <xs:documentation>A widget to display a map container model's AOI box</xs:documentation>
468
    </xs:annotation>
469
    <xs:complexContent>
470
      <xs:extension base="mb:AbstractWidgetBaseType"/>
471
    </xs:complexContent>
472
  </xs:complexType>
473
  <xs:complexType name="AoiFormType">
474
    <xs:annotation>
475
      <xs:documentation>Displays a form with North, South, East, West coordinates to read and set the model AOI</xs:documentation>
476
    </xs:annotation>
477
    <xs:complexContent>
478
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
479
        <xs:sequence>
480
          <xs:element name="title" type="xs:string" minOccurs="0"/>
481
          <xs:element name="formName" type="xs:string" minOccurs="0"/>
482
        </xs:sequence>
483
      </xs:extension>
484
    </xs:complexContent>
485
  </xs:complexType>
486
  <xs:complexType name="ButtonType">
487
    <xs:annotation>
488
      <xs:documentation>A generic instance of a ButtonBase object</xs:documentation>
489
    </xs:annotation>
490
    <xs:complexContent>
491
      <xs:extension base="mb:AbstractButtonBaseType"/>
492
    </xs:complexContent>
493
  </xs:complexType>
494
  <xs:complexType name="SelectFromAtomFeedType">
495
    <xs:annotation>
496
      <xs:documentation>A widget which displays a selectable list of elements from an atom feed. When the element is selected, the referenced atom XML document is loaded into the targetModel. This can be used to render a list of Context documents, then load the selected Context when selected.</xs:documentation>
497
    </xs:annotation>
498
    <xs:complexContent>
499
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
500
        <xs:sequence>
501
          <xs:element name="title" type="xs:string" minOccurs="0"/>
502
        </xs:sequence>
503
      </xs:extension>
504
    </xs:complexContent>
505
  </xs:complexType>
506
  <xs:complexType name="CollectionListType">
507
    <xs:annotation>
508
      <xs:documentation>A widget to display a list of context documents contained in a ContextCollection</xs:documentation>
509
    </xs:annotation>
510
    <xs:complexContent>
511
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
512
        <xs:sequence>
513
          <xs:element name="title" type="xs:string" minOccurs="0"/>
514
        </xs:sequence>
515
      </xs:extension>
516
    </xs:complexContent>
517
  </xs:complexType>
518
  <xs:complexType name="CursorTrackType">
519
    <xs:annotation>
520
      <xs:documentation>A widget to display the mouse coordinates when it is over a MapPane</xs:documentation>
521
    </xs:annotation>
522
    <xs:complexContent>
523
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
524
        <xs:sequence>
525
          <xs:element name="showPx" type="xs:boolean" minOccurs="0"/>
526
          <xs:element name="showXY" type="xs:boolean" minOccurs="0"/>
527
          <xs:element name="showLatLong" type="xs:boolean" minOccurs="0"/>
528
          <xs:element name="showDMS" type="xs:boolean" minOccurs="0"/>
529
          <xs:element name="showDM" type="xs:boolean" minOccurs="0"/>
530
          <xs:element name="showMGRS" type="xs:boolean" minOccurs="0"/>
531
          <xs:element name="precision" type="xs:integer" minOccurs="0"/>
532
        </xs:sequence>
533
      </xs:extension>
534
    </xs:complexContent>
535
  </xs:complexType>
536
  <xs:complexType name="DeleteFeatureType">
537
    <xs:annotation>
538
      <xs:documentation>When this button is selected, a WFS DeleteFeature request is build from the targetModel and posted to the WFS.</xs:documentation>
539
    </xs:annotation>
540
    <xs:complexContent>
541
      <xs:extension base="mb:AbstractButtonBaseType">
542
        <xs:sequence>
543
          <xs:element name="transactionResponseModel" type="xs:string" minOccurs="0">
544
            <xs:annotation>
545
              <xs:documentation>The model which will be populated with the server response from a transaction request.</xs:documentation>
546
            </xs:annotation>
547
          </xs:element>
548
          <xs:element name="webServiceUrl" type="mb:urlPathType" minOccurs="0">
549
            <xs:annotation>
550
              <xs:documentation>The base URL of the Web Service that will be queried.</xs:documentation>
551
            </xs:annotation>
552
          </xs:element>
553
        </xs:sequence>
554
      </xs:extension>
555
    </xs:complexContent>
556
  </xs:complexType>
557
   <xs:complexType name="ExampleList">
558
    <xs:annotation>
559
      <xs:documentation>A very specific widget to render the same example menu on all examples.</xs:documentation>
560
    </xs:annotation>
561
    <xs:complexContent>
562
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
563
      </xs:extension>
564
    </xs:complexContent>
565
  </xs:complexType>
566
  <xs:complexType name="EditButtonBaseType">
567
    <xs:annotation>
568
      <xs:documentation>After this button is selected, clicks on a MapPane will add a GML coord to a Line the targetModel FeatureCollection.</xs:documentation>
569
    </xs:annotation>
570
    <xs:complexContent>
571
      <xs:extension base="mb:AbstractButtonBaseType">
572
        <xs:sequence>
573
          <xs:element name="transactionResponseModel" type="xs:string" minOccurs="0">
574
            <xs:annotation>
575
              <xs:documentation>The model which will be populated with the server response from a transaction request.</xs:documentation>
576
            </xs:annotation>
577
          </xs:element>
578
          <xs:element name="appendOnEdit" type="xs:string">
579
            <xs:annotation>
580
              <xs:documentation>Should a new empty feature be appended to the model after creating one? Default is true.</xs:documentation>
581
            </xs:annotation>
582
          </xs:element>
583
          <xs:element name="featureXpath" type="xs:string">
584
            <xs:annotation>
585
              <xs:documentation>Xpath of the gml:coordinates in the FeatureCollection that will be updated.</xs:documentation>
586
            </xs:annotation>
587
          </xs:element>
588
          <xs:element name="defaultModelUrl" type="mb:urlPathType">
589
            <xs:annotation>
590
              <xs:documentation>URL to an XML file which contains a default FeatureCollect.  The XML will be loaded into the targetModel when this button is selected.</xs:documentation>
591
            </xs:annotation>
592
          </xs:element>
593
        </xs:sequence>
594
      </xs:extension>
595
    </xs:complexContent>
596
  </xs:complexType>
597
  <xs:complexType name="GetFeatureInfoType">
598
    <xs:annotation>
599
      <xs:documentation>A response from a WMS for a GetFeatureInfo operation</xs:documentation>
600
    </xs:annotation>
601
    <xs:complexContent>
602
      <xs:extension base="mb:AbstractButtonBaseType">
603
        <xs:sequence>
604
          <xs:element name="stylesheet" type="xs:string" minOccurs="0"/>
605
          <xs:element name="infoFormat" type="xs:string" minOccurs="0">
606
            <xs:annotation>
607
              <xs:documentation>The Content-Type for the feature request.  Either application/vnd.ogc.gml or text/html; defaults to application/vnd.ogc.gml</xs:documentation>
608
            </xs:annotation>
609
          </xs:element>
610
          <xs:element name="featureCount" type="xs:integer" minOccurs="0"/>
611
        </xs:sequence>
612
      </xs:extension>
613
    </xs:complexContent>
614
  </xs:complexType>
615
  <xs:complexType name="GetFeatureInfoWSRType">
616
    <xs:annotation>
617
      <xs:documentation>A response from a WMS for a GetFeatureInfo operation</xs:documentation>
618
    </xs:annotation>
619
    <xs:complexContent>
620
      <xs:extension base="mb:AbstractButtonBaseType">
621
        <xs:sequence>
622
          <xs:element name="controller" type="xs:string" minOccurs="0">
623
            <xs:annotation>
624
              <xs:documentation>Controller that handles the request. This has to point to the id of a WebServiceRequest tool.</xs:documentation>
625
            </xs:annotation>
626
          </xs:element>
627
        </xs:sequence>
628
      </xs:extension>
629
    </xs:complexContent>
630
  </xs:complexType>
631
  <xs:complexType name="GmlRendererBaseType">
632
    <xs:complexContent>
633
      <xs:extension base="mb:AbstractWidgetBaseType">
634
        <xs:sequence>
635
          <xs:element name="featureSRS" type="xs:string" minOccurs="0">
636
            <xs:annotation>
637
              <xs:documentation>SRS of the features to display. If not specified, the map SRS is assumed.</xs:documentation>
638
            </xs:annotation>
639
          </xs:element>
640
          <xs:element name="sldModel" type="xs:string" minOccurs="0">
641
            <xs:annotation>
642
              <xs:documentation>id of a StyledLayerDescriptor model that holds sld styles for the features to render.</xs:documentation>
643
            </xs:annotation>
644
          </xs:element>
645
          <xs:element name="defaultStyleName" type="xs:string" minOccurs="0">
646
            <xs:annotation>
647
              <xs:documentation>Name of the user style in the sld model that should be used to render features.</xs:documentation>
648
            </xs:annotation>
649
          </xs:element>
650
          <xs:element name="selectStyleName" type="xs:string" minOccurs="0">
651
            <xs:annotation>
652
              <xs:documentation>Name of the user style in the sld model that should be used to render features when they are selected (eg. when hovered with the mouse).</xs:documentation>
653
            </xs:annotation>
654
          </xs:element>
655
          <xs:element name="hoverCursor" type="xs:string" minOccurs="0">
656
            <xs:annotation>
657
              <xs:documentation>CSS cursor type of the cursor that should be used when hovering over features. This will have no effect if there is no FeatureSelectHandler tool attached to the target model.</xs:documentation>
658
            </xs:annotation>
659
          </xs:element>
660
        </xs:sequence>
661
      </xs:extension>
662
    </xs:complexContent>
663
  </xs:complexType>
664
  <xs:complexType name="GmlRendererConfigType">
665
    <xs:annotation>
666
      <xs:documentation>Configuration widget for a GmlRendererOL in a MergeModel. Because only one GmlRendererLayer can handle events, multiple vector layers that require user interaction (like hover/click) effects are merged into a MergeModel. GmlRendererConfig makes it possible to use different configurations (eg. sld styling) for sourceModels.</xs:documentation>
667
    </xs:annotation>
668
    <xs:complexContent>
669
      <xs:extension base="mb:GmlRendererBaseType">
670
        <xs:sequence>
671
          <xs:element name="targetWidget" type="xs:string"/>
672
        </xs:sequence>
673
      </xs:extension>
674
    </xs:complexContent>
675
  </xs:complexType>
676
  <xs:complexType name="GmlRendererOLType">
677
    <xs:annotation>
678
      <xs:documentation>A widget to render GML document using OpenLayers vector rendering</xs:documentation>
679
    </xs:annotation>
680
    <xs:complexContent>
681
      <xs:extension base="mb:GmlRendererBaseType">
682
        <xs:sequence>
683
          <xs:element name="stylesheet" type="mb:urlPathType" minOccurs="0">
684
            <xs:annotation>
685
              <xs:documentation>this property specifies a relative or absolute URL to a stylesheet that can replace the default stylesheet.  The stylesheet must be served from the same domain as the mapbuilder application.  Optional, if missing a default stylesheet will be used (in the lib/widget directory with the same name as the widget)</xs:documentation>
686
            </xs:annotation>
687
          </xs:element>
688
          <xs:element name="featureOnClick" type="xs:string" minOccurs="0">
689
            <xs:annotation>
690
              <xs:documentation>id of a widget that performs onClick action when a feature is clicked.</xs:documentation>
691
            </xs:annotation>
692
          </xs:element>
693
          <xs:element name="featureOnHover" type="xs:string" minOccurs="0">
694
            <xs:annotation>
695
              <xs:documentation>id of a widget that performs onHover action when a feature is hovered.</xs:documentation>
696
            </xs:annotation>
697
          </xs:element>
698
        </xs:sequence>
699
      </xs:extension>
700
    </xs:complexContent>
701
  </xs:complexType>
702
  <xs:complexType name="GraticuleType">
703
    <xs:annotation>
704
      <xs:documentation>tbd</xs:documentation>
705
    </xs:annotation>
706
    <xs:complexContent>
707
      <xs:extension base="mb:AbstractButtonBaseType">
708
        <xs:sequence>
709
          <xs:element name="color" type="xs:string"/>
710
          <xs:element name="mapContainerId" type="xs:string">
711
            <xs:annotation>
712
              <xs:documentation>Used to assign an ID to a container DIV element for 2 dimensional map widgets.  Multiple widgets may share this container for rendering their output. The first model encountered in the config file using this ID becomes the "source" model for this widget so that extent, AOI and orther map related data can be shared by multiple models.   Required.  </xs:documentation>
713
            </xs:annotation>
714
          </xs:element>
715
        </xs:sequence>
716
      </xs:extension>
717
    </xs:complexContent>
718
  </xs:complexType>
719
  <xs:complexType name="InsertFeatureType">
720
    <xs:annotation>
721
      <xs:documentation>When this button is selected, a WFS InsertFeature request is build from the targetModel and posted to the WFS.</xs:documentation>
722
    </xs:annotation>
723
    <xs:complexContent>
724
      <xs:extension base="mb:AbstractButtonBaseType">
725
        <xs:sequence>
726
          <xs:element name="transactionResponseModel" type="xs:string" minOccurs="0">
727
            <xs:annotation>
728
              <xs:documentation>The model which will be populated with the server response from a transaction request.</xs:documentation>
729
            </xs:annotation>
730
          </xs:element>
731
          <xs:element name="webServiceUrl" type="mb:urlPathType" minOccurs="0">
732
            <xs:annotation>
733
              <xs:documentation>The base URL of the Web Service that will be queried.</xs:documentation>
734
            </xs:annotation>
735
          </xs:element>
736
        </xs:sequence>
737
      </xs:extension>
738
    </xs:complexContent>
739
  </xs:complexType>
740
  <xs:complexType name="LayerControlType">
741
    <xs:annotation>
742
      <xs:documentation>A widget for layer control.</xs:documentation>
743
    </xs:annotation>
744
    <xs:complexContent>
745
      <xs:extension base="mb:WidgetType">
746
        <xs:sequence>
747
          <xs:element name="opacity" type="xs:boolean" minOccurs="0"/>
748
          <xs:element name="legendImageEnable" type="mb:urlPathType" minOccurs="0"/>
749
          <xs:element name="legendImageDisable" type="mb:urlPathType" minOccurs="0"/>
750
          <xs:element name="moveUpImage" type="mb:urlPathType"/>
751
          <xs:element name="moveDownImage" type="mb:urlPathType"/>
752
          <xs:element name="deleteImage" type="mb:urlPathType"/>
753
          <xs:element name="title" type="xs:string" minOccurs="0"/>
754
        </xs:sequence>
755
      </xs:extension>
756
    </xs:complexContent>
757
  </xs:complexType>
758
  <xs:complexType name="LegendType">
759
    <xs:annotation>
760
      <xs:documentation>Simple legend for context documents, includes layer title and visibility checkbox</xs:documentation>
761
    </xs:annotation>
762
    <xs:complexContent>
763
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
764
        <xs:sequence>
765
          <xs:element name="title" type="xs:string" minOccurs="0"/>
766
        </xs:sequence>
767
      </xs:extension>
768
    </xs:complexContent>
769
  </xs:complexType>
770
  <xs:complexType name="LegendGraphicType">
771
    <xs:annotation>
772
      <xs:documentation>Render and update a Legend from a Web Map Context.</xs:documentation>
773
    </xs:annotation>
774
    <xs:complexContent>
775
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
776
        <xs:sequence>
777
          <xs:element name="title" type="xs:string" minOccurs="0"/>
778
        </xs:sequence>
779
      </xs:extension>
780
    </xs:complexContent>
781
  </xs:complexType>
782
  <xs:complexType name="Loading2Type">
783
    <xs:annotation>
784
      <xs:documentation>A widget to render a "loading..." message.</xs:documentation>
785
    </xs:annotation>
786
    <xs:complexContent>
787
      <xs:extension base="mb:AbstractWidgetBaseType">
788
        <xs:sequence>
789
          <xs:element name="mapContainerId" type="xs:string" minOccurs="0">
790
            <xs:annotation>
791
              <xs:documentation>Used to assign an ID to a container DIV element for 2 dimensional map widgets.  Multiple widgets may share this container for rendering their output. The first model encountered in the config file using this ID becomes the "source" model for this widget so that extent, AOI and orther map related data can be shared by multiple models.   Optional.  </xs:documentation>
792
            </xs:annotation>
793
          </xs:element>
794
          <xs:element name="imageSrc" type="mb:urlPathType" minOccurs="0"/>
795
          <xs:element name="textMessage" type="xs:string" minOccurs="0"/>
796
        </xs:sequence>
797
      </xs:extension>
798
    </xs:complexContent>
799
  </xs:complexType>
800
  <xs:complexType name="LocationsType">
801
    <xs:annotation>
802
      <xs:documentation>A widget to display contents of a Locations GML model (quick View presets or gazetteer output) and allow setting the AOI/zoom area for a Context model</xs:documentation>
803
    </xs:annotation>
804
    <xs:complexContent>
805
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
806
        <xs:sequence>
807
          <xs:element name="selectSize" type="xs:integer" minOccurs="0">
808
            <xs:annotation>
809
              <xs:documentation>defines the size of the select box, i.e. how many lines show in the scroll box; defaults to 1</xs:documentation>
810
            </xs:annotation>
811
          </xs:element>
812
        </xs:sequence>
813
      </xs:extension>
814
    </xs:complexContent>
815
  </xs:complexType>
816
  <xs:complexType name="MapPaneOLType">
817
    <xs:annotation>
818
      <xs:documentation>Widget to render a map from an OGC context document.  The layers are rendered using http://openlayers.org .</xs:documentation>
819
    </xs:annotation>
820
    <xs:complexContent>
821
      <xs:extension base="mb:AbstractWidgetBaseType">
822
        <xs:sequence>
823
          <xs:element name="loadingSrc" type="mb:urlPathType" minOccurs="0"/>
824
          <xs:element name="maxExtent" type="xs:string" minOccurs="0">
825
            <xs:annotation>
826
              <xs:documentation>Sets the maximum extent of the map. This is not the initial extent when the map is loaded (that's the bounding box from the context), but it is the maximum extent that the user can navigate around in.</xs:documentation>
827
            </xs:annotation>
828
          </xs:element>
829
          <xs:element name="maxResolution" type="xs:double" minOccurs="0"/>
830
          <xs:element name="minResolution" type="xs:double" minOccurs="0"/>
831
          <xs:element name="resolutions" type="xs:string" minOccurs="0">
832
            <xs:annotation>
833
              <xs:documentation>Set a list of fixed resolutions for OL manually.</xs:documentation>
834
            </xs:annotation>
835
          </xs:element>
836
          <xs:element name="fixedSize" type="xs:boolean" minOccurs="0">
837
            <xs:annotation>
838
              <xs:documentation>if this is set to true, the size will be taken from the context doc. Otherwise, it is dynamically taken from the parent element.</xs:documentation>
839
            </xs:annotation>
840
          </xs:element>
841
           <xs:element name="singleTile" type="xs:boolean" minOccurs="0">
842
            <xs:annotation>
843
              <xs:documentation>if this is set to false, a WMS layer will be requested according to the tileschema of the baselayer. Otherwise, it will request a single tile.</xs:documentation>
844
            </xs:annotation>
845
          </xs:element>
846
           <xs:element name="transitionEffect" type="xs:string" minOccurs="0">
847
            <xs:annotation>
848
              <xs:documentation>For untiled wms layers: if set to "resize", map will not disappear while panning and zooming.</xs:documentation>
849
            </xs:annotation>
850
          </xs:element>
851
          <xs:element name="tileGutter" type="xs:int" minOccurs="0">
852
            <xs:annotation>
853
              <xs:documentation>For tiled wms layers: Overlap of map tiles in pixels. Useful for preventing rendering artefacts at tile edges. Recommended values: 0-15, default is 0 (no gutter at all).</xs:documentation>
854
            </xs:annotation>
855
          </xs:element>
856
          <xs:element name="tileBuffer" type="xs:int" minOccurs="0">
857
            <xs:annotation>
858
              <xs:documentation>For tiled wms layers: how many rows of tiles should be preloaded outside the visible map? Large values mean slow loading, small ones mean longer delays when panning. Recommended values: 1-3, default is 2.</xs:documentation>
859
            </xs:annotation>
860
          </xs:element>
861
          <xs:element name="tileSize" type="xs:int" minOccurs="0">
862
            <xs:annotation>
863
              <xs:documentation>For tiled wms layers: how many pixels should the size of one tile be? Default is 256.</xs:documentation>
864
            </xs:annotation>
865
          </xs:element>
866
          <xs:element name="imageBuffer" type="xs:float" minOccurs="0">
867
            <xs:annotation>
868
              <xs:documentation>for untiled wms layers: how many times should the map image be larger than the visible map. Large values mean slow loading, small ones mean many reloads when panning. Recommended values: 1-3, default is 2.</xs:documentation>
869
            </xs:annotation>
870
          </xs:element>
871
          <xs:element name="displayOutsideMaxExtent" type="xs:boolean" minOccurs="0">
872
            <xs:annotation>
873
              <xs:documentation>Should layers also be rendered outside the map extent? Default is false.</xs:documentation>
874
            </xs:annotation>
875
          </xs:element>
876
          <xs:element name="imageReproject" type="xs:boolean" minOccurs="0">
877
            <xs:annotation>
878
              <xs:documentation>Should layers be reprojected? Mainly used in combination with google map layers. Default is false.</xs:documentation>
879
            </xs:annotation>
880
          </xs:element>
881
        </xs:sequence>
882
      </xs:extension>
883
    </xs:complexContent>
884
  </xs:complexType>
885
  <xs:complexType name="MapScaleBarType">
886
    <xs:annotation>
887
      <xs:documentation>A widget to graphically display the map scale</xs:documentation>
888
    </xs:annotation>
889
    <xs:complexContent>
890
      <xs:extension base="mb:AbstractWidgetBaseType">
891
        <xs:sequence>
892
          <xs:element name="displaySystem" type="xs:string" minOccurs="0"/>
893
          <xs:element name="minWidth" type="xs:integer" minOccurs="0"/>
894
          <xs:element name="maxWidth" type="xs:integer" minOccurs="0"/>
895
          <xs:element name="divisions" type="xs:integer" minOccurs="0"/>
896
          <xs:element name="subdivisions" type="xs:integer" minOccurs="0"/>
897
          <xs:element name="showMinorMeasures" type="xs:boolean" minOccurs="0"/>
898
          <xs:element name="abbreviateLabel" type="xs:boolean" minOccurs="0"/>
899
          <xs:element name="singleLine" type="xs:boolean" minOccurs="0"/>
900
          <xs:element name="align" type="xs:string" minOccurs="0"/>
901
        </xs:sequence>
902
      </xs:extension>
903
    </xs:complexContent>
904
  </xs:complexType>
905
  <xs:complexType name="MapScaleTextType">
906
    <xs:annotation>
907
      <xs:documentation>A widget to read and write the map scale value</xs:documentation>
908
    </xs:annotation>
909
    <xs:complexContent>
910
      <xs:extension base="mb:AbstractWidgetBaseXSLType"/>
911
    </xs:complexContent>
912
  </xs:complexType>
913
  <xs:complexType name="ModelStatusType">
914
    <xs:annotation>
915
      <xs:documentation>Widget to display the status of a model, repainted whenever the model status param is set.</xs:documentation>
916
    </xs:annotation>
917
    <xs:complexContent>
918
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
919
        <xs:sequence>
920
          <xs:element name="title" type="xs:string" minOccurs="0"/>
921
        </xs:sequence>
922
      </xs:extension>
923
    </xs:complexContent>
924
  </xs:complexType>
925
  <xs:complexType name="ModelUrlInputType">
926
    <xs:annotation>
927
      <xs:documentation>A widget which displays the model URL in a form which also allows the URL to be modified</xs:documentation>
928
    </xs:annotation>
929
    <xs:complexContent>
930
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
931
        <xs:sequence>
932
          <xs:element name="defaultUrl" type="mb:urlPathType" minOccurs="0"/>
933
          <xs:element name="title" type="xs:string" minOccurs="0"/>
934
        </xs:sequence>
935
      </xs:extension>
936
    </xs:complexContent>
937
  </xs:complexType>
938
  <xs:complexType name="OpenLSFormType">
939
    <xs:annotation>
940
      <xs:documentation>Widget to display the OpenLS request form.</xs:documentation>
941
    </xs:annotation>
942
    <xs:complexContent>
943
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
944
        <xs:sequence>
945
          <xs:element name="defaultModelUrl" type="mb:urlPathType"/>
946
          <xs:element name="geocodeServerUrl" type="mb:urlPathType"/>
947
          <xs:element name="formName" type="xs:string" minOccurs="0"/>
948
        </xs:sequence>
949
      </xs:extension>
950
    </xs:complexContent>
951
  </xs:complexType>
952
  <xs:complexType name="OpenLSResponseType">
953
    <xs:annotation>
954
      <xs:documentation>Render the response from a Geocoding request.</xs:documentation>
955
    </xs:annotation>
956
    <xs:complexContent>
957
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
958
        <xs:sequence>
959
          <xs:element name="title" type="xs:string" minOccurs="0"/>
960
        </xs:sequence>
961
      </xs:extension>
962
    </xs:complexContent>
963
  </xs:complexType>
964
  <xs:complexType name="OverviewMapType">
965
    <xs:annotation>
966
      <xs:documentation>Render an overview map from the main map; if neither width nor height are defined, uses the OL default of (180,90).</xs:documentation>
967
    </xs:annotation>
968
    <xs:complexContent>
969
      <xs:extension base="mb:AbstractWidgetBaseType">
970
        <xs:sequence>
971
          <xs:element name="width" type="xs:integer" minOccurs="0">
972
            <xs:annotation>
973
              <xs:documentation>The width of the overview map; optional. If only width is given and not height, determines the height from the aspect ratio of the main map.</xs:documentation>
974
            </xs:annotation>
975
          </xs:element>
976
          <xs:element name="height" type="xs:integer" minOccurs="0">
977
            <xs:annotation>
978
              <xs:documentation>The height of the overview map; optional. If only height is given and not width, determines the width from the aspect ratio of the main map.</xs:documentation>
979
            </xs:annotation>
980
          </xs:element>
981
          <xs:element name="minRatio" type="xs:integer" minOccurs="0">
982
            <xs:annotation>
983
              <xs:documentation>Resolution ratio to main map where zooming out will occur.</xs:documentation>
984
            </xs:annotation>
985
          </xs:element>
986
          <xs:element name="maxRatio" type="xs:integer" minOccurs="0">
987
            <xs:annotation>
988
              <xs:documentation>Resolution ratio to main map where zooming in will occur.</xs:documentation>
989
            </xs:annotation>
990
          </xs:element>
991
          <xs:element name="layers" minOccurs="0">
992
            <xs:annotation>
993
              <xs:documentation>The list of layer names from the main map context to show in the overview map. If not given, the overview map defaults to just the base layer of the main map.</xs:documentation>
994
            </xs:annotation>
995
            <xs:complexType>
996
              <xs:sequence>
997
                <xs:element name="layerName" type="xs:string" maxOccurs="unbounded">
998
                  <xs:annotation>
999
                    <xs:documentation>The name of the layer from the main map context to show in the overview map.</xs:documentation>
1000
                  </xs:annotation>
1001
                </xs:element>
1002
              </xs:sequence>
1003
            </xs:complexType>
1004
          </xs:element>
1005
        </xs:sequence>
1006
      </xs:extension>
1007
    </xs:complexContent>
1008
  </xs:complexType>
1009
  <xs:complexType name="PanZoomBarType">
1010
    <xs:annotation>
1011
      <xs:documentation>An OpenLayers-style PanZoomBar widget that is drawn on the main map.</xs:documentation>
1012
    </xs:annotation>
1013
    <xs:complexContent>
1014
      <xs:extension base="mb:AbstractWidgetBaseType"/>
1015
    </xs:complexContent>
1016
  </xs:complexType>
1017
  <xs:complexType name="SaveType">
1018
    <xs:annotation>
1019
      <xs:documentation>After this button is selected, the Web Map Context is saved on the users local computer.</xs:documentation>
1020
    </xs:annotation>
1021
    <xs:complexContent>
1022
      <xs:extension base="mb:AbstractButtonBaseType">
1023
        <xs:sequence>
1024
          <xs:element name="popupWindowName" type="xs:string"/>
1025
        </xs:sequence>
1026
      </xs:extension>
1027
    </xs:complexContent>
1028
  </xs:complexType>
1029
  <xs:complexType name="SaveModelType">
1030
    <xs:annotation>
1031
      <xs:documentation>A widget that provides a link to the initial model URL and a link tosave the current model document to disk (to be deprecated for a tool)</xs:documentation>
1032
    </xs:annotation>
1033
    <xs:complexContent>
1034
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
1035
        <xs:sequence>
1036
          <xs:element name="serializeUrl" type="mb:urlPathType" minOccurs="0"/>
1037
        </xs:sequence>
1038
      </xs:extension>
1039
    </xs:complexContent>
1040
  </xs:complexType>
1041
  <xs:complexType name="SearchWidgetType">
1042
    <xs:annotation>
1043
      <xs:documentation>Widget to display a form to input any model's URL and load the new URL as the model's document.</xs:documentation>
1044
    </xs:annotation>
1045
    <xs:complexContent>
1046
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
1047
        <xs:sequence>
1048
          <xs:element name="host" type="xs:anyURI"/>
1049
        </xs:sequence>
1050
      </xs:extension>
1051
    </xs:complexContent>
1052
  </xs:complexType>
1053
  <xs:complexType name="TabbedContentType">
1054
    <xs:complexContent>
1055
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
1056
        <xs:sequence>
1057
          <xs:element name="tab" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
1058
          <xs:element name="title" type="xs:string" minOccurs="0"/>
1059
        </xs:sequence>
1060
      </xs:extension>
1061
    </xs:complexContent>
1062
  </xs:complexType>
1063
  <xs:complexType name="TimestampType">
1064
    <xs:annotation>
1065
      <xs:documentation>A timestamp listener to show the current timestamp value in a form.</xs:documentation>
1066
    </xs:annotation>
1067
    <xs:complexContent>
1068
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
1069
        <xs:sequence>
1070
          <xs:element name="title" type="xs:string" minOccurs="0"/>
1071
        </xs:sequence>
1072
      </xs:extension>
1073
    </xs:complexContent>
1074
  </xs:complexType>
1075
  <xs:complexType name="TipWidgetBaseType">
1076
    <xs:complexContent>
1077
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
1078
        <xs:sequence>
1079
          <xs:element name="width" type="xs:integer" minOccurs="0"/>
1080
          <xs:element name="height" type="xs:integer" minOccurs="0"/>
1081
          <xs:element name="opacity" type="xs:float" minOccurs="0"/>
1082
          <xs:element name="backgroundColor" type="xs:string" minOccurs="0"/>
1083
          <xs:element name="border" type="xs:string" minOccurs="0">
1084
            <xs:annotation>
1085
              <xs:documentation>CSS border definition</xs:documentation>
1086
            </xs:annotation>
1087
          </xs:element>
1088
        </xs:sequence>
1089
      </xs:extension>
1090
    </xs:complexContent>
1091
  </xs:complexType>
1092
  <xs:complexType name="TipWidgetConfigType">
1093
    <xs:annotation>
1094
      <xs:documentation>Configuration widget for a TipWidgetOL in a MergeModel. Because only one GmlRendererLayer can handle events, multiple vector layers that require user interaction (like hover/click) effects are merged into a MergeModel. TipWidgetConfig makes it possible to use different configurations (eg width, height, content) for sourceModels.</xs:documentation>
1095
    </xs:annotation>
1096
    <xs:complexContent>
1097
      <xs:extension base="mb:TipWidgetBaseType">
1098
        <xs:sequence>
1099
          <xs:element name="targetWidget" type="xs:string"/>
1100
        </xs:sequence>
1101
      </xs:extension>
1102
    </xs:complexContent>
1103
  </xs:complexType>
1104
  <xs:complexType name="TipWidgetOLType">
1105
    <xs:annotation>
1106
      <xs:documentation>Popup using OpenLayers popups.</xs:documentation>
1107
    </xs:annotation>
1108
    <xs:complexContent>
1109
      <xs:extension base="mb:TipWidgetBaseType"/>
1110
    </xs:complexContent>
1111
  </xs:complexType>
1112
  <xs:complexType name="WebServiceFormType">
1113
    <xs:annotation>
1114
      <xs:documentation>A widget of config to input simple parameters to be submitted to a web service.  Output is sent to the targetModel.</xs:documentation>
1115
    </xs:annotation>
1116
    <xs:complexContent>
1117
      <xs:extension base="mb:AbstractWidgetBaseXSLType">
1118
        <xs:sequence>
1119
          <xs:element name="requestStylesheet" type="mb:urlPathType" minOccurs="0"/>
1120
          <xs:element name="webServiceUrl" type="xs:anyURI" minOccurs="0"/>
1121
        </xs:sequence>
1122
      </xs:extension>
1123
    </xs:complexContent>
1124
  </xs:complexType>
1125
  <xs:complexType name="WfsGetFeatureType">
1126
    <xs:annotation>
1127
      <xs:documentation>After this button is selected, clicks on a MapPane will initiate a WFS GetFeature GET request and the result will be stored in the targetModel FeatureCollection.</xs:documentation>
1128
    </xs:annotation>
1129
    <xs:complexContent>
1130
      <xs:extension base="mb:AbstractButtonBaseType">
1131
        <xs:sequence>
1132
          <xs:element name="transactionResponseModel" type="xs:string">
1133
            <xs:annotation>
1134
              <xs:documentation>The model which will be populated with the server response.</xs:documentation>
1135
            </xs:annotation>
1136
          </xs:element>
1137
          <xs:element name="webServiceUrl" type="mb:urlPathType">
1138
            <xs:annotation>
1139
              <xs:documentation>The base URL of the Web Service that will be queried.</xs:documentation>
1140
            </xs:annotation>
1141
          </xs:element>
1142
          <xs:element name="webServiceSrs" type="xs:string">
1143
            <xs:annotation>
1144
              <xs:documentation>The SRS to be used when requesting features from the server.</xs:documentation>
1145
            </xs:annotation>
1146
          </xs:element>
1147
          <xs:element name="typeName" type="xs:string">
1148
            <xs:annotation>
1149
              <xs:documentation>A comma separated list of layers to query.</xs:documentation>
1150
            </xs:annotation>
1151
          </xs:element>
1152
          <xs:element name="tolerance" type="xs:string" minOccurs="0">
1153
            <xs:annotation>
1154
              <xs:documentation>The number of pixels around the click point that are included in the query; tolerance=0 means a Bbox of 1x1 pixel is queried, tolerance=1 means a Bbox of 3x3 is queried, tolerance=2 means a Bbox of 5x5 is queried.</xs:documentation>
1155
            </xs:annotation>
1156
          </xs:element>
1157
          <xs:element name="maxFeatures" type="xs:string" minOccurs="0">
1158
            <xs:annotation>
1159
              <xs:documentation>The maximum number of features returned by the query.</xs:documentation>
1160
            </xs:annotation>
1161
          </xs:element>
1162
        </xs:sequence>
1163
      </xs:extension>
1164
    </xs:complexContent>
1165
  </xs:complexType>
1166
  <xs:complexType name="WidgetType">
1167
    <xs:annotation>
1168
      <xs:documentation>A generic widget which will simply process a model with a stylesheet - no specialized listeners provided</xs:documentation>
1169
    </xs:annotation>
1170
    <xs:complexContent>
1171
      <xs:extension base="mb:AbstractWidgetBaseXSLType"/>
1172
    </xs:complexContent>
1173
  </xs:complexType>
1174

    
1175
  <!-- global tool extension types -->  
1176
  <xs:complexType name="Caps2ContextType">
1177
    <xs:annotation>
1178
      <xs:documentation>A tool which builds a Web Map Context document from a Web Map Capabilities document.</xs:documentation>
1179
    </xs:annotation>
1180
    <xs:complexContent>
1181
      <xs:extension base="mb:AbstractToolBaseType"/>
1182
    </xs:complexContent>
1183
  </xs:complexType>
1184
  <xs:complexType name="EditContextType">
1185
    <xs:annotation>
1186
      <xs:documentation>Tool which manipulates the Layer list of a Web Map Context document.</xs:documentation>
1187
    </xs:annotation>
1188
    <xs:complexContent>
1189
      <xs:extension base="mb:AbstractToolBaseType"/>
1190
    </xs:complexContent>
1191
  </xs:complexType>
1192
  <xs:complexType name="EditSLDType">
1193
    <xs:annotation>
1194
      <xs:documentation>TBD</xs:documentation>
1195
    </xs:annotation>
1196
    <xs:complexContent>
1197
      <xs:extension base="mb:AbstractToolBaseType"/>
1198
    </xs:complexContent>
1199
  </xs:complexType>
1200
  <xs:complexType name="HistoryType">
1201
    <xs:annotation>
1202
      <xs:documentation>A tool to navigate in the map extent history</xs:documentation>
1203
    </xs:annotation>
1204
    <xs:complexContent>
1205
      <xs:extension base="mb:AbstractToolBaseType"/>
1206
    </xs:complexContent>
1207
  </xs:complexType>
1208
  <xs:complexType name="MergeModelsType">
1209
    <xs:annotation>
1210
      <xs:documentation>A tool that can combine other models from the config that have the same structure. It is designed for models that hold features with a unique feature id in a parameter called "fid". This is useful eg. for packing all GML rendering into a single GmlRendererOL.</xs:documentation>
1211
    </xs:annotation>
1212
    <xs:complexContent>
1213
      <xs:extension base="mb:AbstractToolBaseType">
1214
        <xs:sequence>
1215
          <xs:element name="merges">
1216
            <xs:annotation>
1217
              <xs:documentation>a list of models that are to be merged into the model that this tool belongs to.</xs:documentation>
1218
            </xs:annotation>
1219
            <xs:complexType>
1220
              <xs:sequence>
1221
                <xs:element name="merge" maxOccurs="unbounded">
1222
                  <xs:annotation>
1223
                    <xs:documentation>id of a model to merge with the model that this tool belongs to.</xs:documentation>
1224
                  </xs:annotation>
1225
                </xs:element>
1226
              </xs:sequence>
1227
            </xs:complexType>
1228
          </xs:element>
1229
        </xs:sequence>
1230
      </xs:extension>
1231
    </xs:complexContent>
1232
  </xs:complexType>
1233
  <xs:complexType name="FeatureSelectHandlerType">
1234
    <xs:annotation>
1235
      <xs:documentation>Adds a handler to the map that allows selection of features (eg. for highlighting them on mouseover)</xs:documentation>
1236
    </xs:annotation>
1237
    <xs:complexContent>
1238
      <xs:extension base="mb:AbstractToolBaseType"/>
1239
    </xs:complexContent>
1240
  </xs:complexType>
1241
  <xs:complexType name="MovieLoopType">
1242
    <xs:annotation>
1243
      <xs:documentation/>
1244
    </xs:annotation>
1245
    <xs:complexContent>
1246
      <xs:extension base="mb:AbstractToolBaseType">
1247
        <xs:sequence>
1248
          <xs:element name="framesPerSecond" type="xs:integer" minOccurs="0"/>
1249
          <xs:element name="maxFrames" type="xs:integer" minOccurs="0"/>
1250
        </xs:sequence>
1251
      </xs:extension>
1252
    </xs:complexContent>
1253
  </xs:complexType>
1254
  <xs:complexType name="TimerType">
1255
    <xs:annotation>
1256
      <xs:documentation>TBD</xs:documentation>
1257
    </xs:annotation>
1258
    <xs:complexContent>
1259
      <xs:extension base="mb:AbstractToolBaseType">
1260
        <xs:sequence>
1261
          <xs:element name="autoStart" type="xs:boolean" minOccurs="0"/>
1262
          <xs:element name="eventName" type="xs:string" minOccurs="0"/>
1263
          <xs:element name="eventValue" type="xs:string" minOccurs="0"/>
1264
          <xs:element name="every" type="xs:integer" minOccurs="0"/>
1265
        </xs:sequence>
1266
      </xs:extension>
1267
    </xs:complexContent>
1268
  </xs:complexType>
1269
  <xs:complexType name="WebServiceRequestType">
1270
    <xs:annotation>
1271
      <xs:documentation>A tool which will generate web service requests from a node from the parent model. Widgets using this tool end with WSR, eg. GetFeatureInfoWSR</xs:documentation>
1272
    </xs:annotation>
1273
    <xs:complexContent>
1274
      <xs:extension base="mb:AbstractToolBaseType">
1275
        <xs:sequence>
1276
          <xs:element name="stylesheet" type="xs:string" minOccurs="0"/>
1277
          <xs:element name="requestName" type="xs:string"/>
1278
          <xs:element name="requestFilter" type="xs:string" minOccurs="0"/>
1279
          <xs:element name="maxFeatures" type="xs:integer" minOccurs="0">
1280
            <xs:annotation>
1281
              <xs:documentation>MAXFEATURES parameter, e.g. for WFS GetFeature. Defaults to 500.</xs:documentation>
1282
            </xs:annotation>
1283
          </xs:element>
1284
          <xs:element name="infoFormat" type="xs:string" minOccurs="0">
1285
            <xs:annotation>
1286
              <xs:documentation>INFO_FORMAT parameter, e.g. for WMS GetFeatureInfo</xs:documentation>
1287
            </xs:annotation>
1288
          </xs:element>
1289
          <xs:element name="featureCount" type="xs:integer" minOccurs="0">
1290
            <xs:annotation>
1291
              <xs:documentation>FEATURE_COUNT parameter, eg. for WMS GetFeatureInfo</xs:documentation>
1292
            </xs:annotation>
1293
          </xs:element>
1294
          <xs:element name="maxFeatures" type="xs:integer" minOccurs="0">
1295
            <xs:annotation>
1296
              <xs:documentation>maxFeatures parameter, eg. for WFS GetFeature</xs:documentation>
1297
            </xs:annotation>
1298
          </xs:element>
1299
        </xs:sequence>
1300
      </xs:extension>
1301
    </xs:complexContent>
1302
  </xs:complexType>
1303
  <xs:complexType name="ZoomToAoiType">
1304
    <xs:annotation>
1305
      <xs:documentation>A tool reset the model extent to the AOI </xs:documentation>
1306
    </xs:annotation>
1307
    <xs:complexContent>
1308
      <xs:extension base="mb:AbstractToolBaseType"/>
1309
    </xs:complexContent>
1310
  </xs:complexType>
1311

    
1312
  <!--utility types-->
1313
  <xs:simpleType name="idType">
1314
    <xs:restriction base="xs:ID"/>
1315
  </xs:simpleType>
1316
  <xs:simpleType name="urlPathType">
1317
    <xs:restriction base="xs:string"/>
1318
  </xs:simpleType>
1319
  <xs:complexType name="tooltipType">
1320
    <xs:simpleContent>
1321
      <xs:extension base="xs:string">
1322
        <xs:attribute ref="xml:lang"/>
1323
      </xs:extension>
1324
    </xs:simpleContent>
1325
  </xs:complexType>
1326
  <xs:complexType name="httpMethodType">
1327
    <xs:simpleContent>
1328
      <xs:extension base="xs:string"/>
1329
    </xs:simpleContent>
1330
  </xs:complexType>
1331
</xs:schema>
(2-2/4)