blob: be57a8aa4b19009818ee577b0cc11fb0e4b50d33 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
LML - LLView markup language
Copyright (c) 2011-2013 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://eclipse.org/ptp/lml" targetNamespace="http://eclipse.org/ptp/lml">
<include schemaLocation="layout.xsd"/>
<include schemaLocation="nodedisplay.xsd"/>
<include schemaLocation="relation.xsd"/>
<include schemaLocation="chart.xsd"/>
<include schemaLocation="textboxes.xsd"/>
<include schemaLocation="usagebar.xsd"/>
<include schemaLocation="table.xsd"/>
<include schemaLocation="entities.xsd"/>
<include schemaLocation="layout.xsd"/>
<include schemaLocation="request.xsd"/>
<annotation>
<documentation>Defines root-object of lml.
Other objects like table,
information or charts are child-tags of this
object.
Defines global
constraints, keys and keyrefs.</documentation>
</annotation>
<complexType name="lgui_type">
<annotation>
<documentation>
Defines which main tags are allowed in LML.
</documentation>
</annotation>
<!-- table of content elements -->
<sequence maxOccurs="1" minOccurs="0">
<element maxOccurs="1" minOccurs="0" name="request" type="lml:RequestType"/>
<sequence maxOccurs="unbounded" minOccurs="0">
<!-- graphical objects -->
<sequence maxOccurs="1" minOccurs="0">
<element maxOccurs="1" minOccurs="0" name="objects" type="lml:objects_type">
</element>
<element maxOccurs="1" minOccurs="0" name="relations" type="lml:relations_type">
</element>
<element maxOccurs="1" minOccurs="0" name="information" type="lml:information_type">
</element>
<element maxOccurs="1" minOccurs="0" name="table" type="lml:table_type">
<!-- cid-attributes must refer to an existing columnID -->
<key name="columnID">
<selector xpath="column"/>
<field xpath="@id"/>
</key>
<keyref name="cellRef" refer="lml:columnID">
<selector xpath="row/cell"/>
<field xpath="@cid"/>
</keyref>
</element>
<element maxOccurs="1" minOccurs="0" name="usagebar" type="lml:usagebar_type">
</element>
<element maxOccurs="1" minOccurs="0" name="text" type="lml:textbox_type">
</element>
<element maxOccurs="1" minOccurs="0" name="infobox" type="lml:infobox_type">
</element>
<element maxOccurs="1" minOccurs="0" name="nodedisplay" type="lml:nodedisplay">
<!--
tagnames within scheme-tag are keys <key name="tagnameKey">
<selector xpath="scheme/el1 | scheme/el1/el2 | scheme/el1/el2/el3
| scheme/el1/el2/el3/el4| scheme/el1/el2/el3/el4/el5|
scheme/el1/el2/el3/el4/el5/el6|
scheme/el1/el2/el3/el4/el5/el6/el7|
scheme/el1/el2/el3/el4/el5/el6/el7/el8|
scheme/el1/el2/el3/el4/el5/el6/el7/el8/el9|
scheme/el1/el2/el3/el4/el5/el6/el7/el8/el9/el10" /> <field
xpath="@tagname" /> </key> does not work correctly
-->
<!--
tagname-references in data-tag <keyref name="tagnameKeyRef"
refer="lml:tagnameKey"> <selector xpath="data/el1 | data/el1/el2
| data/el1/el2/el3 | data/el1/el2/el3/el4|
data/el1/el2/el3/el4/el5| data/el1/el2/el3/el4/el5/el6|
data/el1/el2/el3/el4/el5/el6/el7|
data/el1/el2/el3/el4/el5/el6/el7/el8|
data/el1/el2/el3/el4/el5/el6/el7/el8/el9|
data/el1/el2/el3/el4/el5/el6/el7/el8/el9/el10" /> <field
xpath="@tagname" /> </keyref>
-->
</element>
<element maxOccurs="1" minOccurs="0" name="chart" type="lml:chart_type">
</element>
<element maxOccurs="1" minOccurs="0" name="chartgroup" type="lml:chartgroup_type">
</element>
</sequence>
<!-- layouts -->
<sequence maxOccurs="1" minOccurs="0">
<element maxOccurs="1" minOccurs="0" name="splitlayout" type="lml:splitlayout_type">
<!-- every gobj can only be shown once -->
<unique name="gidOnlyOnceInSplitLayout">
<selector xpath=".//*"/>
<field xpath="@gid"/>
</unique>
</element>
<element maxOccurs="1" minOccurs="0" name="abslayout" type="lml:abslayout_type">
<!-- every gobj can only be shown once -->
<unique name="gidOnlyOnceInabsLayout">
<selector xpath="comp"/>
<field xpath="@gid"/>
</unique>
</element>
<element maxOccurs="1" minOccurs="0" name="nodedisplaylayout" type="lml:nodedisplaylayout_type">
</element>
<element maxOccurs="1" minOccurs="0" name="usagebarlayout" type="lml:usagebarlayout_type">
</element>
<element maxOccurs="1" minOccurs="0" name="chartlayout" type="lml:chartlayout_type">
</element>
<element maxOccurs="1" minOccurs="0" name="tablelayout" type="lml:tablelayout_type">
<!--
pos-attributes must be unique in every tablelayout. no position
can be occupied by two columns
-->
<unique name="PosUnique">
<selector xpath="column"/>
<field xpath="@pos"/>
</unique>
<!--
cid-attributes must be unique in every tablelayout. multiple
definitions for columns are not allowed
-->
<unique name="CidUnique">
<selector xpath="column"/>
<field xpath="@cid"/>
</unique>
</element>
<element maxOccurs="1" minOccurs="0" name="infoboxlayout" type="lml:infoboxlayout_type">
</element>
<element maxOccurs="1" minOccurs="0" name="textlayout" type="lml:infoboxlayout_type">
</element>
</sequence>
</sequence>
</sequence>
<attribute name="version" type="string"/>
<attribute default="false" name="layout" type="boolean" use="optional">
<annotation>
<documentation>This attribute defines, if this lml-file mainly
contains layout-information.
If layout-value is true, then only
layout-tags are checked. Therefore
graphical objects
do not have to
be valid against XSL-checks in a layout-lml-file.
</documentation>
</annotation>
</attribute>
</complexType>
<element name="lgui" type="lml:lgui_type">
<annotation>
<documentation>Root-tag of LML-scheme.</documentation>
</annotation>
<!-- referential integrity covered with key, keyref and unique-tags -->
<!-- All graphical-objects have to have unique ids-->
<key name="graphObjKey">
<selector xpath="table|usagebar|text|infobox|nodedisplay|.//chart|chartgroup"/>
<field xpath="@id"/>
</key>
<!-- nodedisplayref-tags refer to a nodedisplay -->
<key name="nodedisplayKey">
<selector xpath="nodedisplay"/>
<field xpath="@id"/>
</key>
<key name="usagebarKey">
<selector xpath="usagebar"/>
<field xpath="@id"/>
</key>
<key name="chartKey">
<selector xpath=".//chart"/>
<field xpath="@id"/>
</key>
<key name="tableKey">
<selector xpath="table"/>
<field xpath="@id"/>
</key>
<key name="infoboxKey">
<selector xpath="infobox"/>
<field xpath="@id"/>
</key>
<key name="textKey">
<selector xpath="text"/>
<field xpath="@id"/>
</key>
<key name="layoutIDs">
<selector xpath="splitlayout|abslayout"/>
<field xpath="@id"/>
</key>
<!--
following two definitions are needed for every component-layout-type
-->
<!--
id of nodedisplaylayout must identify layout among other
nodedisplaylayouts
-->
<key name="nodedisplaylayoutkey">
<selector xpath="nodedisplaylayout"/>
<field xpath="@id"/>
</key>
<!-- nodedisplaylayouts only refer to nodedisplays through gid -->
<keyref name="nodedisplaylayoutgid" refer="lml:nodedisplayKey">
<selector xpath="nodedisplaylayout"/>
<field xpath="@gid"/>
</keyref>
<!--
id of usagebarlayout must identify layout among other usagebarlayout
-->
<key name="usagebarlayoutkey">
<selector xpath="usagebarlayout"/>
<field xpath="@id"/>
</key>
<!-- usagebarlayouts only refer to usagebars through gid -->
<keyref name="usagebarlayoutgid" refer="lml:usagebarKey">
<selector xpath="usagebarlayout"/>
<field xpath="@gid"/>
</keyref>
<!-- id of chartlayout must identify layout among other chartlayout -->
<key name="chartlayoutkey">
<selector xpath="chartlayout"/>
<field xpath="@id"/>
</key>
<!-- chartlayouts only refer to charts through gid -->
<keyref name="chartlayoutgid" refer="lml:chartKey">
<selector xpath="chartlayout"/>
<field xpath="@gid"/>
</keyref>
<!-- id of tablelayout must identify layout among other tablelayouts -->
<key name="tablelayoutkey">
<selector xpath="tablelayout"/>
<field xpath="@id"/>
</key>
<!-- tablelayouts only refer to tables through gid -->
<keyref name="tablelayoutgid" refer="lml:tableKey">
<selector xpath="tablelayout"/>
<field xpath="@gid"/>
</keyref>
<!--
id of infoboxlayout must identify layout among other infoboxlayouts
-->
<key name="infoboxlayoutkey">
<selector xpath="infoboxlayout"/>
<field xpath="@id"/>
</key>
<!-- infoboxlayouts only refer to infoboxes through gid -->
<keyref name="infoboxlayoutgid" refer="lml:infoboxKey">
<selector xpath="infoboxlayout"/>
<field xpath="@gid"/>
</keyref>
<!-- id of textlayout must identify layout among other textlayouts -->
<key name="textlayoutkey">
<selector xpath="textlayout"/>
<field xpath="@id"/>
</key>
<!-- textlayouts only refer to text-objects through gid -->
<keyref name="textlayoutgid" refer="lml:textKey">
<selector xpath="textlayout"/>
<field xpath="@gid"/>
</keyref>
<!-- layout references -->
<keyref name="gidAttributesReference" refer="lml:graphObjKey">
<selector xpath=".//left|.//right|.//top|.//bottom|.//comp"/>
<field xpath="@gid"/>
</keyref>
<keyref name="nodedisplayRef" refer="lml:nodedisplayKey">
<selector xpath="nodedisplay"/>
<field xpath="@refto"/>
</keyref>
<keyref name="nodeNameRef1" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1"/>
<field xpath="@name"/>
</keyref>
<keyref name="nodeNameRef2" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2"/>
<field xpath="@name"/>
</keyref>
<keyref name="nodeNameRef3" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3"/>
<field xpath="@name"/>
</keyref>
<keyref name="nodeNameRef4" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4"/>
<field xpath="@name"/>
</keyref>
<keyref name="nodeNameRef5" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5"/>
<field xpath="@name"/>
</keyref>
<keyref name="nodeNameRef6" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6"/>
<field xpath="@name"/>
</keyref>
<keyref name="nodeNameRef7" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7"/>
<field xpath="@name"/>
</keyref>
<keyref name="nodeNameRef8" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/el8"/>
<field xpath="@name"/>
</keyref>
<keyref name="nodeNameRef9" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/el8/el9"/>
<field xpath="@name"/>
</keyref>
<keyref name="nodeNameRef10" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/el8/el9/el10"/>
<field xpath="@name"/>
</keyref>
<!-- IDs of objects in object-tag -->
<key name="objectId">
<selector xpath="objects/object"/>
<field xpath="@id"/>
</key>
<!-- IDs for relations must be unique -->
<unique name="relidsUnique">
<selector xpath="relations/rel"/>
<field xpath="@id"/>
</unique>
<keyref name="relationkeyids" refer="lml:objectId">
<selector xpath="relations/rel"/>
<field xpath="@keyid"/>
</keyref>
<keyref name="relationElementids" refer="lml:objectId">
<selector xpath="relations/rel/el"/>
<field xpath="@refid"/>
</keyref>
<keyref name="infoRef" refer="lml:objectId">
<selector xpath="information/info"/>
<field xpath="@oid"/>
</keyref>
<keyref name="rowRef" refer="lml:objectId">
<selector xpath="table/row"/>
<field xpath="@id"/>
</keyref>
<keyref name="usageJobRef" refer="lml:objectId">
<selector xpath="usagebar/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="chartJobRef" refer="lml:objectId">
<selector xpath="chart/data/r | chart/data/p | chartgroup/chart/data/r | chartgroup/chart/data/p"/>
<field xpath="@oid"/>
</keyref>
<!-- usage-contents have to refer to object-ids -->
<keyref name="UsageNodeDisplayJobRef1" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/usage/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="UsageNodeDisplayJobRef2" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/usage/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="UsageNodeDisplayJobRef3" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/usage/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="UsageNodeDisplayJobRef4" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/usage/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="UsageNodeDisplayJobRef5" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/usage/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="UsageNodeDisplayJobRef6" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/usage/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="UsageNodeDisplayJobRef7" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/usage/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="UsageNodeDisplayJobRef8" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/el8/usage/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="UsageNodeDisplayJobRef9" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/el8/el9/usage/job"/>
<field xpath="@oid"/>
</keyref>
<keyref name="UsageNodeDisplayJobRef10" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/el8/el9/el10/usage/job"/>
<field xpath="@oid"/>
</keyref>
<!-- oid-references have to be valid against object-definitions -->
<keyref name="nodeDisplayJobRef1" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1"/>
<field xpath="@oid"/>
</keyref>
<keyref name="nodeDisplayJobRef2" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2"/>
<field xpath="@oid"/>
</keyref>
<keyref name="nodeDisplayJobRef3" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3"/>
<field xpath="@oid"/>
</keyref>
<keyref name="nodeDisplayJobRef4" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4"/>
<field xpath="@oid"/>
</keyref>
<keyref name="nodeDisplayJobRef5" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5"/>
<field xpath="@oid"/>
</keyref>
<keyref name="nodeDisplayJobRef6" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6"/>
<field xpath="@oid"/>
</keyref>
<keyref name="nodeDisplayJobRef7" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7"/>
<field xpath="@oid"/>
</keyref>
<keyref name="nodeDisplayJobRef8" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/el8"/>
<field xpath="@oid"/>
</keyref>
<keyref name="nodeDisplayJobRef9" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/el8/el9"/>
<field xpath="@oid"/>
</keyref>
<keyref name="nodeDisplayJobRef10" refer="lml:objectId">
<selector xpath="nodedisplay/data/el1/el2/el3/el4/el5/el6/el7/el8/el9/el10"/>
<field xpath="@oid"/>
</keyref>
</element>
<complexType name="gobject_type">
<annotation>
<documentation>Abstract type for all graphical objects. All graphical
objects like table, usagebar etc. have to have ids.
This is defined
by extending all graphical objects from this type.
</documentation>
</annotation>
<attribute name="id" type="string" use="required"/>
<attribute name="title" type="string"/>
<attribute name="description" type="string"/>
</complexType>
</schema>