[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [unitsml] Addition to conversion options
Stuart, Thank you for this useful contribution. After reviewing your contribution I believe there are a few refinements that should be considered for the proposed conversion type. 1.) I think that in your example below "inputValue" should not be denoted with the MethodParameter element, since it will differ for each call to the service. This parameter name needs to be documented somewhere in the WSDLConversionFrom element. 2.) I think the WSDLConversionFrom element needs to provide more information about the format of data the input and output of the service. I really have not thought carefully about this but I think we will need more information here. Peter ----- Original Message ----- From: "Stuart Chalk" <schalk@unf.edu> To: <unitsml@lists.oasis-open.org> Sent: Wednesday, July 02, 2008 3:32 PM Subject: [unitsml] Addition to conversion options In the teleconference I took on the responsibility of adding an additional conversion option to the schema - a WSDLConversionFrom option. After looking into this, and assuming that it would be a parser (or other automated processing) that would use this feature, the following is what I came up with that would need to be added to the current (0.9.11) schema. 1) Insert another option in the Conversions Sequence <xsd:complexType name="ConversionsType"> <xsd:annotation> <xsd:documentation>Type for the container for providing conversion information to other units.</xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:element ref="Float64ConversionFrom" minOccurs="0" maxOccurs="unbounded"> <xsd:annotation> <xsd:documentation>Element for providing factors for a conversion equation from another unit; y = d + ((b / c) (x + a)). Note: The related "conversion to" equation is a simple inversion of the above equation; i.e., x = ((c / b) (y - d)) - a.</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element ref="SpecialConversionFrom" minOccurs="0" maxOccurs="unbounded"> <xsd:annotation> <xsd:documentation>Element for describing a conversion that cannot be described by the linear expression in the element Float64ConversionFrom.</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element ref="WSDLConversionFrom" minOccurs="0" maxOccurs="unbounded"> <xsd:annotation> <xsd:documentation>Element for providing conversion based on SOAP/ WSDL calls to a remote server.</xsd:documentation> </xsd:annotation> </xsd:element> </xsd:sequence> </xsd:complexType> 2) Add a new element definition after SpecialConversionFrom <xsd:element name="WSDLConversionFrom" type="WSDLConversionFromType"> <xsd:annotation> <xsd:documentation>Element for providing conversion based on SOAP/ WSDL calls to a remote server.</xsd:documentation> </xsd:annotation> </xsd:element> 3) Add a a new complexType definition after SpecialConversionFrom <xsd:complexType name="WSDLConversionFromType"> <xsd:annotation> <xsd:documentation>Type for the element for providing unit conversion information for conversions that are more complex than the Float64ConversionFrom linear equation.</xsd:documentation> </xsd:annotation> <xsd:sequence> <xsd:element ref="ConversionDescription" minOccurs="0" maxOccurs="unbounded"> <xsd:annotation> <xsd:documentation>Description of the conversion.</ xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element ref="ServiceMethod" minOccurs="1" maxOccurs="1" type="xsd:string"> <xsd:annotation> <xsd:documentation>The name of the method on the WSDL service that will do the conversion.</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element ref="MethodParameter" minOccurs="1" maxOccurs="unbounded" type="xsd:string"> <xsd:annotation> <xsd:documentation>The name of the method on the WSDL service that will do the conversion.</xsd:documentation> </xsd:annotation> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:element> </xsd:sequence> <xsd:attribute name="ID" type="xsd:token"> <xsd:annotation> <xsd:documentation>Allows reference to this conversion.</ xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="WSDLURI" type="xsd:anyURI" use="required"> <xsd:annotation> <xsd:documentation>URI for external WSDL definition file.</ xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="WSDLMethod" use="required"> <xsd:annotation> <xsd:documentation>URI for external WSDL definition file.</ xsd:documentation> </xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:token"> <xsd:enumeration value="soap"/> <xsd:enumeration value="get"/> </xsd:restriction> </simpleType> </xsd:attribute> </xsd:complexType> An example might look like this <Conversions> <WSDLConversionFrom id="wsdl1" WSDLURI="http://www.somewebsite.com/converter/wsdl " WSDLMethod="soap"> <ServiceMethod>convertUnit</ServiceMethod> <MethodParameter name="inputValue">82</MethodParameter> <MethodParameter name="inputUnit">°C</MethodParameter> <MethodParameter name="outputUnit">K</MethodParameter> </WSDLConversionFrom> </Conversions> The WSDL Method attribute tells the parser wether to generate a SOAP request or an HTTP GET request to perform the service. As I have been working on this I have not had chance to 1) write up my comments on the guideline document or scan the schema for other elements that need to have the language added to them. I will work on those for the next meeting. Stuart
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]