OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

provision message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: SPML draft documents - issues


	Hi all,

	Following a review of the current drafts, I wish to raise several
issues:


	1. In the next excerpt from draft_pstc_schema_core_12, the ErrorID
is required in every response. If so - what 'error' code is designated for a
success message?

		<xsd:complexType name="SpmlResponse">
	 		<xsd:sequence>
	 			<xsd:element name="operationalAttributes"
type="spml:Attributes" minOccurs="0" maxOccurs="1"/>
	 			<xsd:element name="errorMessage"
type="xsd:string" minOccurs="0"/>
	 		</xsd:sequence>
	  		<xsd:attribute name="results" type="spml:ResultCode"
use="required"/>
	 		<xsd:attribute name="requestID"
type="dsml:RequestID" use="optional"/>
	 		<xsd:attribute name="error" type="spml:ErrorCode"
use="required"/>
	 	</xsd:complexType>


	2. The next excerpt from the draft_pstc_schema_core_12 file
specifies several error codes:

		<xsd:simpleType name="ErrorCode">
	 		<xsd:restriction base="xsd:string">
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#malformedRequest"/>
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unsupportedOperation"/>
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unsupportedIdentifierType"/>
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#noSuchIdentifier"/>
	 		</xsd:restriction>
	 	</xsd:simpleType>

		Given that there is a difference between 'unsupported' and
'unrecognized' I think that the spec should support (no pun intended) both
aspects. Such a list should 	therefore be generally modified to better
reflect correspondence to a given request's parts - including at least the
following:

		<xsd:simpleType name="ErrorCode">
	 		<xsd:restriction base="xsd:string">
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unrecognizedRequestFormat"/>
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unrecognizedExecution"/>
				<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unrecognizedOperation"/>
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unsupportedOperation"/>
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unrecognizedID"/>
	 		</xsd:restriction>
	 	</xsd:simpleType>


		Moreover, the error coding should exhibit more breadth by
supporting each ProviderID's specific codes. 
		Following is one possible way to accomplish this:

		<xsd:complexType name="SpmlResponse">
	 		<xsd:sequence>
	 			<xsd:element name="operationalAttributes"
type="spml:Attributes" minOccurs="0" maxOccurs="1"/>
	 			<xsd:element name="errorMessage"
type="xsd:string" minOccurs="0"/>
	 		</xsd:sequence>
	  		<xsd:attribute name="results" type="spml:ResultCode"
use="required"/>
	 		<xsd:attribute name="requestID"
type="dsml:RequestID" use="optional"/>
	 		<xsd:attribute name="error" type="spml:ErrorCode"
use="required"/>
	 	</xsd:complexType>
		
		<xsd:simpleType name="ErrorCode">
			<xsd:sequence>
	 			<xsd:element name="providerIdentifier"
type="spml:ProviderIdentifier" minOccurs="1" maxOccurs="1" />
	 			<xsd:element name="ErrorIdentifier"
type="spml:ErrorCodes" minOccurs="1" maxOccurs="1"/>
	 			<xsd:element name="ErrorDescription"
type="xsd:string" minOccurs="0" maxOccurs="1"/> 
	 		</xsd:sequence>
	 	</xsd:simpleType>

		- and the Provider-specific variety of Error Codes could be
implemented by:

		<xsd:simpleType name="ErrorCodes">
	 		<xsd:restriction base="xsd:string">
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unrecognizedRequestFormat"/>
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unrecognizedExecution"/>
				<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unrecognizedOperation"/>
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unsupportedOperation"/>
	 			<xsd:enumeration
value="urn:oasis:names:tc:SPML:1.0:core#unrecognizedID"/>
	 		</xsd:restriction>
	 	</xsd:simpleType>


	3. The following excerpt from draft_pstc_schema_core_12  states that
ModifyResponse should be based on spml:Request in lieu of spml:Response:


		<xsd:complexType name="ModifyResponse">
	 		<xsd:complexContent>
	 			<xsd:extension base="spml:SpmlRequest">
	 				<xsd:sequence>
	 					<xsd:element
name="modifications" type="spml:Modifications" minOccurs="0"
maxOccurs="unbounded"/>
	 				</xsd:sequence>
	 			</xsd:extension>
	 		</xsd:complexContent>
	 	</xsd:complexType>

	4. The following excerpt from draft_pstc_schema_schema_05 has no
provision for implementation of ExtendedRequests created originally by
another ProviderID. 

		<xsd:complexType name="ExtendedRequestDefinition">
	  		<xsd:sequence>
	 			<xsd:element name="operationIdentifier"
type="spml:OperationIdentifier" minOccurs="1" maxOccurs="1" />
	 			<xsd:element name="properties"
type="Properties" minOccurs="0" maxOccurs="1"/>
	 			<xsd:element name="parameters"
type="AttributeDefinitionReferences" minOccurs="0" maxOccurs="1"/>
	 			<xsd:element name="returnValues"
type="AttributeDefinitionReferences" minOccurs="0" maxOccurs="1"/>
	 		</xsd:sequence>
	  		<xsd:attribute name="description" type="xsd:string"
use="optional"/>
	  	</xsd:complexType>

	IMO the spec should support the use of ExtendedRequests implemented
by a different ProviderID. 
	While its relevance might not be obvious at the moment, support of
alternative ProviderID ExtendedRequests might assist to achieve
interoperability in the long run. 
	The modified schema excerpt should therefore look like this:

		<xsd:complexType name="ExtendedRequestDefinition">
	  		<xsd:sequence>
				<xsd:element name="providerIdentifier"
type="spml:ProviderIdentifier" minOccurs="1" maxOccurs="1" />
	 			<xsd:element name="operationIdentifier"
type="spml:OperationIdentifier" minOccurs="1" maxOccurs="1" />
	 			<xsd:element name="properties"
type="Properties" minOccurs="0" maxOccurs="1"/>
	 			<xsd:element name="parameters"
type="AttributeDefinitionReferences" minOccurs="0" maxOccurs="1"/>
	 			<xsd:element name="returnValues"
type="AttributeDefinitionReferences" minOccurs="0" maxOccurs="1"/>
	 		</xsd:sequence>
	  		<xsd:attribute name="description" type="xsd:string"
use="optional"/>
	  	</xsd:complexType>





	Rami Elron
	BMC Software Ltd.




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]