[GRAAP-WG] Suggested WSDL and XSD modification
Tianchao Li
lit at in.tum.de
Wed Oct 25 06:20:21 CDT 2006
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 at ogf.org
> http://www.ogf.org/mailman/listinfo/graap-wg
>
More information about the graap-wg
mailing list