
Hi, as you know, I'm implementing the WSAG on top of GT4. I've found some issues with the current WSDL and schema definition and suggest the corresponding modification is made. There are three kinds of issues that are concerened: (1) in AgreementState.wsdl <xs:complexType name="AgreementStatePropertiesType"> <xs:sequence> <xs:element ref="wsag:AgreementState" /> <xs:element ref="wsag:GuaranteeTermStateList" /> <xs:element ref="wsag:ServiceTermStateList" /> </xs:sequence> </xs:complexType> should be <xs:complexType name="AgreementStatePropertiesType"> <xs:sequence> <xs:element ref="wsag:AgreementState" /> <xs:element ref="wsag:GuaranteeTermState" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="wsag:ServiceTermState" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> It avoids the definition of additional type wsag:GuaranteeTermStateList and wsag:ServiceTermStateList. It is more consistent with the WSRF specification by giving individual access to each of the GuaranteeTermState and ServiceTermState items. Correspondingly, the current definition of wsag:GuaranteeTermStateList and wsag:ServiceTermStateList in agreement_state_types.xsd : <xsd:element name="GuaranteeTermStateList" type="wsag:GuaranteeTermStateListType" /> <xsd:element name="ServiceTermStateList" type="wsag:ServiceTermStateListType" /> should correspondingly be modified into <xsd:element name="GuaranteeTermState" type="wsag:GuaranteeTermStateType" /> <xsd:element name="ServiceTermState" type="wsag:ServiceTermStateType" /> (2) Related with issue (1), I stongly suggest wsag:AgreementStateType and wsag:GuaranteeTermStateType and wsag:ServiceTermStateType defined in the way as the attached agreement_state_types.xsd . Take ServiceTermState for example. Briefly speaking, it defines the ServiceTermState as a global element to support issue(1). AND, the ServiceTermStateType extends the TermStateType and the corresponding type of state is defined as an attribute extension. ---original--- <xsd:complexType name="GuaranteeTermStateListType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="NotDetermined" type="wsag:TermStateType" /> <xsd:element name="Fulfilled" type="wsag:TermStateType" /> <xsd:element name="Violated" type="wsag:TermStateType" /> </xsd:choice> </xsd:complexType> ---suggestion--- <xsd:element name="ServiceTermState" type="wsag:ServiceTermStateType" /> <xsd:complexType name="ServiceTermStateType"> <xsd:complexContent> <xsd:extension base="wsag:TermStateType"> <xsd:attribute name="state"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NotReady" /> <xsd:enumeration value="Ready" /> <xsd:enumeration value="Completed" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> This has several practical advantages. First, if the state element has sub elements, the change of state will result into complicated XML process or Java object operations in the old definition and with the suggested definition you only need to change the state parameter. Second, both Globus and Axis 1.x has problem in stub generation for xsd:choice maxOccurs="unbounded". Third, this definition is more consistent with the style of definition in agreement_types.xsd (look at the different term type definitions there). After all, this change does not result into the loss of constraint power and do not require modification of the current specification except for the XSD file itself. Please see the attached agreement_state_types.xsd file for modifications to other types. (3) in one of my previous posts, I asked about the exact meaning of wsag:AgreementServiceReferenceList as a sub element of wsag:AgreementProperties and got no answer yet. It seems to be a duplication of the information in ServiceReference element of ServiceDescriptionTerm, which is another sub element of wsag:AgreementProperties. If I'm correct, then it should be removed. Correct me if I'm wrong. And if you agree, please vote. Best regards, Tianchao Li ============================== Institut fuer Informatik, TU Muenchen Germany http://www.lrr.in.tum.de/~lit

Hi, is there any comments or objections about my suggestion? If not, I would like to see these changes reflected in the spec and I can make updates to the document and upload it. When is the next conference call, by the way? Best wishes, Tianchao Li Tianchao Li wrote:
Hi,
as you know, I'm implementing the WSAG on top of GT4. I've found some issues with the current WSDL and schema definition and suggest the corresponding modification is made. There are three kinds of issues that are concerened: (1) in AgreementState.wsdl
<xs:complexType name="AgreementStatePropertiesType"> <xs:sequence> <xs:element ref="wsag:AgreementState" /> <xs:element ref="wsag:GuaranteeTermStateList" /> <xs:element ref="wsag:ServiceTermStateList" /> </xs:sequence> </xs:complexType> should be <xs:complexType name="AgreementStatePropertiesType"> <xs:sequence> <xs:element ref="wsag:AgreementState" /> <xs:element ref="wsag:GuaranteeTermState" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="wsag:ServiceTermState" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> It avoids the definition of additional type wsag:GuaranteeTermStateList and wsag:ServiceTermStateList. It is more consistent with the WSRF specification by giving individual access to each of the GuaranteeTermState and ServiceTermState items.
Correspondingly, the current definition of wsag:GuaranteeTermStateList and wsag:ServiceTermStateList in agreement_state_types.xsd : <xsd:element name="GuaranteeTermStateList" type="wsag:GuaranteeTermStateListType" /> <xsd:element name="ServiceTermStateList" type="wsag:ServiceTermStateListType" /> should correspondingly be modified into <xsd:element name="GuaranteeTermState" type="wsag:GuaranteeTermStateType" /> <xsd:element name="ServiceTermState" type="wsag:ServiceTermStateType" />
(2) Related with issue (1), I stongly suggest wsag:AgreementStateType and wsag:GuaranteeTermStateType and wsag:ServiceTermStateType defined in the way as the attached agreement_state_types.xsd . Take ServiceTermState for example. Briefly speaking, it defines the ServiceTermState as a global element to support issue(1). AND, the ServiceTermStateType extends the TermStateType and the corresponding type of state is defined as an attribute extension.
---original--- <xsd:complexType name="GuaranteeTermStateListType"> <xsd:choice maxOccurs="unbounded"> <xsd:element name="NotDetermined" type="wsag:TermStateType" /> <xsd:element name="Fulfilled" type="wsag:TermStateType" /> <xsd:element name="Violated" type="wsag:TermStateType" /> </xsd:choice> </xsd:complexType>
---suggestion--- <xsd:element name="ServiceTermState" type="wsag:ServiceTermStateType" /> <xsd:complexType name="ServiceTermStateType"> <xsd:complexContent> <xsd:extension base="wsag:TermStateType"> <xsd:attribute name="state"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NotReady" /> <xsd:enumeration value="Ready" /> <xsd:enumeration value="Completed" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType>
This has several practical advantages. First, if the state element has sub elements, the change of state will result into complicated XML process or Java object operations in the old definition and with the suggested definition you only need to change the state parameter. Second, both Globus and Axis 1.x has problem in stub generation for xsd:choice maxOccurs="unbounded". Third, this definition is more consistent with the style of definition in agreement_types.xsd (look at the different term type definitions there).
After all, this change does not result into the loss of constraint power and do not require modification of the current specification except for the XSD file itself.
Please see the attached agreement_state_types.xsd file for modifications to other types.
(3) in one of my previous posts, I asked about the exact meaning of wsag:AgreementServiceReferenceList as a sub element of wsag:AgreementProperties and got no answer yet. It seems to be a duplication of the information in ServiceReference element of ServiceDescriptionTerm, which is another sub element of wsag:AgreementProperties. If I'm correct, then it should be removed.
Correct me if I'm wrong. And if you agree, please vote.
Best regards, Tianchao Li
============================== Institut fuer Informatik, TU Muenchen Germany http://www.lrr.in.tum.de/~lit
------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema targetNamespace="http://schemas.ggf.org/graap/2005/09/ws-agreement" elementFormDefault="qualified" attributeFormDefault="qualified" xmlns:wsag="http://schemas.ggf.org/graap/2005/09/ws-agreement" xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="InnerAgreementStateType"> <xsd:sequence> <xsd:any namespace="##other" processContents="lax" minOccurs="0" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="AgreementStateType"> <xsd:complexContent> <xsd:extension base="wsag:InnerAgreementStateType"> <xsd:attribute name="state"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Pending" /> <xsd:enumeration value="PendingAndTerminating" /> <xsd:enumeration value="Observed" /> <xsd:enumeration value="ObservedAndTerminating" /> <xsd:enumeration value="Rejected" /> <xsd:enumeration value="Complete" /> <xsd:enumeration value="Terminated" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="TermStateType"> <xsd:choice minOccurs="0"> <xsd:any namespace="##other" processContents="lax" /> <!--Processing and Idle only as substates of Ready--> <xsd:element name="Processing" type="wsag:InnerTermStateType" /> <xsd:element name="Idle" type="wsag:InnerTermStateType" /> </xsd:choice> <xsd:attribute name="termName" type="xsd:string" /> </xsd:complexType> <xsd:complexType name="InnerTermStateType"> <xsd:sequence> <xsd:any namespace="##other" processContents="lax" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="GuaranteeTermStateType"> <xsd:complexContent> <xsd:extension base="wsag:TermStateType"> <xsd:attribute name="state"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NotDetermined" /> <xsd:enumeration value="Fulfilled" /> <xsd:enumeration value="Violated" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element name="ServiceTermState" type="wsag:ServiceTermStateType" /> <xsd:complexType name="ServiceTermStateType"> <xsd:complexContent> <xsd:extension base="wsag:TermStateType"> <xsd:attribute name="state"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NotReady" /> <xsd:enumeration value="Ready" /> <xsd:enumeration value="Completed" /> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!--global elements are defined in the imported type library--> <xsd:element name="AgreementState" type="wsag:AgreementStateType" /> <xsd:element name="GuaranteeTermState" type="wsag:GuaranteeTermStateType" /> <xsd:element name="ServiceTermState" type="wsag:ServiceTermStateType" /> </xsd:schema>
------------------------------------------------------------------------
-- graap-wg mailing list graap-wg@ogf.org http://www.ogf.org/mailman/listinfo/graap-wg
participants (1)
-
Tianchao Li