<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
LML - LLView markup language


Copyright (c) 2011 Forschungszentrum Juelich GmbH

All rights reserved. This program and the accompanying materials

are made available under the terms of the Eclipse Public License v1.0

which accompanies this distribution and is available at

http://www.eclipse.org/legal/epl-v10.html
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:lml="http://www.llview.de" targetNamespace="http://www.llview.de">

    <include schemaLocation="usagebar.xsd"/>
    <include schemaLocation="lgui.xsd"/>
    <complexType name="element_type">
    	<annotation>
    		<documentation>
    			Abstract element type for either scheme- or
    			data-elements. This element is repeated (max-min+1)
    			times, if step in the scheme-section is 1. max should be
    			higher then min. If max is left out, max will be set to
    			min (max=min). min="0", max="0" means there is only one
    			element.
    		</documentation>
    	</annotation>
    	<attribute name="min" type="nonNegativeInteger">
    		<annotation>
    			<documentation>
    				Defines a list of elements. In default-case (count
    				is not defined) count is set to one.
    			</documentation>
    		</annotation>
    	</attribute>
    	<attribute name="max" type="nonNegativeInteger"/>
    	<attribute name="list" type="lml:list_type"/>
    </complexType>




    <complexType name="scheme_type">
        <annotation>
        	<documentation>Scheme description of batch-system. Describes an empty instance of the actual batch system.</documentation>
        </annotation>
        <sequence>
    		<element maxOccurs="unbounded" minOccurs="1" name="el1" type="lml:scheme_element1"/>
    	</sequence>
    </complexType>


    <complexType name="data_type">
    	<sequence>
    		<element maxOccurs="unbounded" minOccurs="1" name="el1" type="lml:data_element1"/>
    	</sequence>
    </complexType>

    <complexType name="nodedisplay">
    	<annotation>
    		<documentation>
    			Representation of the overview about cpus and which jobs
    			are running on which cpu/node. Designed as tree.
    			Scheme-tag describes an empty batch-system, data-tag the
    			actual situation in this system. Data-tag connects
    			elements in the nodedisplay with jobs, which are running
    			in the system.
    		</documentation>
    	</annotation>
    	<complexContent>
    		<extension base="lml:gobject_type">
    			<sequence>
    				<element name="scheme" type="lml:scheme_type">

    					<!-- defines unique tag-names within nodedisplay/scheme -->
    					<key name="schemetagKey">
    						<selector xpath=".//el"/>
    						<field xpath="@tagname"/>
    					</key>

    				</element>
    				<element name="data" type="lml:data_type">

    					<!-- References to allowed tagnames within scheme-tag 
    						<keyref name="schemetagRef" refer="lml:schemetagKey">
    						<selector xpath=".//el"/>
    						<field xpath="@tagname"/>
    						</keyref>-->
    					<!-- referenced implicit names can only be used once -->
    					<unique name="refidsUnique">
        					<selector xpath=".//*"/>
        					<field xpath="@refid"/>
        				</unique>

    				</element>
    			</sequence>
    			<attribute name="refto" type="string"/>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element1">
    	<complexContent>
    		<extension base="lml:scheme_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el2" type="lml:scheme_element2"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>
    
    <complexType name="scheme_element10">
    	<complexContent>
    		<extension base="lml:scheme_element"/>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element9">
    	<complexContent>
    		<extension base="lml:scheme_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el10" type="lml:scheme_element10"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element8">
    	<complexContent>
    		<extension base="lml:scheme_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el9" type="lml:scheme_element9"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element7">
    	<complexContent>
    		<extension base="lml:scheme_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el8" type="lml:scheme_element8"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element6">
    	<complexContent>
    		<extension base="lml:scheme_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el7" type="lml:scheme_element7"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element5">
    	<complexContent>
    		<extension base="lml:scheme_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el6" type="lml:scheme_element6"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element4">
    	<complexContent>
    		<extension base="lml:scheme_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el5" type="lml:scheme_element5"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element3">
    	<complexContent>
    		<extension base="lml:scheme_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el4" type="lml:scheme_element4"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element2">
    	<complexContent>
    		<extension base="lml:scheme_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el3" type="lml:scheme_element3"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>
    
    
    <complexType name="data_element1">
    	<complexContent>
    		<extension base="lml:data_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el2" type="lml:data_element2"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>
    
    <complexType name="data_element10">
    	<complexContent>
    		<extension base="lml:data_element"/>
    	</complexContent>
    </complexType>

    <complexType name="data_element9">
    	<complexContent>
    		<extension base="lml:data_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el10" type="lml:data_element10"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="data_element8">
    	<complexContent>
    		<extension base="lml:data_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el9" type="lml:data_element9"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="data_element7">
    	<complexContent>
    		<extension base="lml:data_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el8" type="lml:data_element8"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="data_element6">
    	<complexContent>
    		<extension base="lml:data_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el7" type="lml:data_element7"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="data_element5">
    	<complexContent>
    		<extension base="lml:data_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el6" type="lml:data_element6"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="data_element4">
    	<complexContent>
    		<extension base="lml:data_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el5" type="lml:data_element5"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="data_element3">
    	<complexContent>
    		<extension base="lml:data_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el4" type="lml:data_element4"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="data_element2">
    	<complexContent>
    		<extension base="lml:data_element">
    			<sequence>
    				<element maxOccurs="unbounded" minOccurs="0" name="el3" type="lml:data_element3"/>
    			</sequence>
    		</extension>
    	</complexContent>
    </complexType>


    <complexType name="data_element">
    	<annotation>
    		<documentation>
    			Abstract base-type for el-tags in data-tag. Could be
    			used for special attributes, which only data-elements
    			are allowed to include.
    		</documentation>
    	</annotation>
    	<complexContent>
    		<extension base="lml:element_type">
    			<sequence>
    				<element name="usage" type="lml:usage_type" minOccurs="0" maxOccurs="1">
    					<annotation>
    						<documentation>The nodedisplay-tree can be cut on every level.
To sum up all lower element's information a usagebar can be added to every data_element.
The oid-attribute is still required and should contain the id of the biggest job running on this node.
The usage-element can also be optionally added to every physical element. It sums up
all information of the specific sub-tree. Thus a full expanded tree can be generated, but
LML-clients are able to stop reading the tree on every level by using the usagebars.</documentation>
    					</annotation></element>
    			</sequence>
    			<attribute name="oid" type="NCName">
    				<annotation>
    					<documentation>
    						Reference to one job within objects-tag. To
    						make sure, that every physical element is
    						connected to one job, this attribute is
    						required.
    					</documentation>
    				</annotation>
    			</attribute>
    			<attribute name="name" type="NCName">
    				<annotation>
    					<documentation>
    						For example: R30-M1 (Name of a node in
    						jugene).
    					</documentation>
    				</annotation>
    			</attribute>
    			<attribute name="description" type="string">
    				<annotation>
    					<documentation>
    						For example: A running node.
    					</documentation>
    				</annotation>
    			</attribute>
    			<attribute name="status" type="string">
    				<annotation>
    					<documentation>
    						For example running, waiting, broken.
    					</documentation>
    				</annotation>
    			</attribute>
    			<attribute name="refid" type="string" />
    		</extension>
    	</complexContent>
    </complexType>

    <complexType name="scheme_element">
    	<annotation>
    		<documentation>
    			All el?-tags will be subtypes of this type. Tagname has
    			to be defined here. Data-elements must not repeat this
    			tagname.
    		</documentation>
    	</annotation>
    	<complexContent>
    		<extension base="lml:element_type">
    			<attribute name="tagname" type="NCName"/>
    			<attribute default="%d-" name="mask">
    				<annotation>
    					<documentation>
    						If mask is not defined, default-mask is
    						"%d-". To separate name-parts of implicit
    						names use the length of the mask or a given
    						separator. An unidentifying mask like "%d"
    						is not allowed.
    					</documentation>
    				</annotation>
    				<simpleType>
    					<restriction base="string">
    						<pattern value="(([^%])*%(\-|\+|\s|\#)*0(\-|\+|\s|\#)*(\d)+d([^%])*)|(([^%])*%(\-|\+|\s|\#)*d([^%\d])+)|(([^%])*%(\-|\+|\s|\#)*1d([^%])*)">
    						</pattern>
    					</restriction>
    				</simpleType>
    			</attribute>
    			<attribute default="1" name="step" type="positiveInteger">
    				<annotation>
    					<documentation>
    						default-step-width is 1. This is the value,
    						which is set, if step is not defined.
    					</documentation>
    				</annotation>
    			</attribute>
    			<attribute name="map" type="lml:namemapping_type">
    				<annotation>
    					<documentation>Map names as implicit names to these components. mask and map can not be used together. map defines special names for all elements within this list. names must be separated by commas.</documentation>
    				</annotation>
</attribute>
    		</extension>
    	</complexContent>
    </complexType>


    <simpleType name="list_type">
        <annotation>
        	<documentation>Type for list-attribute in scheme- or data-tag. It allowes the definition of several positive integer-values seperated by commas.</documentation>
        </annotation>
        <restriction base="string">
    		<pattern value="\s*\d+\s*(\s*,\s*\d+)*"/>
    	</restriction>
    </simpleType>

    <simpleType name="namemapping_type">
        <annotation>
        	<documentation>This type is used to map special names to elements of the nodedisplay. Usually a digit has to be printed with a mask-atttribute, but if the name does not contain a digit, this type will be used to define those special names.</documentation>
        </annotation>
        <restriction base="string">
    		<pattern value=".*(,.*)*"/>
    	</restriction>
    </simpleType>
</schema>
