<?xml version="1.0" encoding="UTF-8"?>
<s:schema
  xmlns:s="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="qualified" 
  attributeFormDefault="unqualified"

  xmlns:iinterface="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/IInterface/" 
  targetNamespace="http://www.RecordsForLiving.com/Schemas/2009-04/HealthFrameWorks/IInterface/" 
  >

	<s:simpleType name="URL">
		<s:union memberTypes="s:string"/>
	</s:simpleType>

  <s:simpleType name="ObjectReference">
		<s:annotation>
			<s:documentation>A transient object identifier (guid).
			The meaning of this object identifier is context specific - depending on the interface in quesiton, and often times
      this object identifier maybe omitted.
			</s:documentation>
		</s:annotation>
		<s:union memberTypes="s:string"/>
	</s:simpleType>

  <s:simpleType name="InterfaceID">
		<s:union memberTypes="s:string"/>
	</s:simpleType>




	<s:complexType name="ObjRefAndURL">
		<s:sequence>
			<s:element name="objID" type="iinterface:ObjectReference" minOccurs="0"/>
			<s:element name="url" type="iinterface:InterfaceID" minOccurs="0"/>
		</s:sequence>
	</s:complexType>

  
  <!-- 
		// NB: one basic idea (differnt for COM) - is that the object  ID doesnt change
		// acording to the interface being used (the URL does instead)
		//
		// note - that being 'methods' - each API method takes a 'ObjectReference o' as the first argument which is analogous
		// to the traditional object-oriented 'this' parameter
		//
		// note - some logically static methods can OMIT the initial ObjectReference o parameter.
		public interface IInterface
		{
			URL GetInterface (ObjectReference o, InterfaceID i);
		}
	 -->
	<s:element name="GetInterface">
		<s:complexType>
			<s:sequence>
				<s:element name="o" type="iinterface:ObjectReference" minOccurs="0"/>
				<s:element name="i" type="iinterface:InterfaceID" minOccurs="1"/>
			</s:sequence>
		</s:complexType>
	</s:element>
	<s:element name="GetInterfaceResponse">
		<s:complexType>
			<s:sequence>
				<s:element name="GetInterfaceResult" type="iinterface:URL" minOccurs="0"/>
			</s:sequence>
		</s:complexType>
	</s:element>
</s:schema>

