Projet

Général

Profil

Support #8125 » processModel.xsd

Pierre TEISSONNIERE, 13/07/2016 14:33

 
<?xml version="1.0" encoding="UTF-8"?>
<!--

Copyright (C) 2000 - 2013 Silverpeas

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

As a special exception to the terms and conditions of version 3.0 of
the GPL, you may redistribute this Program in connection with Free/Libre
Open Source Software ("FLOSS") applications as described in Silverpeas's
FLOSS exception. You should have received a copy of the text describing
the FLOSS exception, and it is also available here:
"http://www.silverpeas.org/docs/core/legal/floss_exception.html"

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

-->

<!-- edited with XML Spy v4.2 U (http://www.xmlspy.com) by Ludovic Bertin (-) -->
<!--W3C Schema generated by XML Spy v4.2 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!-- .......................................... DEFINITION DE MODÈLE DE PROCEDURE -->
<xs:element name="processModel">
<xs:complexType>
<xs:sequence>
<xs:element ref="label" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="roles"/>
<xs:element ref="presentation" minOccurs="0"/>
<xs:element ref="participants" minOccurs="0"/>
<xs:element ref="states"/>
<xs:element ref="actions" minOccurs="0"/>
<xs:element ref="userInfos" minOccurs="0" />
<xs:element ref="dataFolder"/>
<xs:element ref="forms" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- ................................................................. DEFINITION D'UN ROLE -->
<xs:element name="role">
<xs:complexType>
<xs:sequence>
<xs:element ref="label" maxOccurs="unbounded"/>
<xs:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:ID" use="required"/>
</xs:complexType>
</xs:element>
<!-- ................................................................. DEFINITION D'UN PARTICIPANT -->
<xs:element name="participant">
<xs:complexType>
<xs:sequence>
<xs:element ref="label" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:ID" use="required"/>
<xs:attribute name="resolvedState" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
<!-- ................................................................. DEFINITION D'UNE ACTION -->
<xs:element name="action">
<xs:complexType>
<xs:sequence>
<xs:element ref="label" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="allowedUsers" minOccurs="0"/>
<xs:element ref="consequences" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="name" type="xs:ID" use="required"/>
<xs:attribute name="form" type="xs:string"/> <!-- can't use IDREF, no ID in form -->
<xs:attribute name="kind" type="xs:string" default="update"/>
</xs:complexType>
</xs:element>
<!-- ................................................................. DEFINITION D'UNE ACTION APRES TIMEOUT-->
<xs:element name="timeOutAction">
<xs:complexType>
<xs:attribute name="order" type="xs:integer" use="required"/>
<xs:attribute name="delay" type="xs:string" use="required"/>
<xs:attribute name="action" type="xs:string" use="required"/>
<xs:attribute name="dateItem" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UN LABEL -->
<xs:element name="label">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="lang" type="xs:string" default="default"/>
<xs:attribute name="role" type="xs:string" default="default"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UNE ACTIVITE-->
<xs:element name="activity">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="lang" type="xs:string" default="default"/>
<xs:attribute name="role" type="xs:string" default="default"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UNE DESCRIPTION-->
<xs:element name="description">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="lang" type="xs:string" default="default"/>
<xs:attribute name="role" type="xs:string" default="default"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UN TITRE-->
<xs:element name="title">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="lang" type="xs:string" default="default"/>
<xs:attribute name="role" type="xs:string" default="default"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UN ETAT -->
<xs:element name="state">
<xs:complexType>
<xs:sequence>
<xs:element ref="label" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="activity" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="description" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="workingUsers" minOccurs="0"/>
<xs:element ref="interestedUsers" minOccurs="0"/>
<xs:element ref="allowedActions" minOccurs="0"/>
<xs:element ref="preconditions" minOccurs="0"/>
<xs:element ref="timeOutActions" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="name" type="xs:ID" use="required"/>
<xs:attribute name="timeoutAction" type="xs:IDREF"/>
<xs:attribute name="timeoutInterval" type="xs:integer"/>
<xs:attribute name="timeoutNotifyAdmin" type="xs:boolean" default="false"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UN FORMULAIRE -->
<xs:element name="form">
<xs:complexType>
<xs:sequence>
<xs:element ref="title" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="input" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="label" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="item" type="xs:IDREF"/>
<xs:attribute name="value" type="xs:string"/>
<xs:attribute name="readonly" type="xs:boolean" default="false"/>
<xs:attribute name="displayerName" type="xs:string"/>
<xs:attribute name="mandatory" type="xs:boolean" default="false"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/> <!-- name is not an id (not solenly) -->
<xs:attribute name="role" type="xs:IDREFS"/>
<xs:attribute name="HTMLFileName" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- ........................................................... DEFINITION DES DONNEES UTILISATEUR -->
<xs:element name="userInfos">
<xs:complexType>
<xs:sequence>
<xs:element ref="item" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UN DOSSIER -->
<xs:element name="dataFolder">
<xs:complexType>
<xs:sequence>
<xs:element ref="item" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UN ITEM -->
<xs:element name="formula" type="xs:string"/>
<xs:element name="readonly" type="xs:boolean"/>
<xs:element name="type" type="xs:string"/>
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="label" minOccurs="0"/>
<xs:element ref="description" minOccurs="0"/>
<xs:element ref="type" minOccurs="0" maxOccurs="1"/>
<xs:element ref="readonly" minOccurs="0" maxOccurs="1"/>
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="formula" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="name" type="xs:ID" use="required"/>
<xs:attribute name="computed" type="xs:boolean" default="false"/>
<xs:attribute name="mapTo" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UN PARAMETRE -->
<xs:element name="param">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION DES IMPACTS -->
<xs:element name="consequences">
<xs:complexType>
<xs:sequence>
<xs:element ref="consequence" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="kill" type="xs:boolean"/>

<xs:element name="consequence">
<xs:complexType>
<xs:sequence>
<xs:element ref="kill" minOccurs="0" maxOccurs="1"/>
<xs:choice maxOccurs="unbounded">
<xs:element name="set">
<xs:complexType>
<xs:attribute name="state" type="xs:IDREF" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="unset">
<xs:complexType>
<xs:attribute name="state" type="xs:IDREF" use="required"/>
</xs:complexType>
</xs:element>
<xs:element ref="notify" minOccurs="0"/>
<xs:element ref="triggers" minOccurs="0"/>
<xs:element ref="notifiedUsers" minOccurs="0"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="item" type="xs:IDREF" />
<xs:attribute name="operator" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION DES TRIGGERS -->
<xs:element name="triggers">
<xs:complexType>
<xs:sequence>
<xs:element ref="trigger" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="trigger">
<xs:complexType>
<xs:sequence>
<xs:element ref="param" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="className" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION DES UTILISATEURS CALCULES -->
<xs:element name="relatedUser">
<xs:complexType>
<xs:attribute name="participant" type="xs:IDREF" />
<xs:attribute name="folderItem" type="xs:IDREF" />
<xs:attribute name="relation" type="xs:IDREF"/>
<xs:attribute name="role" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION DES GROUPES CALCULES -->
<xs:element name="relatedGroup">
<xs:complexType>
<xs:attribute name="participant" type="xs:IDREF" />
<xs:attribute name="folderItem" type="xs:IDREF" />
<xs:attribute name="relation" type="xs:IDREF"/>
<xs:attribute name="role" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION DES NOTIFICATIONS -->
<xs:element name="notify">
<xs:complexType>
<xs:sequence>
<xs:element ref="relatedUser" minOccurs="0"/>
<xs:element ref="userInRole" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="message" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION DES UTILISATEURS NOTIFIES -->
<xs:element name="notifiedUsers">
<xs:complexType>
<xs:sequence>
<xs:element ref="relatedUser" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="message" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION DES UTILISATEURS AFFECTES -->
<xs:element name="workingUsers">
<xs:complexType>
<xs:sequence>
<xs:element ref="relatedUser" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="userInRole" minOccurs="0" maxOccurs="unbounded"/> <!-- plusieurs possible -->
</xs:sequence>
<xs:attribute name="role" type="xs:string" />
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION DES UTILISATEURS IMPACTES -->
<xs:element name="interestedUsers">
<xs:complexType>
<xs:sequence>
<xs:element ref="relatedUser" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="userInRole" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="role" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION D'UNE PRESENTATION -->
<xs:element name="presentation">
<xs:complexType>
<xs:sequence>
<xs:element ref="title" maxOccurs="unbounded"/>
<xs:element ref="columns" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- ...................................................................... DEFINITION DES PRE-REQUIS A UNE ACTION -->
<xs:element name="preconditions">
<xs:complexType/>
</xs:element>
<!-- ...................................... DEFINITION D'UNE LISTE DE PERSONNES AYANT UN ROLE DONNE -->
<xs:element name="userInRole">
<xs:complexType>
<xs:attribute name="name" type="xs:IDREF" use="required"/>
</xs:complexType>
</xs:element>
<!-- .................................................... DEFINITION D'UNE LISTE D'ETATS -->
<xs:element name="states">
<xs:complexType>
<xs:sequence>
<xs:element ref="state" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- .................................................... DEFINITION D'UNE LISTE DE PARTICIPANTS -->
<xs:element name="participants">
<xs:complexType>
<xs:sequence>
<xs:element ref="participant" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- .................................................... DEFINITION D'UNE LISTE DE COLONNES -->
<xs:element name="columns">
<xs:complexType>
<xs:sequence>
<xs:element name="column" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="item" type="xs:IDREF" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="role" type="xs:IDREF" use="required"/>
</xs:complexType>
</xs:element>
<!-- .................................................... DEFINITION D'UNE LISTE DE FORMULAIRES -->
<xs:element name="forms">
<xs:complexType>
<xs:sequence>
<xs:element ref="form" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- .................................................... DEFINITION D'UNE LISTE D'ACTIONS AUTORISEES -->
<xs:element name="roles">
<xs:complexType>
<xs:sequence>
<xs:element ref="role" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- .................................................... DEFINITION D'UNE LISTE D'ACTIONS -->
<xs:element name="actions">
<xs:complexType>
<xs:sequence>
<xs:element ref="action" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- .................................................... DEFINITION D'UNE LISTE D'ACTIONS EXECUTEES APRES UN TIMEOUT -->
<xs:element name="timeOutActions">
<xs:complexType>
<xs:sequence>
<xs:element ref="timeOutAction" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- .................................................... DEFINITION D'UNE LISTE D'ACTIONS AUTORISEES -->
<xs:element name="allowedActions">
<xs:complexType>
<xs:sequence>
<xs:element name="allow" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="action" type="xs:IDREF" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- .................................................... DEFINITION D'UNE LISTE DUTILISATEURS AUTORISES -->
<xs:element name="allowedUsers">
<xs:complexType>
<xs:sequence>
<xs:element ref="relatedUser" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="userInRole" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
    (1-1/1)