Index: wsdl/fedd_types.xsd
===================================================================
--- wsdl/fedd_types.xsd	(revision bb39689f8df0820b469dad38313df2fb7c844ab0)
+++ wsdl/fedd_types.xsd	(revision bb39689f8df0820b469dad38313df2fb7c844ab0)
@@ -0,0 +1,677 @@
+<?xml version="1.0"?>
+<xsd:schema targetNamespace="http://www.isi.edu/faber/fedd_types"
+  xmlns:tns="http://www.isi.edu/faber/fedd_types"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns="http://www.w3.org/2000/10/XMLSchema">
+
+  <xsd:complexType name="IDType">
+    <xsd:annotation>
+      <xsd:documentation>
+	An ID is an identifier for a principal, service, or object.  This type
+	is currently polymorphic o allow different implementations of type,
+	though running code primarily uses localnames and fedids.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:choice>
+      <xsd:element name="uuid" type="xsd:base64Binary"/>
+      <xsd:element name="fedid" type="xsd:base64Binary"/>
+      <xsd:element name="uri" type="xsd:string"/>
+      <xsd:element name="localname" type="xsd:string"/>
+      <xsd:element name="kerberosUsername" type="xsd:string"/>
+    </xsd:choice>
+  </xsd:complexType>
+
+  <xsd:complexType name="nodeType">
+    <xsd:annotation>
+      <xsd:documentation>
+	A node from an Emulab.  It may have 0 or more images or hardware
+	types associated with it.  As this description is used for
+	acquiring access to the testbed in question, multiple images or
+	types are considered options.  Specifying multiple image names
+	indicates that the requester is looking for support for any of
+	them.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="image" type="xsd:string" minOccurs="0"
+	maxOccurs="unbounded"/>
+      <xsd:element name="hardware" type="xsd:string" minOccurs="0"
+	maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="count" type="xsd:int" use="optional"/>
+  </xsd:complexType>
+
+  <xsd:simpleType name="kindType">
+    <xsd:annotation>
+      <xsd:documentation>
+	An indication of how requested networking capacity is measured.
+	This will undoubtably expand.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="max"/>
+      <xsd:enumeration value="average"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="statusType">
+    <xsd:annotation>
+      <xsd:documentation>
+	The current state of the experiment.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="active"/>
+      <xsd:enumeration value="starting"/>
+      <xsd:enumeration value="terminating"/>
+      <xsd:enumeration value="failed"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:complexType name="capacityType">
+    <xsd:annotation>
+      <xsd:documentation>
+	A strawman network capacity description for access negotiation.
+	This will come to include more and more interesting parameters.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="rate" type="xsd:double"/>
+      <xsd:element name="kind" type="tns:kindType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="accessType">
+    <xsd:annotation>
+      <xsd:documentation>
+	This captures an access credential that will be used to access
+	resources.  These are certificates or public keys.  The type is
+	used to designate the key to which access should be bound, or on
+	a reply has been bound.  Dynamic credentials where new keys have
+	been created may also be passed in this kind of field.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:choice>
+      <xsd:element name="X509" type="xsd:base64Binary"/>
+      <xsd:element name="sshPubkey" type="xsd:base64Binary"/>
+      <xsd:element name="pgpPubkey" type="xsd:base64Binary"/>
+    </xsd:choice>
+  </xsd:complexType>
+
+  <xsd:simpleType name="userRole">
+    <xsd:annotation>
+      <xsd:documentation>
+	This defines the role the user/account is playing in the
+	federated experiment.  An account being accessed by the
+	federation system to create the experiment is in the
+	experimentCreation role and the accounts that experimenters will
+	use to access local testbed services (e.g., rebooting a local
+	node) are serviceAccess roles.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="serviceAccess"/>
+      <xsd:enumeration value="experimentCreation"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+
+  <xsd:complexType name="userType">
+    <xsd:annotation>
+      <xsd:documentation>
+	The definition of a user principal.  It includes the
+	identification of the user as an ID type, the access credential(s)
+	that the user will use, and the role of the user, if any.
+	Multiple access keys may be used, and it is also possible for
+	the user to be anonymous.  Though it is possible to specify a
+	user without ID, access, or role, it is difficult to imagine
+	such a user being useful.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="userID" type="tns:IDType" minOccurs="0"
+	maxOccurs="1"/>
+      <xsd:element name="access" type="tns:accessType" minOccurs="0"
+	maxOccurs="unbounded"/>
+      <xsd:element name="role" type="tns:userRole" minOccurs="0" maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="fedAttrType">
+    <xsd:annotation>
+      <xsd:documentation>
+	A general attribute/value pair for passing federation parameters and
+	preferences.  Anything encodable in XML is allowed.  This is a
+	point for customization and extension.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="attribute" type="xsd:string"/>
+      <xsd:element name="value" type="xsd:string"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+  <xsd:complexType name="resourcesType">
+    <xsd:annotation>
+      <xsd:documentation>
+	The estimate of resources a requester is looking for, or the
+	response of a testbed indicating what it can provide.  This is
+	something of a placeholder for a full resource specification,
+	and alternative encodings are likely to be imported.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="node" type="tns:nodeType" minOccurs="0"
+	maxOccurs="unbounded" />
+      <xsd:element name="capacity" type="tns:capacityType" minOccurs="0"
+	maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="mapType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Explicit translation of testbed attribute in a federated experiment
+	description to the URI at which the controlling federation
+	system can be reached.  Used in a creation request.
+
+	This type allows tools to encode experiments in familiar local
+	names for experimenters while providing remote federation
+	systems the information to map the local name into a service
+	location.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="testbed" type="tns:IDType"/>
+      <xsd:element name="uri" type="xsd:string"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+  <xsd:complexType name="projectType">
+    <xsd:annotation>
+      <xsd:documentation>
+	A description of the project used to access a testbed.  Includes
+	the testbed being accessed, the project name (often a local
+	name, scoped by the testbed), and any users who have been
+	granted access or for whom access is being requested.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="testbed" type="tns:IDType" minOccurs="0"
+	maxOccurs="1"/>
+      <xsd:element name="name" type="tns:IDType" minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="user" type="tns:userType" minOccurs="0"
+	maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="emulabType">
+    <xsd:annotation>
+      <xsd:documentation>
+	A description of an Emulab sufficient for the federation system
+	to create a sub experiment on it.  Note that fedAttrs provide an
+	extension mechanism by which testbeds may communicate additional
+	information and preferences to federation systems that
+	understand it.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="project" type="tns:projectType"/>
+      <xsd:element name="domain" type="xsd:string"/>
+      <xsd:element name="boss" type="xsd:string"/>
+      <xsd:element name="ops" type="xsd:string"/>
+      <xsd:element name="fileServer" type="xsd:string"/>
+      <xsd:element name="eventServer" type="xsd:string"/>
+      <xsd:element name="fedAttr" type="tns:fedAttrType" minOccurs="0"
+	maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="federatedExperimentType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Naming and Emulab instantiation information about a federant.
+	This is returned by various informational requests and as part
+	of a successful creation message.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="name" type="tns:IDType" minOccurs="1" 
+	maxOccurs="unbounded"/>
+      <xsd:element name="emulab" type="tns:emulabType"/>
+      <xsd:element name="master" type="xsd:boolean"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+  <xsd:complexType name="vtoponodeType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Node in the virtual topology of a federated experiment (Emulab
+	legacy).  The fields are the local hostname and the IP addresses
+	of the experimental interfaces(colon-separated).
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="vname" type="xsd:string"/>
+      <xsd:element name="ips" type="xsd:string"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="vtopolanType">
+    <xsd:annotation>
+      <xsd:documentation>
+	LAN in the virtual topology of a federated experiment (Emulab legacy).
+	The fields are the name of the LAN/link (vname) the node that
+	this description applies to (vnode), the IP of the connection,
+	and performance information.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="vname" type="xsd:string"/>
+      <xsd:element name="vnode" type="xsd:string"/>
+      <xsd:element name="ip" type="xsd:string"/>
+      <xsd:element name="bandwidth" type="xsd:int"/>
+      <xsd:element name="delay" type="xsd:float"/>
+      <xsd:element name="member" type="xsd:string"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="vtopoType">
+    <xsd:annotation>
+      <xsd:documentation>
+	The virtual topology of a federated experiment (Emulab legacy).
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="node" type="tns:vtoponodeType" minOccurs="0" 
+	maxOccurs="unbounded" />
+      <xsd:element name="lan" type="tns:vtopolanType" minOccurs="0"
+	maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="visnodeType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Node in the visualization of a federated experiment (Emulab
+	legacy).  Fields include the local hostname of the node, x,y
+	coordinates in a 2-dimensional representation, and whether the
+	node in the visualization is a host or a LAN.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="name" type="xsd:string"/>
+      <xsd:element name="x" type="xsd:int"/>
+      <xsd:element name="y" type="xsd:int"/>
+      <xsd:element name="type" type="xsd:string"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="visType">
+    <xsd:annotation>
+      <xsd:documentation>
+	The visualization of a federated experiment (Emulab legacy)
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="node" type="tns:visnodeType" minOccurs="0"
+	maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="projectAllocType">
+    <xsd:annotation>
+      <xsd:documentation>
+	The information needed to create a dynamic project, specifically
+	a project description and the resources in needs access to.
+	This is used by an internal fedd interface.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="project" type="tns:projectType"/>
+      <xsd:element name="resources" type="tns:resourcesType" 
+	minOccurs="0" maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="experimentDescriptionType">
+    <xsd:annotation>
+      <xsd:documentation>
+	The description of the federated experiment, in extended ns2.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:choice>
+      <xsd:element name="ns2description" type="xsd:base64Binary"/>
+    </xsd:choice>
+  </xsd:complexType>
+
+  <xsd:complexType name="requestType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Request for access to a testbed.  It includes the testbed from
+	which resources are being requested (a single service may
+	provide access to many), the user or project requesting access
+	(a testbed making the request will leave both empty), the
+	resources needed, the access keys to be used in the subsequent
+	instantiation and service use, an allocation ID to identify this
+	access in later requests, and scheduling information.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="destinationTestbed" type="tns:IDType"
+	minOccurs="0" maxOccurs="1" />
+      <xsd:choice>
+	<xsd:element name="project" type="tns:projectType" minOccurs="0" 
+	  maxOccurs="1"/>
+	<xsd:element name="user" type="tns:userType" minOccurs="0"
+	  maxOccurs="unbounded"/>
+      </xsd:choice>
+      <xsd:element name="resources" type="tns:resourcesType" minOccurs="0" 
+	maxOccurs="1"/>
+      <xsd:element name="createAccess" type="tns:accessType" minOccurs="1" 
+	maxOccurs="unbounded"/>
+      <xsd:element name="serviceAccess" type="tns:accessType" minOccurs="1" 
+	maxOccurs="unbounded"/>
+      <xsd:element name="exportProject" type="tns:IDType" 
+	minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="allocID" type="tns:IDType"/>
+      <xsd:element name="when" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="until" type="xsd:dateTime" minOccurs="0" 
+	maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="responseType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Response to an access request.  Includes the allocation, the
+	information needed to access creation and experiment services
+	and scheduling information.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="allocID" type="tns:IDType"/>
+      <xsd:element name="emulab" type="tns:emulabType"/>
+      <xsd:element name="when" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="until" type="xsd:dateTime" minOccurs="0" 
+	maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="releaseRequestType">
+    <xsd:annotation>
+      <xsd:documentation>
+	A request to release the access rights allocated by an earlier 
+	RequestAccess call.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="allocID" type="tns:IDType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="releaseResponseType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Indication that the access has been terminated.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="allocID" type="tns:IDType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="createRequestType">
+    <xsd:annotation>
+      <xsd:documentation>
+	A request to embed a federated experiment across testbeds.  Non-
+	standard local names for testbeds are included in the
+	testbedmap, the user making the request, the experiment
+	description, master testbed, and a suggested experiment name are
+	included.  More than one name can be suggested, either as
+	synonyms (a fedid and a localname) or as choices (multiple
+	localnames).
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="testbedmap" type="tns:mapType" minOccurs="0"
+	maxOccurs="unbounded"/>
+      <xsd:element name="user" type="tns:userType" minOccurs="1"
+	maxOccurs="unbounded"/>
+      <xsd:element name="experimentdescription" 
+	type="tns:experimentDescriptionType"/>
+      <xsd:element name="master" type="xsd:string"/>
+      <xsd:element name='exportProject' type="tns:IDType"/>
+      <xsd:element name="experimentID" type="tns:IDType" minOccurs="0" 
+	maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="createResponseType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Returned to let the caller know that the request is underway and what
+	credentials will eventauly be able to be used to access them.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="experimentID" type="tns:IDType" minOccurs="1"
+	maxOccurs="unbounded"/>
+      <xsd:element name="experimentStatus" type="tns:statusType"/>
+      <xsd:element name="experimentAccess" type="tns:accessType" minOccurs="0"
+	maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="vtopoRequestType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Request for an existing experiment's virtual topology.
+	Different information may be returned based on the user's rights
+	to see the topology.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="experiment" type="tns:IDType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="vtopoResponseType">
+    <xsd:annotation>
+      <xsd:documentation>
+	The response to a topology request.  Different information may
+	be returned based on the user's rights to see the topology.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="experiment" type="tns:IDType"/>
+      <xsd:element name="vtopo" type="tns:vtopoType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+  <xsd:complexType name="visRequestType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Request for an existing experiment's visualization.  This is
+	largely a compatibility service.  Different information may be
+	returned based on the user's rights to see the topology.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="experiment" type="tns:IDType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="visResponseType">
+    <xsd:annotation>
+      <xsd:documentation>
+	An existing experiment's visualization.  This is largely a
+	compatibility service.  Different information may be returned
+	based on the user's rights to see the topology.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="experiment" type="tns:IDType"/>
+      <xsd:element name="vis" type="tns:visType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="infoRequestType">
+    <xsd:annotation>
+      <xsd:documentation>
+	A combined topology, visualalization, and federant request.
+	Different information may be returned based on the user's rights
+	to see the topology.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="experiment" type="tns:IDType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="infoResponseType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Information on an instantiated experiment.  Different information may
+	be returned based on the user's rights to see the topology.  Includes
+	the information about federants hosting sub-experiments for service
+	access as well as virtual topology and visualization information.  All
+	that information is relative to the requester.  ExperimentAccess
+	includes credentials with which one can access the experiment.  These
+	may include a public key necessary to prove possession of the
+	credential and should be treated with care.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="federant" type="tns:federatedExperimentType" 
+        minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="vtopo" type="tns:vtopoType" minOccurs="0"
+	maxOccurs="1"/>
+      <xsd:element name="vis" type="tns:visType" minOccurs="0"
+	maxOccurs="1"/>
+      <xsd:element name="experimentID" type="tns:IDType" minOccurs="1"
+	maxOccurs="unbounded"/>
+      <xsd:element name="allocationLog" type="xsd:string" minOccurs="0" 
+	maxOccurs="1"/>
+      <xsd:element name="experimentStatus" type="tns:statusType"/>
+      <xsd:element name="experimentAccess" type="tns:accessType" minOccurs="0"
+	maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+  <xsd:complexType name="multiInfoRequestType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Gets all information that this user can access on this fedd.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="multiInfoResponseType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Multi info response.  A list of infoResponses
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="info" type="tns:infoResponseType" minOccurs="0"
+	maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="terminateRequestType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Request to terminate an experiment.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="experiment" type="tns:IDType"/>
+      <xsd:element name="force" type="xsd:boolean" minOccurs="0" maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="terminateResponseType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Indication that the experiment has been terminated.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="experiment" type="tns:IDType"/>
+      <xsd:element name="deallocationLog" type="xsd:string" minOccurs="0"
+	maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="ns2SplitRequestType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Request to run the CEDL splitter remotely.  This is primarily an
+	internal interface.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="tns:experimentDescriptionType"/>
+      <xsd:element name="master" type="xsd:string"/>
+      <xsd:element name="include_fedkit" type="xsd:boolean"/>
+      <xsd:element name="include_gatewaykit" type="xsd:boolean"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="ns2SplitResponseType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Remote splitter output.  Also an internal interface
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="output" type="xsd:base64Binary"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+  <xsd:complexType name="faultType">
+    <xsd:annotation>
+      <xsd:documentation>
+	Indication that a service has failed.  The code values are
+
+	  1 access denied
+	  2 proxy error
+	  3 badly formed request
+	  4 server configuration error
+	  5 internal error
+	  6 partial instantiation
+	  7 federant error
+
+	Errstr contains the text above corresponding to the code.  Code
+	is always present.  Desc provides additional human-readable data
+	about the error.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="code" type="xsd:int">
+	<xsd:restriction>
+	  <xsd:enumeration value="1"/>	<!-- access denied -->
+	  <xsd:enumeration value="2"/>	<!-- protocol error -->
+	  <xsd:enumeration value="3"/>	<!-- badly formed request -->
+	  <xsd:enumeration value="4"/>	<!-- server configuration error -->
+	  <xsd:enumeration value="5"/>	<!-- internal error -->
+	  <xsd:enumeration value="6"/>	<!-- partial instantiation -->
+	  <xsd:enumeration value="7"/>	<!-- federant error -->
+	  <xsd:enumeration value="8"/>  <!-- connect error -->
+	</xsd:restriction>
+      </xsd:element>
+      <xsd:element name="errstr" minOccurs="0" maxOccurs="1" type="xsd:string">
+      </xsd:element>
+      <xsd:element name="desc" type="xsd:string"/>
+    </xsd:sequence>
+  </xsd:complexType>
+</xsd:schema>
