| <?xml version="1.0" encoding="UTF-8" ?> |
| <xsd:schema attributeFormDefault="qualified" 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"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"> |
| Usage Record Working Group XML Schema definition (GFD.98) |
| |
| Copyright (C) Open Grid Forum (2006-2007). All Rights Reserved. |
| |
| This document and translations of it may be copied and furnished to |
| others, and derivative works that comment on or otherwise explain it or |
| assist in its implementation may be prepared, copied, published and |
| distributed, in whole or in part, without restriction of any kind, |
| provided that the above copyright notice and this paragraph are included |
| on all such copies and derivative works. However, this document itself |
| may not be modified in any way, such as by removing the copyright notice |
| or references to the OGF or other organizations, except as needed for |
| the purpose of developing Grid Recommendations in which case the |
| procedures for copyrights defined in the OGF Document process must be |
| followed, or as required to translate it into languages other than |
| English. |
| |
| The limited permissions granted above are perpetual and will not be |
| revoked by the OGF or its successors or assignees. |
| |
| This document and the information contained herein is provided on an "As |
| Is" basis and the OGF disclaims all warranties, express or implied, |
| including but not limited to any warranty that the use of the |
| information herein will not infringe any rights or any implied |
| warranties of merchantability or fitness for a particular purpose. |
| </xsd:documentation> |
| </xsd:annotation> |
| |
| <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" |
| schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd" /> |
| |
| <xsd:complexType name="UsageRecordType"> |
| <xsd:sequence> |
| <xsd:element maxOccurs="1" minOccurs="1" ref="urf:RecordIdentity" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:JobIdentity" /> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" |
| ref="urf:UserIdentity" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:JobName" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:Charge" /> |
| <xsd:element maxOccurs="1" minOccurs="1" 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 maxOccurs="1" minOccurs="0" ref="urf:WallDuration" /> |
| <xsd:sequence maxOccurs="1" minOccurs="0"> |
| <xsd:element maxOccurs="2" minOccurs="0" ref="urf:CpuDuration" /> |
| </xsd:sequence> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:NodeCount" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:Processors" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:EndTime" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:StartTime" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:MachineName" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:SubmitHost" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="urf:Queue" /> |
| <xsd:sequence maxOccurs="1" minOccurs="0"> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" |
| ref="urf:ProjectName" /> |
| </xsd:sequence> |
| <xsd:sequence maxOccurs="1" minOccurs="0"> |
| <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:Host" /> |
| </xsd:sequence> |
| <xsd:sequence maxOccurs="1" 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 maxOccurs="1" minOccurs="0" name="GlobalJobId" |
| type="xsd:string" /> |
| <xsd:element maxOccurs="1" 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 maxOccurs="1" minOccurs="0" name="LocalUserId" |
| type="xsd:string" /> |
| <xsd:element maxOccurs="1" minOccurs="0" name="GlobalUserName" |
| type="xsd:string" /> |
| <xsd:element maxOccurs="1" minOccurs="0" ref="ds:KeyInfo" /> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="RecordIdentity"> |
| <xsd:complexType> |
| <xsd:sequence maxOccurs="1" 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> |