| <?xml version="1.0" encoding="UTF-8"?> |
| <xsd:schema attributeFormDefault="qualified" jaxb:version="2.1" |
| elementFormDefault="qualified" targetNamespace="http://schema.ogf.org/urf/2003/09/urf" |
| xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:urf="http://schema.ogf.org/urf/2003/09/urf" |
| xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" |
| xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd"> |
| <xsd:annotation> |
| <!-- Copyright (c) 2003-2008 Open Grid Forum --> |
| <xsd:documentation xml:lang="en">Usage Record Working Group XML Schema definition</xsd:documentation> |
| <xsd:appinfo> |
| <jaxb:schemaBindings> |
| <jaxb:package name="org.ogf.usage.v1_0" /> |
| </jaxb:schemaBindings> |
| </xsd:appinfo> |
| </xsd:annotation> |
| <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" |
| schemaLocation="xmlds.xsd" /> <!-- http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd --> |
| <xsd:complexType name="UsageRecordType"> |
| <xsd:sequence> |
| <xsd:element ref="urf:RecordIdentity" /> |
| <xsd:element minOccurs="0" ref="urf:JobIdentity" /> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:UserIdentity" /> |
| <xsd:element minOccurs="0" ref="urf:JobName" /> |
| <xsd:element minOccurs="0" ref="urf:Charge" /> |
| <xsd:element ref="urf:Status" /> |
| <xsd:choice maxOccurs="unbounded" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The elements grouped together in this choice may be represented |
| within a usage record multiple times. Each of these appearances |
| must be differentiated by the metric and/or type associated with |
| the element. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:element ref="urf:Disk" /> |
| <xsd:element ref="urf:Memory" /> |
| <xsd:element ref="urf:Swap" /> |
| <xsd:element ref="urf:Network" /> |
| <xsd:element ref="urf:TimeDuration" /> |
| <xsd:element ref="urf:TimeInstant" /> |
| <xsd:element ref="urf:ServiceLevel" /> |
| </xsd:choice> |
| <xsd:choice maxOccurs="unbounded" minOccurs="0"> |
| <xsd:element minOccurs="0" ref="urf:WallDuration" /> |
| <xsd:sequence minOccurs="0"> |
| <xsd:element maxOccurs="2" minOccurs="0" ref="urf:CpuDuration" /> |
| </xsd:sequence> |
| <xsd:element minOccurs="0" ref="urf:NodeCount" /> |
| <xsd:element minOccurs="0" ref="urf:Processors" /> |
| <xsd:element minOccurs="0" ref="urf:EndTime" /> |
| <xsd:element minOccurs="0" ref="urf:StartTime" /> |
| <xsd:element minOccurs="0" ref="urf:MachineName" /> |
| <xsd:element minOccurs="0" ref="urf:SubmitHost" /> |
| <xsd:element minOccurs="0" ref="urf:Queue" /> |
| <xsd:sequence minOccurs="0"> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:ProjectName" /> |
| </xsd:sequence> |
| <xsd:sequence minOccurs="0"> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:Host" /> |
| </xsd:sequence> |
| <xsd:sequence minOccurs="0"> |
| <xsd:choice maxOccurs="unbounded" minOccurs="0"> |
| <xsd:element ref="urf:PhaseResource" /> |
| <xsd:element ref="urf:VolumeResource" /> |
| <xsd:element ref="urf:Resource" /> |
| <xsd:element ref="urf:ConsumableResource" /> |
| </xsd:choice> |
| </xsd:sequence> |
| </xsd:choice> |
| </xsd:sequence> |
| </xsd:complexType> |
| <xsd:element abstract="true" name="Usage" type="urf:UsageRecordType" /> |
| <xsd:element name="UsageRecord" substitutionGroup="urf:Usage" |
| type="urf:UsageRecordType" /> |
| <xsd:element name="JobUsageRecord" substitutionGroup="urf:Usage"> |
| <xsd:complexType> |
| <xsd:complexContent> |
| <xsd:extension base="urf:UsageRecordType" /> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="UsageRecords"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:Usage" /> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- Common properties that may be measured with several different metrics |
| within the same usage record --> |
| <xsd:element name="Network"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:positiveInteger"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| <xsd:attributeGroup ref="urf:intervallicVolume" /> |
| <xsd:attribute default="total" ref="urf:metric" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="Disk"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:positiveInteger"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| <xsd:attributeGroup ref="urf:intervallicVolume" /> |
| <xsd:attribute default="total" ref="urf:metric" use="optional" /> |
| <xsd:attribute ref="urf:type" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="Memory"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:positiveInteger"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| <xsd:attributeGroup ref="urf:intervallicVolume" /> |
| <xsd:attribute default="total" ref="urf:metric" use="optional" /> |
| <xsd:attribute ref="urf:type" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="Swap"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:positiveInteger"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| <xsd:attributeGroup ref="urf:intervallicVolume" /> |
| <xsd:attribute default="total" ref="urf:metric" use="optional" /> |
| <xsd:attribute ref="urf:type" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="NodeCount"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:positiveInteger"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| <xsd:attribute default="total" ref="urf:metric" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="Processors"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:positiveInteger"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| <xsd:attribute ref="urf:metric" use="optional" /> |
| <xsd:attribute name="consumptionRate" type="xsd:float" |
| use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="TimeDuration"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:duration"> |
| <xsd:attribute ref="urf:type" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="TimeInstant"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:dateTime"> |
| <xsd:attribute ref="urf:type" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="ServiceLevel"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:token"> |
| <xsd:attribute ref="urf:type" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- This element should appear at most twice within a usage record, with |
| differing values for usageType for each appearance --> |
| <xsd:element name="CpuDuration"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:duration"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| <xsd:attribute name="usageType"> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:token"> |
| <xsd:enumeration value="user" /> |
| <xsd:enumeration value="system" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- These common properties should appear at most once within a usage record, |
| rather that at most once per metric per usage record --> |
| <xsd:element name="WallDuration"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:duration"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="EndTime"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:dateTime"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="StartTime"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:dateTime"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="MachineName"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="urf:domainNameType"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="SubmitHost"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="urf:domainNameType"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="Host"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="urf:domainNameType"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| <xsd:attribute default="false" name="primary" type="xsd:boolean" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="Queue"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:string"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="JobName"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:string"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="ProjectName"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:string"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="Status"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Minimum required set = {Aborted, Completed, Failed, |
| Held, Queued, Started, Suspended} |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:token"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="Charge"> |
| <xsd:complexType> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:float"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| <xsd:attribute ref="urf:unit" use="optional" /> |
| <xsd:attribute name="formula" type="xsd:string" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- identity elements --> |
| <xsd:element name="JobIdentity"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="GlobalJobId" type="xsd:string" /> |
| <xsd:element minOccurs="0" name="LocalJobId" type="xsd:string" /> |
| <xsd:sequence> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" |
| name="ProcessId" type="xsd:string" /> |
| </xsd:sequence> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="UserIdentity"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element minOccurs="0" name="LocalUserId" type="xsd:string" /> |
| <xsd:element minOccurs="0" name="GlobalUserName" type="xsd:string" /> |
| <xsd:element minOccurs="0" ref="ds:KeyInfo" /> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="RecordIdentity"> |
| <xsd:complexType> |
| <xsd:sequence minOccurs="0"> |
| <xsd:element ref="ds:KeyInfo" /> |
| </xsd:sequence> |
| <xsd:attribute name="recordId" type="xsd:token" use="required" /> |
| <xsd:attribute name="createTime" type="xsd:dateTime" use="optional" /> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- Extensibility Framework --> |
| <xsd:element name="Resource" type="urf:ResourceType" /> |
| <xsd:element name="ConsumableResource" type="urf:ConsumableResourceType" /> |
| <xsd:element name="PhaseResource"> |
| <xsd:complexType> |
| <xsd:complexContent> |
| <xsd:extension base="urf:ConsumableResourceType"> |
| <xsd:attribute ref="urf:phaseUnit" use="optional" /> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="VolumeResource"> |
| <xsd:complexType> |
| <xsd:complexContent> |
| <xsd:extension base="urf:ConsumableResourceType"> |
| <xsd:attribute ref="urf:storageUnit" use="optional" /> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| <!-- Create a generic consumable resource. Carries the units attribute --> |
| <xsd:complexType name="ConsumableResourceType"> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:float"> |
| <xsd:attribute name="units" type="xsd:string" use="optional" /> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| <!-- Create a generic resource type --> |
| <xsd:complexType name="ResourceType"> |
| <xsd:simpleContent> |
| <xsd:extension base="xsd:string"> |
| <xsd:attribute ref="urf:description" use="optional" /> |
| </xsd:extension> |
| </xsd:simpleContent> |
| </xsd:complexType> |
| <!-- Global Attribute Definitions --> |
| <xsd:attribute name="description" type="xsd:string" /> |
| <!-- Units of measure attribute definitions --> |
| <xsd:attribute name="unit" type="xsd:token" /> |
| <xsd:attribute name="storageUnit"> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:token"> |
| <xsd:enumeration value="b" /> |
| <xsd:enumeration value="B" /> |
| <xsd:enumeration value="KB" /> |
| <xsd:enumeration value="MB" /> |
| <xsd:enumeration value="GB" /> |
| <xsd:enumeration value="PB" /> |
| <xsd:enumeration value="EB" /> |
| <xsd:enumeration value="Kb" /> |
| <xsd:enumeration value="Mb" /> |
| <xsd:enumeration value="Gb" /> |
| <xsd:enumeration value="Pb" /> |
| <xsd:enumeration value="Eb" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute name="phaseUnit" type="xsd:duration" /> |
| <xsd:attributeGroup name="intervallicVolume"> |
| <xsd:attribute ref="urf:storageUnit" use="optional" /> |
| <xsd:attribute ref="urf:phaseUnit" use="optional" /> |
| </xsd:attributeGroup> |
| <!-- End units attributes --> |
| <xsd:attribute name="metric" type="xsd:token" /> |
| <xsd:attribute name="type" type="xsd:token" /> |
| <!-- Simple type definitions used to constrain values of attributes --> |
| <xsd:simpleType name="domainNameType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:pattern |
| value="([a-zA-Z0-9][a-zA-Z0-9'\-']*[a-zA-Z0-9]\.)*([a-zA-Z0-9][a-zA-Z0-9'\-']*[a-zA-Z0-9])?" /> |
| <xsd:maxLength value="255" /> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:schema> |
| |