392 lines
14 KiB
XML
392 lines
14 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en">
|
|
XML Schema for gCube Services Version 1.2.0 Last modified:16/05/2011 Contact: http://www.gcube-system.org
|
|
</xs:documentation>
|
|
</xs:annotation><!-- SERVICE -->
|
|
<xs:redefine schemaLocation="CommonTypeDefinitions.xsd">
|
|
<xs:complexType name="ProfileType">
|
|
<xs:complexContent>
|
|
<xs:restriction base="ProfileType">
|
|
<xs:sequence>
|
|
<xs:element name="Description" type="xs:string" minOccurs="0"/>
|
|
<xs:element ref="Class"/>
|
|
<xs:element ref="Name"/>
|
|
<xs:element ref="Version"/>
|
|
<xs:element ref="Configuration" minOccurs="0"/>
|
|
<xs:element name="Dependencies" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Dependency" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Class"/>
|
|
<xs:element ref="Name"/>
|
|
<xs:element ref="Version"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="Packages">
|
|
<xs:complexType>
|
|
<xs:choice>
|
|
<xs:sequence>
|
|
<xs:element ref="Main"/>
|
|
<xs:element ref="Software" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
<xs:element ref="Software" maxOccurs="unbounded"/>
|
|
<xs:sequence>
|
|
<xs:element ref="Plugin"/>
|
|
<xs:element ref="Software" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:choice>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="SpecificData" type="FreeTextType" minOccurs="0"/>
|
|
</xs:sequence>
|
|
</xs:restriction>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
</xs:redefine>
|
|
<xs:element name="Class" type="xs:string"/>
|
|
<xs:element name="Name" type="xs:string"/>
|
|
<xs:element name="Version" type="xs:string"/>
|
|
<xs:element name="Configuration">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Static" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Configs" minOccurs="0">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en">
|
|
These configurations have to refer to predefined configuration files distributed with the MAIN package.
|
|
At VRE creation time, the VRE designer will choose one.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Config" type="ConfigurationType" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="Template" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Params">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Param" type="TemplateParam" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="Dynamic" minOccurs="0">
|
|
<xs:complexType/>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:complexType name="ConfigurationType">
|
|
<xs:sequence>
|
|
<xs:element name="File" type="xs:string"/>
|
|
<xs:element name="Description" type="xs:string"/>
|
|
<xs:element name="Label" type="xs:string"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="default" type="xs:boolean" use="required"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="TemplateParam">
|
|
<xs:sequence>
|
|
<xs:element name="Name" type="xs:string"/>
|
|
<xs:element name="Description" type="xs:string"/>
|
|
<xs:element name="AllowedValues">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Value" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Description" type="xs:string"/>
|
|
<xs:element name="Literal" type="xs:string"/>
|
|
<xs:element name="Label" type="xs:string"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="default" type="xs:boolean" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType><!-- PACKAGE -->
|
|
<xs:complexType name="Package">
|
|
<xs:sequence>
|
|
<xs:element name="Description" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="Name" type="xs:string"/>
|
|
<xs:element name="Version" type="xs:string"/>
|
|
<xs:element name="MavenCoordinates" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="groupId" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
|
<xs:element name="artifactId" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
|
<xs:element name="version" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
|
<xs:element name="classifier" type="xs:string" minOccurs="0" maxOccurs="1"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="TargetPlatform" type="PlatformDescription" minOccurs="0" maxOccurs="1"/>
|
|
<xs:element name="MultiVersion" type="BooleanValueType" minOccurs="0"/>
|
|
<xs:element name="Mandatory" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:attribute name="level" type="Scopes" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="Shareable" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:attribute name="level" type="Scopes" default="VO"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="GHNRequirements" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Requirement" minOccurs="0" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="InstallScripts" type="FileListType" minOccurs="0"/>
|
|
<xs:element name="UninstallScripts" type="FileListType" minOccurs="0"/>
|
|
<xs:element name="RebootScripts" type="FileListType" minOccurs="0"/>
|
|
<xs:element name="Dependencies" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Dependency" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="SpecificData" type="FreeTextType" minOccurs="0"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="deployable" type="xs:boolean" use="optional" default="true"/>
|
|
</xs:complexType>
|
|
<xs:element name="Dependency">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Service"/>
|
|
<xs:element name="Package" type="xs:string"/>
|
|
<xs:element name="Version" type="xs:string" default="1.0" minOccurs="0" maxOccurs="1"/>
|
|
<xs:element name="Scope">
|
|
<xs:complexType>
|
|
<xs:attribute name="level" type="Scopes" use="optional" default="GHN"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="Optional" type="xs:boolean"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="Service">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Class"/>
|
|
<xs:element ref="Name"/>
|
|
<xs:element ref="Version" minOccurs="0" maxOccurs="1"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:simpleType name="Scopes">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="NONE"/>
|
|
<xs:enumeration value="GHN"/>
|
|
<xs:enumeration value="VRE"/>
|
|
<xs:enumeration value="VO"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="CategoryType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="MEM_RAM_AVAILABLE"/>
|
|
<xs:enumeration value="MEM_RAM_SIZE"/>
|
|
<xs:enumeration value="MEM_VIRTUAL_AVAILABLE"/>
|
|
<xs:enumeration value="MEM_VIRTUAL_SIZE"/>
|
|
<xs:enumeration value="HOST"/>
|
|
<xs:enumeration value="OS"/>
|
|
<xs:enumeration value="DISK_SPACE"/>
|
|
<xs:enumeration value="LOAD1MIN"/>
|
|
<xs:enumeration value="LOAD5MIN"/>
|
|
<xs:enumeration value="LOAD15MIN"/>
|
|
<xs:enumeration value="PLATFORM"/>
|
|
<xs:enumeration value="PROCESSOR_NUM"/>
|
|
<xs:enumeration value="PROCESSOR_BOGOMIPS"/>
|
|
<xs:enumeration value="SITE_LOCATION"/>
|
|
<xs:enumeration value="SITE_COUNTRY"/>
|
|
<xs:enumeration value="SITE_DOMAIN"/>
|
|
<xs:enumeration value="RUNTIME_ENV_STRING"/>
|
|
<xs:enumeration value="RUNTIME_ENV_NUMBER"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:element name="Requirement">
|
|
<xs:annotation>
|
|
<xs:documentation xml:lang="en">
|
|
- the "category" is represented by a tag name of a GHN profile
|
|
- the "requirement" is one of the attributes defined for the selected category in the GHN profile
|
|
- the "value" is the value of the selected attribute defined for the category in the GHN profile
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexType>
|
|
<xs:attribute name="category" type="xs:string" use="required"/><!-- to be considered, must use one of the above enum values -->
|
|
<xs:attribute name="key" type="xs:string" use="optional"/>
|
|
<xs:attribute name="requirement" type="xs:string" use="optional"/>
|
|
<xs:attribute name="value" type="xs:string" use="required"/>
|
|
<xs:attribute name="operator" type="OpType" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:simpleType name="OpType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="eq"/>
|
|
<xs:enumeration value="exist"/>
|
|
<xs:enumeration value="ge"/>
|
|
<xs:enumeration value="gt"/>
|
|
<xs:enumeration value="le"/>
|
|
<xs:enumeration value="lt"/>
|
|
<xs:enumeration value="ne"/>
|
|
<xs:enumeration value="contains"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:element name="Main">
|
|
<xs:complexType>
|
|
<xs:complexContent>
|
|
<xs:extension base="Package">
|
|
<xs:sequence>
|
|
<xs:element name="GARArchive" type="xs:string"/>
|
|
<xs:element name="ServiceEquivalenceFunctions" type="ServiceFunctionType" minOccurs="0"/>
|
|
<xs:element name="PortType" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Name" type="xs:string"/>
|
|
<xs:element name="Security" type="SecurityType" minOccurs="0"/>
|
|
<xs:element name="WSDL" type="FreeTextType" minOccurs="0"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:complexType name="ServiceFunctionType">
|
|
<xs:sequence>
|
|
<xs:element name="Function" minOccurs="0" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Name" type="xs:string"/>
|
|
<xs:element name="FormalParameters">
|
|
<xs:complexType>
|
|
<xs:sequence minOccurs="0" maxOccurs="unbounded">
|
|
<xs:element name="Name" type="xs:string"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="Body" type="FreeTextType"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<xs:element name="Software">
|
|
<xs:complexType>
|
|
<xs:complexContent>
|
|
<xs:extension base="Package">
|
|
<xs:sequence>
|
|
<xs:element name="Type" default="library" minOccurs="0">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="library"/>
|
|
<xs:enumeration value="application"/>
|
|
<xs:enumeration value="plugin"/>
|
|
<xs:enumeration value="webapplication"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:element>
|
|
<xs:element name="EntryPoint" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
|
|
<xs:choice>
|
|
<xs:element name="Files" type="FileListType"/>
|
|
<xs:element name="URI" type="xs:anyURI"/>
|
|
</xs:choice>
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="Plugin">
|
|
<xs:complexType>
|
|
<xs:complexContent>
|
|
<xs:extension base="Package">
|
|
<xs:sequence>
|
|
<xs:element name="TargetService" minOccurs="1" maxOccurs="1">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Service" minOccurs="1" maxOccurs="1"/>
|
|
<xs:element name="Package" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
|
<xs:element name="Version" type="xs:string" minOccurs="1" maxOccurs="1"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="EntryPoint" type="xs:string" minOccurs="0"/>
|
|
<xs:element name="Files" type="FileListType"/>
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!--<xs:element name="Webapp">
|
|
<xs:complexType>
|
|
<xs:complexContent>
|
|
<xs:extension base="Package">
|
|
<xs:sequence>
|
|
<xs:element name="TargetPlatform" type="PlatformDescription" minOccurs="1" maxOccurs="1"/>
|
|
<xs:element name="EntryPoint" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
--><xs:complexType name="SecurityType">
|
|
<xs:sequence>
|
|
<xs:element name="Descriptor" type="FreeXMLType" minOccurs="0"/>
|
|
<xs:element name="Operations" minOccurs="0">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Operation" maxOccurs="unbounded"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element ref="Roles" minOccurs="0"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" type="xs:string"/>
|
|
</xs:complexType>
|
|
<xs:element name="Roles">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Role" maxOccurs="unbounded">
|
|
<xs:complexType>
|
|
<xs:attribute name="value" type="xs:string" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:element name="Operation">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="Roles" minOccurs="0"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="id" type="xs:string" use="required"/>
|
|
<xs:attribute name="name" type="xs:string" use="required"/>
|
|
<xs:attribute name="description" type="xs:string" use="required"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
</xs:schema>
|