
Mark Morgan wrote:
I think that there are additional problems with the WSDL and XSD for bes-factory in that the result types that have Fault elements inside all assume a cardinatlity of [1, 1] when it seems clear to me that the type should be of cardinality [0, 1].
Good catch. Here's a version of the .wsdl and .xsd with Fault elements as optional.. Peter
-Mark
-- Mark Morgan Research Scientist Department of Computer Science University of Virginia http://www.cs.virginia.edu mmm2a@virginia.edu (434) 982-2047
-- ogsa-hpcp-wg mailing list ogsa-hpcp-wg@ogf.org http://www.ogf.org/mailman/listinfo/ogsa-hpcp-wg
<wsdl:definitions name="BESFactory" targetNamespace="http://schemas.ggf.org/bes/2006/08/bes-factory" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bes-factory="http://schemas.ggf.org/bes/2006/08/bes-factory" xmlns:wsa="http://www.w3/org/2005/08/addressing" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > <wsdl:types> <xsd:schema xmlns:wsa="http://www.w3.org/2005/08/addressing" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://schemas.ggf.org/bes/2006/08/bes-factory"> <xsd:include schemaLocation="bes-factory.xsd"/> <!-- Message Types --> <xsd:complexType name="CreateActivityType"> <xsd:sequence> <xsd:element ref="bes-factory:ActivityDocument"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="CreateActivityResponseType"> <xsd:sequence> <xsd:element ref="bes-factory:ActivityIdentifier"/> <xsd:element ref="bes-factory:ActivityDocument" minOccurs="0"/> <xsd:element name="Fault" type="xsd:anyType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="GetActivityStatusesType"> <xsd:sequence> <xsd:element name="ActivityIdentifier" type="wsa:EndpointReferenceType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="GetActivityStatusesResponseType"> <xsd:sequence> <xsd:element name="Response" type="bes-factory:GetActivityStatusResponseType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="TerminateActivitiesType"> <xsd:sequence> <xsd:element ref="bes-factory:ActivityIdentifier" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="TerminateActivitiesResponseType"> <xsd:sequence> <xsd:element name="Response" type="bes-factory:TerminateActivityResponseType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="GetActivityDocumentsType"> <xsd:sequence> <xsd:element ref="bes-factory:ActivityIdentifier" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="GetActivityDocumentsResponseType"> <xsd:sequence> <xsd:element name="Response" type="bes-factory:GetActivityDocumentResponseType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="GetFactoryAttributesDocumentType"/> <xsd:complexType name="GetFactoryAttributesDocumentResponseType"> <xsd:sequence> <xsd:element ref="bes-factory:FactoryResourceAttributesDocument"/> </xsd:sequence> </xsd:complexType> <!-- Fault Types --> <xsd:complexType name="NotAcceptingNewActivitiesFaultType"/> <xsd:complexType name="UnsupportedJSDLVersionFaultType"/> <xsd:complexType name="UnsupportedFeatureFaultType"> <xsd:sequence> <xsd:element name="Feature" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <!-- Message Elements --> <xsd:element name="CreateActivity" type="bes-factory:CreateActivityType"/> <xsd:element name="CreateActivityResponse" type="bes-factory:CreateActivityResponseType"/> <xsd:element name="GetActivityStatuses" type="bes-factory:GetActivityStatusesType"/> <xsd:element name="GetActivityStatusesResponse" type="bes-factory:GetActivityStatusesResponseType"/> <xsd:element name="TerminateActivities" type="bes-factory:TerminateActivitiesType"/> <xsd:element name="TerminateActivitiesResponse" type="bes-factory:TerminateActivitiesResponseType"/> <xsd:element name="GetActivityDocuments" type="bes-factory:GetActivityDocumentsType"/> <xsd:element name="GetActivityDocumentsResponse" type="bes-factory:GetActivityDocumentsResponseType"/> <xsd:element name="GetFactoryAttributesDocument" type="bes-factory:GetFactoryAttributesDocumentType"/> <xsd:element name="GetFactoryAttributesDocumentResponse" type="bes-factory:GetFactoryAttributesDocumentResponseType"/> <!-- Fault Elements --> <xsd:element name="NotAcceptingNewActivitiesFault" type="bes-factory:NotAcceptingNewActivitiesFaultType"/> <xsd:element name="UnsupportedJSDLVersionFault" type="bes-factory:UnsupportedJSDLVersionFaultType"/> <xsd:element name="UnsupportedFeatureFault" type="bes-factory:UnsupportedFeatureFaultType"/> </xsd:schema> </wsdl:types> <!-- Messages --> <wsdl:message name="CreateActivityRequest"> <wsdl:part name="CreateActivityRequest" element="bes-factory:CreateActivity"/> </wsdl:message> <wsdl:message name="CreateActivityResponse"> <wsdl:part name="CreateActivityResponse" element="bes-factory:CreateActivityResponse"/> </wsdl:message> <wsdl:message name="GetActivityStatusesRequest"> <wsdl:part name="GetActivityStatusesRequest" element="bes-factory:GetActivityStatuses"/> </wsdl:message> <wsdl:message name="GetActivityStatusesResponse"> <wsdl:part name="GetActivityStatusesResponse" element="bes-factory:GetActivityStatusesResponse"/> </wsdl:message> <wsdl:message name="TerminateActivitiesRequest"> <wsdl:part name="TerminateActivitiesRequest" element="bes-factory:TerminateActivities"/> </wsdl:message> <wsdl:message name="TerminateActivitiesResponse"> <wsdl:part name="TerminateActivitiesResponse" element="bes-factory:TerminateActivitiesResponse"/> </wsdl:message> <wsdl:message name="GetActivityDocumentsRequest"> <wsdl:part name="GetActivityDocumentsRequest" element="bes-factory:GetActivityDocuments"/> </wsdl:message> <wsdl:message name="GetActivityDocumentsResponse"> <wsdl:part name="GetActivityDocumentsResponse" element="bes-factory:GetActivityDocumentsResponse"/> </wsdl:message> <wsdl:message name="GetFactoryAttributesDocumentRequest"> <wsdl:part name="GetFactoryAttributesDocumentRequest" element="bes-factory:GetFactoryAttributesDocument"/> </wsdl:message> <wsdl:message name="GetFactoryAttributesDocumentResponse"> <wsdl:part name="GetFactoryAttributesDocumentResponse" element="bes-factory:GetFactoryAttributesDocumentResponse"/> </wsdl:message> <!-- Port Types --> <wsdl:portType name="BESFactoryPortType"> <wsdl:operation name="CreateActivity"> <wsdl:input message="bes-factory:CreateActivityRequest" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/CreateActivity"/> <wsdl:output message="bes-factory:CreateActivityResponse" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/CreateActivityResponse"/> </wsdl:operation> <wsdl:operation name="GetActivityStatuses"> <wsdl:input message="bes-factory:GetActivityStatusesRequest" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetActivityStatuses"/> <wsdl:output message="bes-factory:GetActivityStatusesResponse" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetActivityStatusesResponse"/> </wsdl:operation> <wsdl:operation name="TerminateActivities"> <wsdl:input message="bes-factory:TerminateActivitiesRequest" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/TerminateActivities"/> <wsdl:output message="bes-factory:TerminateActivitiesResponse" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/TerminateActivitiesResponse"/> </wsdl:operation> <wsdl:operation name="GetActivityDocuments"> <wsdl:input message="bes-factory:GetActivityDocumentsRequest" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetActivityDocuments"/> <wsdl:output message="bes-factory:GetActivityDocumentsResponse" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetActivityDocumentsResponse"/> </wsdl:operation> <wsdl:operation name="GetFactoryAttributesDocument"> <wsdl:input message="bes-factory:GetFactoryAttributesDocumentRequest" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetFactoryAttributesDocument"/> <wsdl:output message="bes-factory:GetFactoryAttributesDocumentResponse" wsa:Action="http://schemas.ggf.org/bes/2006/08/bes-factory/BESFactoryPortType/GetFactoryAttributesDocumentResponse"/> </wsdl:operation> </wsdl:portType> </wsdl:definitions> <xsd:schema targetNamespace="http://schemas.ggf.org/bes/2006/08/bes-factory" xmlns="http://schemas.ggf.org/bes/2006/08/bes-factory" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:bes-factory="http://schemas.ggf.org/bes/2006/08/bes-factory" xmlns:jsdl="http://schemas.ggf.org/jsdl/2005/11/jsdl" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xsd:import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="./ws-addr.xsd"/> <xsd:import namespace="http://schemas.ggf.org/jsdl/2005/11/jsdl" schemaLocation="./jsdl.xsd"/> <xsd:import namespace="http://www.w3.org/2003/05/soap-envelope" schemaLocation="./soap-env.xsd"/> <!-- Attribute Document Types --> <xsd:complexType name="BasicFactoryResourceAttributesDocumentType"> <xsd:sequence> <xsd:element name="OperatingSystem" type="jsdl:OperatingSystem_Type" minOccurs="0"/> <xsd:element name="CPUArchitecture" type="jsdl:CPUArchitecture_Type" minOccurs="0"/> <xsd:element name="CPUCount" type="xsd:unsignedInt" minOccurs="0"/> <xsd:element name="CPUSpeed" type="xsd:unsignedLong" minOccurs="0"/> <xsd:element name="PhysicalMemory" type="xsd:unsignedLong" minOccurs="0"/> <xsd:element name="VirtualMemory" type="xsd:unsignedLong" minOccurs="0"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="FactoryResourceAttributesDocumentType"> <xsd:complexContent> <xsd:extension base="bes-factory:BasicFactoryResourceAttributesDocumentType"> <xsd:sequence> <xsd:element name="IsAcceptingNewActivities" type="xsd:boolean" minOccurs="1" maxOccurs ="1"/> <xsd:element name="CommonName" type="xsd:string" minOccurs="0" maxOccurs ="1"/> <xsd:element name="LongDescription" type="xsd:string" minOccurs="0" maxOccurs ="1"/> <xsd:element name="TotalNumberOfActivities" type="xsd:unsignedInt" minOccurs="1" maxOccurs ="1"/> <xsd:element name="LocalResourceManagerType" type="xsd:QName"/> <xsd:element name="ActivityReference" type="wsa:EndpointReferenceType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="ContainedResourceAttributes" type="xsd:anyType" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="NamingProfile" type="xsd:QName" minOccurs="1" maxOccurs ="1"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!-- Message Helper Types --> <xsd:complexType name="ActivityDocumentType"> <xsd:sequence> <xsd:element ref="jsdl:JobDefinition"/> <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="ActivityStatusType"> <xsd:choice> <xsd:element name="Pending" type="xsd:anyType"/> <xsd:element name="Running" type="xsd:anyType"/> <xsd:element name="Cancelled" type="xsd:anyType"/> <xsd:element name="Failed" type="xsd:anyType"/> <xsd:element name="Finished" type="xsd:anyType"/> </xsd:choice> </xsd:complexType> <xsd:complexType name="GetActivityStatusResponseType"> <xsd:sequence> <xsd:element ref="bes-factory:ActivityIdentifier"/> <xsd:element ref="bes-factory:ActivityStatus" minOccurs="0"/> <xsd:element name="Fault" type="xsd:anyType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="GetActivityDocumentResponseType"> <xsd:sequence> <xsd:element ref="bes-factory:ActivityIdentifier"/> <xsd:element ref="jsdl:JobDefinition" minOccurs="0"/> <xsd:element name="Fault" type="xsd:anyType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="TerminateActivityResponseType"> <xsd:sequence> <xsd:element ref="bes-factory:ActivityIdentifier"/> <xsd:element name="Cancelled" type="xsd:boolean"/> <xsd:element name="Fault" type="xsd:anyType"/> </xsd:sequence> </xsd:complexType> <!-- Message Helper Elements --> <xsd:element name="BasicFactoryResourceAttributseDocument" type="bes-factory:BasicFactoryResourceAttributesDocumentType"/> <xsd:element name="FactoryResourceAttributesDocument" type="bes-factory:FactoryResourceAttributesDocumentType"/> <xsd:element name="ActivityDocument" type="bes-factory:ActivityDocumentType"/> <xsd:element name="ActivityIdentifier" type="wsa:EndpointReferenceType"/> <xsd:element name="ActivityStatus" type="bes-factory:ActivityStatusType"/> </xsd:schema>