| <?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> |