[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Issue - 7 - Import
I agreed to send a proposal for adding <import> into BPEL. I have taken a look at existing import mechanism in Schema and WSDL; this is my summary of the problem and a proposal. The goal is to allow applications processing a BPEL definition to be able to tell up-front the dependencies that the process has on external definitions. The mechanism use should be optional and treated as a hint. This is a common characteristic of existing import mechanisms (XSD, WSDL 1.1, WSDL 1.2.) There are now two possible types of definitions that BPEL processes may depend upon: XSD definitions of elements and types; WSDL 1.1 definitions of messages, port types, as well as properties and partner link definitions contained in WSDL documents. The outcome of issue #2 (sub functions) may or may not require the ability to import BPEL process definitions as well. There is an important design issue here (Ugo brought this up in the pastl). It essentially boils down to being able to tell what kind of document is being imported, with the goal of helping the processor figure out how to process the import. XSD documents only import other XSD documents; WSDL documents (in the version 1.2 draft and in the WS-I basic profile) import WSDL documents only, except from inside an <wsdl:types>/<xsd:schema> section, where (only) XSD documents may be imported. The approach followed is then is to disambiguate the type of the imported document based on the importing environment. While this is a reasonable approach it will not work for BPEL since BPEL lacks the equivalent of a <wsdl:types> section for either XSD types or WSDL definitions. I can think of two solutions: 1. Introduce a single <bpel:import> element used to import XSD, WSDL (and maybe BPEL) definitions. Disambiguation would be supporting by adding an attribute indicating the import type. The proposed element would look as follows: <bpel:import targetNamespace="..." location="... document location ..." importType="xsd-namespace-uri/wsdl-namespace-uri/bpel-namespace-uri"/> 2. Reuse the existing elements defined in XSD and WSDL for importing those types of documents; introduce a single <bpel:import> element only for BPEL files if eventually required depending on the resolution of issue 2. In this proposal, a <bpel:process> element may have <xsd:import> and <wsdl:import> elements as children for importing the corresponding document types. Proposal 1 seems simpler because introduces no external dependencies or issues with reusing the semantics of predefined elements in a different context. I would thus suggest that we go for issue 1. Comments? Paco
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]