- From: Asir Vedamuthu <asirv@webmethods.com>
- Date: Wed, 20 Oct 2004 09:29:37 -0400
- To: www-ws-desc@w3.org
ref: http://www.w3.org/2002/ws/desc/4/lc-issues/issues.html#LC19 Action: Asir to detail binding changes or justify why they aren't necessary (LC19) The LC19 Story .. "We request the WG to elevate fault components as first class daughters of definition components" .. detail changes are, [1] Definitions Component.{faults} is a set of Fault components. {faults} is an open set. That is, faults that are not described in {faults} property can also be generated at run-time. [2] An Operation Fault Reference component associates a fault to a fault message occurring in a pattern. A fault is uniquely identified by its QName, {target namespace} and {name} properties. Operation Fault Reference component.{fault reference} = a fault component in the {faults} property of the Definitions Component. [3] A Binding Fault Component describes the concrete binding of a fault to a concrete message format. A fault is uniquely identified by its QName, {target namespace} and {name} properties. Binding Fault Component.{fault reference} = a fault component in the {faults} property of the Definitions Component. [4] URI reference for a fault component is fault(x), where x is "{name} property of fault". That is, Definition.{faults} |<------ Operation Fault Reference |<------ Binding Fault Why? * Allows users to identify faults across interfaces, across multiple operations and referenced in bindings. Avoids duplicate fault declarations. * Naturally maps to programming languages. * Eliminates several constraints, limitations and best practice statements (see below) in Part 1: (a) "Interface Fault components are local to Interface components; they cannot be referred to by QName, despite having both {name} and {target namespace} properties." - http://www.w3.org/TR/2004/WD-wsdl20-20040803/#InterfaceFault_details (b) For interface extension, fault component's {name} and {target namespace}: "In cases where, due to an interface extending one or more other interfaces, two or more Interface Faults components have the same value for their {name} and {target namespace} properties, then the component models of those Interface Fault components MUST be equivalent (see 2.16 Equivalence of Components). If the Interface Fault components are equivalent then they are considered to collapse into a single component. It is an error if two Interface Fault components have the same value for their {name} and {target namespace} properties but are not equivalent. Note that, due to the above rules, if two interfaces that have the same value for their {target namespace} property also have one or more faults that have the same value for their {name} property then those two interfaces cannot both form part of the derivation chain of a derived interface unless those faults are the same fault." Note: For the above reason, it is considered good practice to ensure, where necessary, that the {name} property of Interface Fault components within a namespace are unique, thus allowing such derivation to occur without inadvertent error." - http://www.w3.org/TR/2004/WD-wsdl20-20040803/#InterfaceFault_details (c) "A particular fault of an interface is uniquely identified by the target namespace of the interface and the name of the fault within that interface." - http://www.w3.org/TR/2004/WD-wsdl20-20040803/#Binding_Fault_details Regards, Asir S Vedamuthu asirv at webmethods dot com http://www.webmethods.com/
Received on Wednesday, 20 October 2004 13:30:13 UTC