<?xml version="1.0" encoding="UTF-8"?>
<!--
  
  EMULAB-COPYRIGHT
  Copyright (c) 2008-2009 University of Utah and the Flux Group.
  All rights reserved.
  
-->
<!--
  
  Prototype of an advertisement RSpec, to be used by ProtoGENI
  Version 2
  
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.protogeni.net/resources/rspec/2" xmlns:rspec="http://www.protogeni.net/resources/rspec/2">
  <xs:include schemaLocation="ad-common.xsd"/>
  <xs:complexType name="AvailableContents">
    <xs:group ref="rspec:AnyExtension"/>
    <xs:attributeGroup ref="rspec:AnyExtension"/>
    <xs:attribute name="now" use="required" type="xs:boolean"/>
  </xs:complexType>
  <xs:complexType name="MonitoringContents">
    <xs:group ref="rspec:AnyExtension"/>
    <xs:attributeGroup ref="rspec:AnyExtension"/>
    <xs:attribute name="user_traffic" type="xs:boolean"/>
  </xs:complexType>
  <!-- Reference to components managed by other component managers. -->
  <xs:complexType name="ExternalReferenceContents">
    <xs:group ref="rspec:AnyExtension"/>
    <xs:attributeGroup ref="rspec:AnyExtension"/>
    <xs:attribute name="component_id" use="required"/>
    <xs:attribute name="component_manager_id"/>
  </xs:complexType>
  <xs:complexType name="InstallServiceContents">
    <xs:group ref="rspec:AnyExtension"/>
    <xs:attributeGroup ref="rspec:AnyExtension"/>
    <xs:attribute name="file_type" use="required"/>
  </xs:complexType>
  <xs:complexType name="ExecuteServiceContents">
    <xs:group ref="rspec:AnyExtension"/>
    <xs:attributeGroup ref="rspec:AnyExtension"/>
    <xs:attribute name="shell" use="required"/>
  </xs:complexType>
  <xs:complexType name="TypeRelationContents">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="rspec:AnyExtension"/>
      <xs:element ref="rspec:hardware_type"/>
      <xs:element name="sliver_type">
        <xs:complexType>
          <xs:group ref="rspec:SliverTypeContents"/>
          <xs:attributeGroup ref="rspec:SliverTypeContents"/>
        </xs:complexType>
      </xs:element>
      <xs:element name="disk_image" type="rspec:DiskImageContents"/>
    </xs:choice>
    <xs:attributeGroup ref="rspec:AnyExtension"/>
  </xs:complexType>
  <xs:element name="hardware_type" type="rspec:HardwareTypeContents"/>
</xs:schema>

