common-gcore-resources/src/main/resources/schema/node.xsd

255 lines
9.5 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 Nodes Version 0.5.0 Last modified:29/05/2009 Contact: http://www.gcube-system.org
</xs:documentation>
</xs:annotation>
<xs:redefine schemaLocation="CommonTypeDefinitions.xsd">
<xs:complexType name="ProfileType">
<xs:complexContent>
<xs:restriction base="ProfileType">
<xs:sequence>
<xs:element name="Infrastructure" type="xs:string"/>
<xs:element ref="GHNDescription"/>
<xs:element ref="Site"/>
<xs:element name="DeployedPackages" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="Package" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:redefine>
<xs:element name="GHNDescription">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="ActivationTime" type="xs:dateTime" minOccurs="0"/>
<xs:element name="Status" type="xs:string" minOccurs="0"/>
<xs:element name="StatusMessage" type="xs:string" minOccurs="0"/>
<xs:element ref="Type"/>
<xs:element name="AvailablePlatforms" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Platform" type="PlatformDescription" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SecurityEnabled" type="BooleanValueType"/>
<xs:element ref="SecurityData" minOccurs="0"/>
<xs:element ref="Architecture"/>
<xs:element ref="OperatingSystem"/>
<xs:element ref="Processor" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="NetworkAdapter" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="Benchmark" minOccurs="0"/>
<xs:element ref="RunTimeEnv"/>
<xs:element ref="StorageDevice" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="StoragePartition" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="LocalFileSystem" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="RemoteFileSystem" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="StorageDevice2StoragePartition" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="StoragePartition2FileSystem" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Uptime" type="xs:string"/>
<xs:element ref="Load" minOccurs="0"/>
<xs:element ref="HistoricalLoad" minOccurs="0"/>
<xs:element ref="MainMemory"/>
<xs:element name="LocalAvailableSpace" type="xs:integer" minOccurs="0"/>
<xs:element name="LastUpdate" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Type">
<xs:annotation>
<xs:documentation xml:lang="en">
Dynamic: the GHN supports dynamic deployment of new packages
Static: the GHN does not support dynamic deployment of new packages
SelfClening: the GHN supports dynamic deployment of new packages, but only for a short limited period
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Dynamic"/>
<xs:enumeration value="Static"/>
<xs:enumeration value="SelfCleaning"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Architecture">
<xs:complexType>
<xs:attribute name="PlatformType" type="xs:string" use="required"/>
<xs:attribute name="SMPSize" type="xs:integer" use="required"/>
<xs:attribute name="SMTSize" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Benchmark">
<xs:complexType>
<xs:attribute name="SI00" type="xs:integer" use="required"/>
<xs:attribute name="SF00" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Load">
<xs:complexType>
<xs:attribute name="Last1Min" type="xs:double" use="optional"/>
<xs:attribute name="Last5Min" type="xs:double" use="optional"/>
<xs:attribute name="Last15Min" type="xs:double" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="HistoricalLoad">
<xs:complexType>
<xs:attribute name="Last1H" type="xs:double" use="optional"/>
<xs:attribute name="Last1Day" type="xs:double" use="optional"/>
<xs:attribute name="Last1Week" type="xs:double" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="MainMemory">
<xs:complexType>
<xs:attribute name="RAMSize" type="xs:integer"/>
<xs:attribute name="VirtualSize" type="xs:integer"/>
<xs:attribute name="RAMAvailable" type="xs:integer"/>
<xs:attribute name="VirtualAvailable" type="xs:integer"/>
</xs:complexType>
</xs:element>
<xs:element name="NetworkAdapter">
<xs:complexType>
<xs:attribute name="InboundIP" type="xs:string" use="required"/>
<xs:attribute name="OutboundIP" type="xs:string" use="required"/>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="IPAddress" type="xs:string" use="required"/>
<xs:attribute name="MTU" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="OperatingSystem">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Release" type="xs:string" use="required"/>
<xs:attribute name="Version" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Processor">
<xs:complexType>
<xs:attribute name="Vendor" type="xs:string" use="required"/>
<xs:attribute name="Model" type="xs:string" use="required"/>
<xs:attribute name="ModelName" type="xs:string" use="required"/>
<xs:attribute name="Family" type="xs:string" use="required"/>
<xs:attribute name="ClockSpeedMhz" type="xs:decimal" use="required"/>
<xs:attribute name="Bogomips" type="xs:decimal" use="required"/>
<xs:attribute name="CacheL1" type="xs:integer" use="required"/>
<xs:attribute name="CacheL1I" type="xs:integer" use="required"/>
<xs:attribute name="CacheL1D" type="xs:integer" use="required"/>
<xs:attribute name="CacheL2" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="SecurityData">
<xs:complexType>
<xs:sequence>
<xs:element name="CA" type="xs:string" minOccurs="0"/>
<xs:element name="CredentialsDistinguishedName" type="xs:string" minOccurs="0"/>
<xs:element name="CredentialsExpireOn" type="xs:dateTime" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RunTimeEnv">
<xs:complexType>
<xs:sequence>
<xs:element name="Variable" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="Value" type="xs:string" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Site">
<xs:complexType>
<xs:sequence>
<xs:element name="Location" type="xs:string"/>
<xs:element name="Country">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Latitude" type="xs:string"/>
<xs:element name="Longitude" type="xs:string"/>
<xs:element name="Domain" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="StorageDevice">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Type" type="xs:string" use="required"/>
<xs:attribute name="TransferRate" type="xs:integer" use="required"/>
<xs:attribute name="Size" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="StorageDevice2StoragePartition">
<xs:complexType>
<xs:attribute name="StorageDeviceName" type="xs:string" use="required"/>
<xs:attribute name="StoragePartitionName" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="StoragePartition">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Size" type="xs:string" use="required"/>
<xs:attribute name="ReadRate" type="xs:integer" use="required"/>
<xs:attribute name="WriteRate" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="StoragePartition2FileSystem">
<xs:complexType>
<xs:attribute name="StoragePartitionName" type="xs:string" use="required"/>
<xs:attribute name="FileSystemName" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="RemoteFileSystem" type="FileSystemType" />
<xs:element name="LocalFileSystem" type="FileSystemType" />
<xs:complexType name="FileSystemType">
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Root" type="xs:string" use="required"/>
<xs:attribute name="Size" type="xs:integer" use="required"/>
<xs:attribute name="ReadOnly" type="xs:boolean" use="required"/>
<xs:attribute name="Type" type="xs:string" use="required"/>
</xs:complexType>
<xs:element name="Package">
<xs:complexType>
<xs:sequence>
<xs:element name="PackageName" type="xs:string"/>
<xs:element name="PackageVersion" type="xs:string"/>
<xs:element name="ServiceName" type="xs:string"/>
<xs:element name="ServiceClass" type="xs:string"/>
<xs:element name="ServiceVersion" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>