]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.core/src/main/resources/org/argeo/slc/core/execution/xml/slc-flow-0.12.xsd
Almost complete implementation of the flow namespace
[gpl/argeo-slc.git] / runtime / org.argeo.slc.core / src / main / resources / org / argeo / slc / core / execution / xml / slc-flow-0.12.xsd
index 4534138ec0da699d43741b5c5a734f3856357a9f..fcb5b93e148a889f42a9b4d4006de2534bc46b9f 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-       xmlns:beans="http://www.springframework.org/schema/beans"
+       xmlns:flow="http://www.argeo.org/schema/slc-flow" xmlns:beans="http://www.springframework.org/schema/beans"
        targetNamespace="http://www.argeo.org/schema/slc-flow"
        elementFormDefault="qualified" attributeFormDefault="unqualified">
 
        <xsd:import namespace="http://www.springframework.org/schema/beans" />
 
-
        <xsd:element name="flow">
                <xsd:complexType>
                        <xsd:complexContent>
                                <xsd:extension base="beans:identifiedType">
                                        <xsd:sequence>
-                                               <xsd:any minOccurs="1" maxOccurs="unbounded" />
+                                               <xsd:sequence>
+                                                       <xsd:element name="arg" minOccurs="0" maxOccurs="unbounded"
+                                                               type="flow:argType" />
+                                               </xsd:sequence>
+                                               <xsd:sequence>
+                                                       <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                                               <xsd:element ref="beans:bean" />
+                                                               <xsd:element ref="beans:ref" />
+                                                       </xsd:choice>
+                                                       <!--
+                                                               <xsd:any namespace="##other" processContents="strict"
+                                                               minOccurs="0" maxOccurs="unbounded" />
+                                                       -->
+                                               </xsd:sequence>
                                        </xsd:sequence>
                                        <xsd:attribute name="path" type="xsd:string" />
+                                       <xsd:attribute name="spec" type="xsd:string" />
+                                       <xsd:attribute name="parent" type="xsd:string" />
+                                       <xsd:attribute name="abstract" type="xsd:boolean"
+                                               default="false" />
+                               </xsd:extension>
+                       </xsd:complexContent>
+               </xsd:complexType>
+       </xsd:element>
+
+       <xsd:element name="spec">
+               <xsd:complexType>
+                       <xsd:complexContent>
+                               <xsd:extension base="beans:identifiedType">
+                                       <xsd:sequence>
+                                               <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                                                       <xsd:element name="primitive" type="flow:primitiveSpecAttributeType"
+                                                               minOccurs="0" maxOccurs="unbounded" />
+                                                       <xsd:element name="ref" type="flow:refSpecAttributeType"
+                                                               minOccurs="0" maxOccurs="unbounded" />
+                                               </xsd:choice>
+                                       </xsd:sequence>
                                </xsd:extension>
                        </xsd:complexContent>
                </xsd:complexType>
        </xsd:element>
 
+       <xsd:complexType name="specAttributeType">
+               <xsd:choice>
+                       <xsd:element name="value" minOccurs="0" maxOccurs="1">
+                               <xsd:complexType>
+                                       <xsd:choice>
+                                               <xsd:any minOccurs="1" maxOccurs="1" />
+                                       </xsd:choice>
+                               </xsd:complexType>
+                       </xsd:element>
+               </xsd:choice>
+               <xsd:attribute name="name" use="required" type="xsd:string" />
+               <xsd:attribute name="value" use="optional" type="xsd:string" />
+               <xsd:attribute name="value-ref" use="optional" type="xsd:string" />
+               <xsd:attribute name="isParameter" use="optional" type="xsd:boolean"
+                       default="false" />
+               <xsd:attribute name="isFrozen" use="optional" type="xsd:boolean"
+                       default="false" />
+               <xsd:attribute name="isHidden" use="optional" type="xsd:boolean"
+                       default="false" />
+       </xsd:complexType>
+
+       <xsd:complexType name="primitiveSpecAttributeType">
+               <xsd:complexContent>
+                       <xsd:extension base="flow:specAttributeType">
+                               <xsd:attribute name="type" default="string">
+                                       <xsd:simpleType>
+                                               <xsd:restriction base="xsd:string">
+                                                       <xsd:enumeration value="string" />
+                                                       <xsd:enumeration value="integer" />
+                                                       <xsd:enumeration value="long" />
+                                                       <xsd:enumeration value="float" />
+                                                       <xsd:enumeration value="double" />
+                                                       <xsd:enumeration value="boolean" />
+                                               </xsd:restriction>
+                                       </xsd:simpleType>
+                               </xsd:attribute>
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="refSpecAttributeType">
+               <xsd:complexContent>
+                       <xsd:extension base="flow:specAttributeType">
+                               <xsd:choice>
+                                       <xsd:element name="choices" minOccurs="0" maxOccurs="1">
+                                               <xsd:complexType>
+                                                       <xsd:choice>
+                                                               <xsd:element name="choice" minOccurs="0" maxOccurs="unbounded"
+                                                                       type="flow:refChoiceType" />
+                                                       </xsd:choice>
+                                               </xsd:complexType>
+                                       </xsd:element>
+                               </xsd:choice>
+                               <xsd:attribute name="targetClass" use="required" type="xsd:string" />
+                       </xsd:extension>
+               </xsd:complexContent>
+       </xsd:complexType>
+
+       <xsd:complexType name="refChoiceType">
+               <xsd:attribute name="name" use="required" type="xsd:string" />
+               <xsd:attribute name="description" use="optional" type="xsd:string" />
+       </xsd:complexType>
+
+       <xsd:complexType name="argType">
+               <xsd:attribute name="name" use="required" type="xsd:string" />
+               <xsd:attribute name="value" type="xsd:string" />
+               <xsd:attribute name="ref" type="xsd:string" />
+       </xsd:complexType>
+
        <xsd:attribute name="as-flow" type="xsd:string" />
 
 </xsd:schema>
\ No newline at end of file