blob: 1aa16b6388971fa3a04f98bb0ed67cd0f2143a1f [file] [log] [blame]
<?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="lgui.xsd"/>
<complexType name="column_type">
<annotation>
<documentation>
Describes one column of table.
</documentation>
</annotation>
<sequence>
<element maxOccurs="1" minOccurs="0" name="pattern" type="lml:pattern_type">
<annotation>
<documentation>
The pattern-tag defines regular expressions,
which describe the allowed values of a column.
For a status-column in a job-table you could
define, that values of this column are taken
from {RUNNING, SUSPENDED, STOPPED}. This is also
used to insert new jobs into job-tables. If a
job is "running" and the status-column allows
running jobs, this job should be inserted into
this table.
</documentation>
</annotation>
</element>
</sequence>
<attribute name="name" type="NCName" use="required"/>
<attribute name="sort" type="lml:sorting_type"/>
<attribute name="description" type="string"/>
<attribute name="id" type="positiveInteger" use="required"/>
<attribute default="optional" name="type">
<annotation>
<documentation>This attribute defines the use of this column. If optional (default) cells of this column can be left out in rows.
If mandatory they have to be defined.</documentation>
</annotation>
<simpleType>
<restriction base="string">
<enumeration value="mandatory"/>
<enumeration value="optional"/>
</restriction>
</simpleType>
</attribute>
</complexType>
<simpleType name="sorting_type">
<annotation>
<documentation>Defines allowed ways of how columns are sorted. If value is date, the values have to match the regular expression ^\d{4}\-\d{2}\-\d{2}\s*(\d{2}:\d{2}(:\d{2})?)?$
A valid example is: "2011-04-13 09:56:44"</documentation>
</annotation>
<restriction base="string">
<enumeration value="numeric"/>
<enumeration value="alpha"/>
<enumeration value="date"/>
</restriction>
</simpleType>
<complexType name="cell_type">
<annotation>
<documentation>Can be linked to column by using foreign key cid to cid-attribute of column-tag.
Otherwise order of cells define connections to columns.</documentation>
</annotation>
<attribute name="cid" type="positiveInteger">
<annotation>
<documentation>Is cid not defined, order of columns and cells will define which cell is connected to which column.</documentation>
</annotation>
</attribute>
<attribute name="value" type="string"/>
</complexType>
<complexType name="row_type">
<annotation>
<documentation>One row in final table.</documentation>
</annotation>
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="cell" type="lml:cell_type"/>
</sequence>
<attribute name="oid" type="NCName">
<annotation>
<documentation>Reference to object-tag</documentation>
</annotation>
</attribute>
</complexType>
<complexType name="table_type">
<annotation>
<documentation>
An abstract table. Defines several columns, which can be
sorted by different datatypes. Then data is defined in
row-tags, which can be linked with object-tags.
</documentation>
</annotation>
<complexContent>
<extension base="lml:gobject_type">
<sequence>
<element maxOccurs="unbounded" minOccurs="0"
name="column" type="lml:column_type">
</element>
<element maxOccurs="unbounded" minOccurs="0"
name="row" type="lml:row_type">
<!-- for one column only one cell in a row -->
<unique name="cellCIDUnique">
<selector xpath="cell" />
<field xpath="@cid" />
</unique>
</element>
</sequence>
<attribute default="other" name="contenttype">
<annotation>
<documentation>
This attribute defines the table's content
type. E.g. the value jobs defines this table
to contain job-information.
</documentation>
</annotation>
<simpleType>
<restriction base="string">
<enumeration value="jobs" />
<enumeration value="nodes" />
<enumeration value="users" />
<enumeration value="groups" />
<enumeration value="classes" />
<enumeration value="queues" />
<enumeration value="other" />
</restriction>
</simpleType>
</attribute>
<attribute name="form" default="sparse">
<annotation>
<documentation>This attribute defines the used form of this table. The form can be regular or sparse in comparison with a matrix. A regular table is filled completely. Every row has the maximum amount of cells.
A sparse table can leave cells out. One row could contain only one cell, which means that all other columns are empty for this row. Another row might contain 5 cells in the same table.
This table form could reduce transmitted data. On the other hand regular tables can be processed faster, because a program does not have to check if every cell is available.</documentation>
</annotation>
<simpleType>
<restriction base="string">
<enumeration value="regular"></enumeration>
<enumeration value="sparse"></enumeration>
</restriction>
</simpleType>
</attribute>
</extension>
</complexContent>
</complexType>
<complexType name="pattern_type">
<annotation>
<documentation>A pattern element consists of include and exclude tags. Values of the corresponding column
can be checked by the defined regular expressions. They must pass the regexp-checks in
the following way: Go through all include/exclude tags. A value must be valid against the
include-regexps and must not match with the exclude-regexps. Therefore the order of tags
is important.
</documentation>
</annotation>
<sequence maxOccurs="unbounded" minOccurs="1">
<element maxOccurs="1" minOccurs="0" name="include" type="lml:pattern_match_type"/>
<element maxOccurs="1" minOccurs="0" name="exclude" type="lml:pattern_match_type"/>
</sequence>
</complexType>
<complexType name="pattern_match_type">
<attribute name="regexp" type="string">
<annotation>
<documentation>This attribute takes regular expressions of any kind.</documentation>
</annotation>
</attribute>
</complexType>
</schema>