<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:fews="http://www.wldelft.nl/fews" targetNamespace="http://www.wldelft.nl/fews" elementFormDefault="qualified" version="1.0">
	<include schemaLocation="sharedTypes.xsd"/>
	<element name="webOperatorClient" type="fews:WebOperatorClientComplexType"/>
	<complexType name="WebOperatorClientComplexType">
		<sequence>
			<element name="general" type="fews:WebOperatorClientGeneralComplexType" minOccurs="0">
				<annotation>
					<documentation>General configurations that apply to the complete web oc.</documentation>
				</annotation>
			</element>
			<element name="components" type="fews:WebOperatorClientComponentsComplexType" minOccurs="0">
				<annotation>
					<documentation>The Web OC Components</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="WebOperatorClientComponentsComplexType">
		<sequence>
			<group ref="fews:WebOperatorClientComponentChoice" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Components Available in the Web OC</documentation>
				</annotation>
			</group>
		</sequence>
	</complexType>
	<group name="WebOperatorClientComponentChoice">
		<choice>
			<element name="topologyDisplay" type="fews:WebOperatorClientTopologyDisplayComplexType" minOccurs="0">
				<annotation>
					<documentation>Topology Display</documentation>
				</annotation>
			</element>
			<element name="spatialDisplay" type="fews:WebOperatorClientSpatialDisplayComplexType" minOccurs="0">
				<annotation>
					<documentation>Spatial Display</documentation>
				</annotation>
			</element>
			<element name="schematicStatusDisplay" type="fews:WebOperatorClientSchematicStatusDisplayComplexType" minOccurs="0">
				<annotation>
					<documentation>Schematic Status Display</documentation>
				</annotation>
			</element>
			<element name="htmlDisplay" type="fews:WebOperatorClientHtmlDisplayComplexType" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Help menu for the Web OC.</documentation>
				</annotation>
			</element>
		</choice>
	</group>
	<complexType name="WebOperatorClientGeneralComplexType">
		<sequence>
			<element name="title" type="string" minOccurs="0">
				<annotation>
					<documentation>Title of the Web OC</documentation>
				</annotation>
			</element>
			<element name="icons" type="fews:WebOperatorClientIconsComplexType" minOccurs="0">
				<annotation>
					<documentation>The Web OC icons. Can be specified using a fully qualified domain name or using a relative path.
						When using a relative path the file is expected to be in the WebResources configuration folder.</documentation>
				</annotation>
			</element>
			<element name="login" type="fews:WebOperatorClientLoginComplexType" minOccurs="0">
				<annotation>
					<documentation>The configuration of the login screen.</documentation>
				</annotation>
			</element>
			<element name="defaultComponent" type="fews:webOcComponentSimpleType" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. The component which will be shown after startup of the WEB OC.</documentation>
				</annotation>
			</element>
			<element name="customStyleSheet" type="anyURI" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Custom style sheet for the Web OC.</documentation>
				</annotation>
			</element>
			<element name="splashScreen" type="anyURI" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Splash screen for the Web OC.</documentation>
				</annotation>
			</element>
			<element name="helpMenu" type="fews:WebOperatorClientHelpMenuComplexType" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Help menu for the Web OC.</documentation>
				</annotation>
			</element>
			<element name="timeSettings" type="fews:WebOperatorClientTimeSettingsComplexType" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Time Settings that will allow selecting a view period. Default disabled</documentation>
				</annotation>
			</element>
			<element name="agreeToTermsAndConditions" type="fews:WebOperatorClientTermsOfUseComplexType" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Enable if the agree to terms and conditions popup should be shown before the Web OC can be used.</documentation>
				</annotation>
			</element>
			<element name="manifestFile" type="string" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Manifest file for the Web OC.</documentation>
				</annotation>
			</element>
			<element name="mapLayers" type="fews:MapLayersComplexType" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Map layer configuration.</documentation>
				</annotation>
			</element>
			<element name="sidePanel" type="fews:WebOperatorClientSidePanelComplexType" minOccurs="0">
				<annotation>
					<documentation>The Web OC Side Panel</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="MapLayersComplexType">
		<sequence>
			<element name="mapLayer" type="fews:MapLayerComplexType" maxOccurs="unbounded">
				<annotation>
					<documentation>Since 2023.02. Define map layer</documentation>
				</annotation>
			</element>
			<element name="defaultLightModeMapLayerId" type="string" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Define the default light mode</documentation>
				</annotation>
			</element>
			<element name="defaultDarkModeMapLayerId" type="string" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Define the default dark mode</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="MapLayerComplexType">
		<sequence>
			<element name="styleJsonFile" type="string">
				<annotation>
					<documentation>Since 2023.02. Define url of the style.json file. This file can be externally hosted (absolute url) or in the WebResourcesFiles/maplayers folder.</documentation>
				</annotation>
			</element>
			<element name="insertWmsBeforeLayerId" type="string" minOccurs="0">
				<annotation>
					<documentation>Since 2023.02. Define where the layer should be inserted, if nothing is defined the wms layer placed on top of all layers.</documentation>
				</annotation>
			</element>
			<element name="iconId" type="string">
				<annotation>
					<documentation>Since 2023.02. Define an icon for the map layer</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="id" type="string" use="required">
			<annotation>
				<documentation>Since 2023.02. Define the id of the map layer.</documentation>
			</annotation>
		</attribute>
		<attribute name="name" type="string">
			<annotation>
				<documentation>Since 2023.02. Define the name of the map layer.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientTermsOfUseComplexType">
		<attribute name="enabled" type="boolean" default="false">
			<annotation>
				<documentation>Since 2023.02. Enable if the agree to terms and conditions popup should be shown before the Web OC can be used.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientHelpMenuComplexType">
		<sequence>
			<element name="url" type="fews:WebOperatorClientHelpMenuUrlComplexType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="path" type="fews:WebOperatorClientHelpMenuPathComplexType" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="WebOperatorClientTimeSettingsComplexType">
		<sequence>
			<element name="showtimeSettings" type="boolean" default="false" minOccurs="0"/>
			<element name="viewPeriodPresets" type="fews:WebOperatorClientTimeSettingsViewPeriodPresetsComplexType" minOccurs="0"/>
		</sequence>
	</complexType>

	<complexType name="WebOperatorClientTimeSettingsViewPeriodPresetsComplexType">
		<sequence>
			<element name="relativeViewPeriod" type="fews:WebOperatorClientTimeSettingsRelativeViewPeriodComplexType" minOccurs="1" maxOccurs="unbounded"/>
		</sequence>
	</complexType>

	<complexType name="WebOperatorClientTimeSettingsRelativeViewPeriodComplexType">
		<attribute name="unit" type="fews:timeUnitEnumStringType" use="required"/>
		<attribute name="label" type="string" use="required">
			<annotation>
				<documentation>Label that is displayed in the Web Operator Client</documentation>
			</annotation>
		</attribute>
		<attribute name="start" type="fews:intStringType">
			<annotation>
				<documentation>e.g. -1 hour means one before time zero.</documentation>
			</annotation>
		</attribute>
		<attribute name="end" type="fews:intStringType">
			<annotation>
				<documentation>e.g. -1 hour means one before time zero.</documentation>
			</annotation>
		</attribute>
	</complexType>

	<complexType name="WebOperatorClientHtmlDisplayComplexType">
		<sequence>
			<element name="title" type="fews:nameStringType">
				<annotation>
					<documentation>Since 2023.02. Title for the html display</documentation>
				</annotation>
			</element>
			<element name="path" type="string">
				<annotation>
					<documentation>Since 2023.02. The path of the html display</documentation>
				</annotation>
			</element>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view the Html Display
					</documentation>
				</annotation>
			</element>
			<element name="url" type="anyURI">
				<annotation>
					<documentation>Since 2023.02. Url for the html display</documentation>
				</annotation>
			</element>
			<group ref="fews:IconGroup">
				<annotation>
					<documentation>
						Since 2023.03. Define an icon or a mdi icon for this display.
					</documentation>
				</annotation>
			</group>
		</sequence>
		<attribute name="enabled" type="boolean" default="false">
			<annotation>
				<documentation>By default the HTML Display is disabled.</documentation>
			</annotation>
		</attribute>
		<attribute name="showInNavigationMenu" type="boolean" default="true">
			<annotation>
				<documentation>Since 2024.01. If enabled, the component can be selected in the navigation menu</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientHelpMenuUrlComplexType">
		<simpleContent>
			<extension base="string">
				<attribute name="name" type="fews:nameStringType">
					<annotation>
						<documentation>The name of the url in the help menu</documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<complexType name="WebOperatorClientHelpMenuPathComplexType">
		<simpleContent>
			<extension base="string">
				<attribute name="name" type="fews:nameStringType">
					<annotation>
						<documentation>The name of the url in the help menu</documentation>
					</annotation>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<complexType name="WebOperatorClientSidePanelComplexType">
		<sequence>
			<element name="taskOverview" type="fews:WebOperatorClientSidePanelTaskOverviewComplexType" minOccurs="0">
				<annotation>
					<documentation>
						Show task overview in the side panel
					</documentation>
				</annotation>
			</element>
			<element name="nonCurrentData" type="fews:WebOperatorClientSidePanelNonCurrentDataComplexType" minOccurs="0">
				<annotation>
					<documentation>
						Show task overview in the side panel
					</documentation>
				</annotation>
			</element>
			<element name="importStatus" type="fews:WebOperatorClientSidePanelImportStatusComplexType" minOccurs="0">
				<annotation>
					<documentation>
						Show import status in the side panel
					</documentation>
				</annotation>
			</element>
			<element name="exportStatus" type="fews:WebOperatorClientSidePanelExportStatusComplexType" minOccurs="0">
				<annotation>
					<documentation>
						Show export status in the side panel
					</documentation>
				</annotation>
			</element>
			<element name="runTask" type="fews:WebOperatorClientSidePanelRunTaskComplexType" minOccurs="0">
				<annotation>
					<documentation>
						Show run task functionality in the side panel
					</documentation>
				</annotation>
			</element>
			<element name="documentFile" type="fews:WebOperatorClientSidePanelDocumentFileComplexType" minOccurs="0">
				<annotation>
					<documentation>
						Show document file in the side panel
					</documentation>
				</annotation>
			</element>
			<element name="logDisplay" type="fews:WebOperatorClientSidePanelLogDisplayComplexType" minOccurs="0">
				<annotation>
					<documentation>
						Show document file in the side panel
					</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="WebOperatorClientSidePanelTaskOverviewComplexType">
		<sequence>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view the task overview in the side panel
					</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="enabled" type="boolean" default="false">
			<annotation>
				<documentation>By default the Task Overview is disabled.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientSidePanelNonCurrentDataComplexType">
		<sequence>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view noncurrent data in the side panel
					</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="enabled" type="boolean" default="false">
			<annotation>
				<documentation>By default disabled.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientSidePanelImportStatusComplexType">
		<sequence>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view import status in the side panel
					</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="enabled" type="boolean" default="false">
			<annotation>
				<documentation>By default disabled.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientSidePanelExportStatusComplexType">
		<sequence>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view export status in the side panel
					</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="enabled" type="boolean" default="false">
			<annotation>
				<documentation>By default disabled.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientSidePanelRunTaskComplexType">
		<sequence>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view the run task function in the side panel
					</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="enabled" type="boolean" default="false">
			<annotation>
				<documentation>By default disabled.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientSidePanelDocumentFileComplexType">
		<sequence>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view document files in the side panel
					</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="enabled" type="boolean" default="false">
			<annotation>
				<documentation>By default the disabled.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientSidePanelLogDisplayComplexType">
		<sequence>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view document files in the side panel
					</documentation>
				</annotation>
			</element>
			<element name="logDisplayId" type="string">
				<annotation>
					<documentation>The id of the log display</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute name="enabled" type="boolean" default="false">
			<annotation>
				<documentation>By default the disabled.</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientTopologyDisplayComplexType">
		<sequence>
			<element name="title" type="string" minOccurs="0" default="Spatial Display">
				<annotation>
					<documentation>Title in the menu</documentation>
				</annotation>
			</element>
			<element name="topologyDisplayNodes" type="fews:WebOperatorClientTopologyComplexType" minOccurs="0">
				<annotation>
					<documentation>
						Since 2025.01 Define which topologyNodes can be used as the root of a topology display
					</documentation>
				</annotation>
			</element>
			<element name="defaultPath" type="fews:WebOperatorClientTopologyDisplayDefaultPathComplexType" minOccurs="0">
				<annotation>
					<documentation>Default path for the topology display</documentation>
				</annotation>
			</element>
			<element name="componentSettingsId" type="fews:idStringType" minOccurs="0">
				<annotation>
					<documentation>
						Since 2023.02. The components settings id which will be the default for the entire application.
					</documentation>
				</annotation>
			</element>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view the Topology Display
					</documentation>
				</annotation>
			</element>
			<element name="showLeafNodesAsButtons" type="boolean" default="false" minOccurs="0">
				<annotation>
					<documentation>
						If this option is set to true. The leaf nodes are not displayed in the topology tree but as buttons in map.
					</documentation>
				</annotation>
			</element>
			<element name="enableTaskRuns" type="boolean" default="false" minOccurs="0">
				<annotation>
					<documentation>
						Since 2023.02. Enable if the task runs button should be shown above the topology tree to allow running workflows.
					</documentation>
				</annotation>
			</element>
			<element name="showActiveThresholdCrossingsForFilters" type="boolean" default="false" minOccurs="0">
				<annotation>
					<documentation>
						Since 2023.02. Enable if the active thresholds should be displayed for filters.
					</documentation>
				</annotation>
			</element>
			<group ref="fews:IconGroup">
				<annotation>
					<documentation>
						Since 2023.03. Define an icon or a mdi icon for this display.
					</documentation>
				</annotation>
			</group>
		</sequence>
		<attribute name="id" type="fews:idStringType">
			<annotation>
				<documentation>it is mandatory to configure the id when you have multiple topology displays configured. If not configured the default id "topologyDisplay" will be used.</documentation>
			</annotation>
		</attribute>
		<attribute name="enabled" type="boolean" default="true">
			<annotation>
				<documentation>By default the Topology Display is enabled.</documentation>
			</annotation>
		</attribute>
		<attribute name="showInNavigationMenu" type="boolean" default="true">
			<annotation>
				<documentation>Since 2024.01. If enabled, the component can be selected in the navigation menu</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientTopologyComplexType">
		<sequence>
			<element name="nodeId" type="string" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="WebOperatorClientTopologyDisplayDefaultPathComplexType">
		<sequence>
			<element name="nodeId" type="string">
				<annotation>
					<documentation>Default node id of the topology node that should be opened on startup of the web oc.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="WebOperatorClientSpatialDisplayDefaultPathComplexType">
		<sequence>
			<element name="gridPlotId" type="string">
				<annotation>
					<documentation>Default grid plot id of the spatial display that should be opened on startup of the web oc.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="WebOperatorClientSchematicStatusDisplayDefaultPathComplexType">
		<sequence>
			<element name="groupId" type="string">
				<annotation>
					<documentation>Group id, which is determined by the filename of the scadaDisplay XML file that contains the panelId that should be opened on startup of the web oc.</documentation>
				</annotation>
			</element>
			<element name="panelId" type="string">
				<annotation>
					<documentation>Panel id of the schematic status display scadaPanel that should be opened on startup of the web oc.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<simpleType name="webOcComponentSimpleType">
		<annotation>
			<documentation>List of available web oc components</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="topologyDisplay"/>
			<enumeration value="spatialDisplay"/>
			<enumeration value="schematicStatusDisplay"/>
		</restriction>
	</simpleType>
	<complexType name="WebOperatorClientSpatialDisplayComplexType">
		<sequence>
			<element name="title" type="string" minOccurs="0" default="Spatial Display">
				<annotation>
					<documentation>Title in the menu</documentation>
				</annotation>
			</element>
			<element name="defaultPath" type="fews:WebOperatorClientSpatialDisplayDefaultPathComplexType" minOccurs="0">
				<annotation>
					<documentation>Default path for the topology display</documentation>
				</annotation>
			</element>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						Set a permission to control who can view the Spatial Display
					</documentation>
				</annotation>
			</element>
			<group ref="fews:IconGroup">
				<annotation>
					<documentation>
						Since 2023.03. Define an icon or a mdi icon for this display.
					</documentation>
				</annotation>
			</group>
		</sequence>
		<attribute name="enabled" type="boolean" default="true">
			<annotation>
				<documentation>By default the Spatial Display is enabled if configured.</documentation>
			</annotation>
		</attribute>
		<attribute name="showInNavigationMenu" type="boolean" default="true">
			<annotation>
				<documentation>Since 2024.01. If enabled, the component can be selected in the navigation menu</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientSchematicStatusDisplayComplexType">
		<sequence>
			<element name="title" type="string" minOccurs="0" default="Schematic Status Display">
				<annotation>
					<documentation>Title in the menu</documentation>
				</annotation>
			</element>
			<element name="defaultPath" type="fews:WebOperatorClientSchematicStatusDisplayDefaultPathComplexType" minOccurs="0">
				<annotation>
					<documentation>Default path for the schematic display</documentation>
				</annotation>
			</element>
			<element name="viewPermission" type="string" minOccurs="0">
				<annotation>
					<documentation>
						set a permission to control who can view the Schematic Status Display
					</documentation>
				</annotation>
			</element>
			<group ref="fews:IconGroup">
				<annotation>
					<documentation>
						Since 2023.03. Define an icon or a mdi icon for this display.
					</documentation>
				</annotation>
			</group>
		</sequence>
		<attribute name="enabled" type="boolean" default="true">
			<annotation>
				<documentation>By default the schematic status display is enabled if configured.</documentation>
			</annotation>
		</attribute>
		<attribute name="showInNavigationMenu" type="boolean" default="true">
			<annotation>
				<documentation>Since 2024.01. If enabled, the component can be selected in the navigation menu</documentation>
			</annotation>
		</attribute>
	</complexType>
	<complexType name="WebOperatorClientIconsComplexType">
		<sequence>
			<element name="logo" type="string" minOccurs="0">
				<annotation>
					<documentation>Reference to an image. This can be a fully qualified https URL or a relative URL. If a relative URL is used, the image has to be part of the WebResources configuration</documentation>
				</annotation>
			</element>
			<element name="favicon" type="string" minOccurs="0">
				<annotation>
					<documentation>Reference to an image. This can be a fully qualified https URL or a relative URL. If a relative URL is used, the image has to be part of the WebResources configuration. https://nl.wikipedia.org/wiki/Favicon</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<complexType name="WebOperatorClientLoginComplexType">
		<sequence>
			<element name="backgroundImage" type="string" minOccurs="0">
				<annotation>
					<documentation>Reference to a background image. This can be a fully qualified https URL or a relative URL. If a relative URL is used, the image has to be part of the WebResources configuration</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<group name="IconGroup">
		<choice>
			<element name="icon" type="fews:nameStringType" minOccurs="0">
				<annotation>
					<documentation>Since 202302. An icon from the webresources which can be used for the web oc display</documentation>
				</annotation>
			</element>
			<element name="iconId" type="fews:nameStringType" minOccurs="0">
				<annotation>
					<documentation>Since 202302. Configure the id of an icon for the web oc display</documentation>
				</annotation>
			</element>
		</choice>
	</group>
</schema>