Ok sure eventually why not. But I don't think we should wait till that happens before doing [a].
...ant On 8/20/07, Venkata Krishnan <[EMAIL PROTECTED]> wrote: > > Hi Ant, just to understand a little better - do you propose we must get > our extensions endorsed by the Specs ? > > - Venkat > > On 8/20/07, ant elder < [EMAIL PROTECTED]> wrote: > > > > On 8/20/07, Jean-Sebastien Delfino < [EMAIL PROTECTED]> wrote: > > > > > > Luciano Resende wrote: > > > > Sebastien wrote : > > > > > > > >> IMO application developers shouldn't have to suffer from the > > > >> > > > > complexity of XML... > > > > > > > >> How about supporting composites without namespace declarations at > > all? > > > >> > > > > > > > > I'm trying to understand all the proposals here, what would be the > > > > side effects of going with your proposal ? This seems like simple, > > and > > > > simple is good... > > > > > > > > > > > > > > > > > > Before getting into the side effects, here are three examples: > > > > > > [A] What we have right now, standard SCA extensions and tuscany > > > extensions sharing the standard SCA namespace > > > > > > <composite xmlns=" http://www.osoa.org/xmlns/sca/1.0" > > > targetNamespace="http://bigbank" > > > xmlns:bb="http://bigbank" > > > name="BigBank"> > > > > > > <component name="AccountServiceComponent"> > > > <service name="AccountService"> > > > <binding.jsonrpc uri="/AccountJSONService"/> > > > <binding.ws > > > wsdlElement="http://bigbank#wsdl.port(AccountService/AccountServiceSoap) > > <http://bigbank#wsdl.port%28AccountService/AccountServiceSoap%29> > > > "/> > > > <binding.sca/> > > > </service> > > > > > > <implementation.java class="bigbank.account.AccountServiceImpl > > "/> > > > > > > <reference name="accountDataService" > > > target="AccountDataServiceComponent"/> > > > <reference name="calculatorService"> > > > <binding.rmi host="localhost" port="8099" > > > serviceName="CalculatorRMIService"/> > > > </reference> > > > <reference name="stockQuoteService"> > > > <binding.ws > > > wsdlElement=" > > > http://stockquote#wsdl.port(StockQuoteService/StockQuoteSoapPort)<http://stockquote#wsdl.port%28StockQuoteService/StockQuoteSoapPort%29> > > "/> > > > </reference> > > > > > > <property name="currency">EURO</property> > > > </component> > > > > > > <component name="AccountFeedComponent"> > > > <service name="Collection"> > > > <binding.rss uri="/rss"/> > > > < binding.atom uri="/atom"/> > > > </service> > > > <implementation.java class=" > > bigbank.account.feed.AccountFeedImpl > > > "/> > > > <reference name="accountService" > > > target="AccountServiceComponent"/> > > > </component> > > > > > > <component name="AccountDataServiceComponent"> > > > <implementation.composite name="bb:AccountData"/> > > > </component> > > > > > > <component name="WebResourceComponent"> > > > <service name="Resource"> > > > <binding.resource uri="/"/> > > > </service> > > > <implementation.resource location="web"/> > > > </component> > > > > > > </composite> > > > > > > > > > (B) What IMO is a more correct use of XML namespaces, standard SCA > > > extensions in the standard SCA namespace, and Tuscany extensions in a > > > Tuscany namespace > > > > > > <composite xmlns="http://www.osoa.org/xmlns/sca/1.0 " > > > xmlns:t="http://incubator.apache.org/xmlns/tuscany/1.0" > > > targetNamespace="http://bigbank " > > > xmlns:bb="http://bigbank" > > > name="BigBank"> > > > > > > <component name="AccountServiceComponent"> > > > <service name="AccountService"> > > > <t:binding.jsonrpc uri="/AccountJSONService"/> > > > <binding.ws > > > wsdlElement="http://bigbank#wsdl.port(AccountService/AccountServiceSoap)<http://bigbank#wsdl.port%28AccountService/AccountServiceSoap%29> > > > "/> > > > <binding.sca/> > > > </service> > > > > > > <implementation.java class="bigbank.account.AccountServiceImpl"/> > > > > > > <reference name="accountDataService" > > > target="AccountDataServiceComponent"/> > > > <reference name="calculatorService"> > > > <t: binding.rmi host="localhost" port="8099" > > > serviceName="CalculatorRMIService"/> > > > </reference> > > > <reference name="stockQuoteService"> > > > <binding.ws > > > wsdlElement=" > > > http://stockquote#wsdl.port(StockQuoteService/StockQuoteSoapPort) > > <http://stockquote#wsdl.port%28StockQuoteService/StockQuoteSoapPort%29> > > "/> > > > </reference> > > > > > > <property name="currency">EURO</property> > > > </component> > > > > > > <component name="AccountFeedComponent"> > > > <service name="Collection"> > > > <t:binding.rss uri="/rss"/> > > > <t:binding.atom uri="/atom"/> > > > </service> > > > <implementation.java class=" > > bigbank.account.feed.AccountFeedImpl > > > "/> > > > <reference name="accountService" > > > target="AccountServiceComponent"/> > > > </component> > > > > > > <component name="AccountDataServiceComponent"> > > > <implementation.composite name="bb:AccountData"/> > > > </component> > > > > > > <component name="WebResourceComponent"> > > > <service name="Resource"> > > > <t:binding.resource uri="/"/> > > > </service> > > > <implementation.resource location="web"/> > > > </component> > > > > > > </composite> > > > > > > [C] What an application developer could write if we allowed namespaces > > > > > to be omitted > > > > > > <composite > > > name="BigBank"> > > > > > > <component name="AccountServiceComponent"> > > > <service name="AccountService"> > > > <binding.jsonrpc uri="/AccountJSONService"/> > > > <binding.ws > > > wsdlElement="http://bigbank#wsdl.port(AccountService/AccountServiceSoap)<http://bigbank#wsdl.port%28AccountService/AccountServiceSoap%29> > > > "/> > > > <binding.sca/> > > > </service> > > > > > > <implementation.java class="bigbank.account.AccountServiceImpl"/> > > > > > > <reference name="accountDataService" > > > target="AccountDataServiceComponent"/> > > > <reference name="calculatorService"> > > > < binding.rmi host="localhost" port="8099" > > > serviceName="CalculatorRMIService"/> > > > </reference> > > > <reference name="stockQuoteService"> > > > <binding.ws > > > wsdlElement=" > > > http://stockquote#wsdl.port(StockQuoteService/StockQuoteSoapPort) > > <http://stockquote#wsdl.port%28StockQuoteService/StockQuoteSoapPort%29> > > "/> > > > </reference> > > > > > > <property name="currency">EURO</property> > > > </component> > > > > > > <component name="AccountFeedComponent"> > > > <service name="Collection"> > > > <binding.rss uri="/rss"/> > > > <binding.atom uri="/atom"/> > > > </service> > > > <implementation.java class=" > > bigbank.account.feed.AccountFeedImpl > > > "/> > > > <reference name="accountService" > > > target="AccountServiceComponent"/> > > > </component> > > > > > > <component name="AccountDataServiceComponent"> > > > <implementation.composite name="AccountData"/> > > > </component> > > > > > > <component name="WebResourceComponent"> > > > <service name="Resource"> > > > <binding.resource uri="/"/> > > > </service> > > > <implementation.resource location="web"/> > > > </component> > > > > > > </composite> > > > > > > Now here are a few "side effects" :) > > > > > > Option [A] > > > - I cannot validate this composite against the standard SCA schemas > > > (it'll show errors in my XSD aware XML editor) our Tuscany extensions > > > violate the standard SCA namespace > > > - I have one less namespace and prefix declaration to care about > > > > > > Option [B] > > > - I can validate this composite against the standard SCA schemas, as > > the > > > Tuscany extensions match the xsd:any namespace="##other" extensibility > > > points in the SCA schema > > > - I have one more namespace and prefix declaration to write covering > > the > > > Tuscany extensions > > > > > > Option [C] > > > - I don't need to worry about namespaces, which are usually long and > > > error prone, writing the composite is simpler > > > - I cannot validate this composite against the standard SCA schemas as > > > it does not declare namespaces > > > > > > My preference is to do both: > > > - [B], be correct with respect to our usage of XML schema, to make > > > people who care about XML schema validation and use XML schema tools > > happy > > > - and [C] allow people who don't like namespaces to not have to write > > them > > > > > > Why do I like [C] as well? Here are a few examples: > > > > > > <html> > > > <body> > > > Hello! I can write XML without namespaces, isn't that nice? > > > </body> > > > </html> > > > > > > An axis2.xml configuration file > > > > > > http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/resources/org/apache/tuscany/sca/binding/axis2/engine/config/axis2.xml > > > > > > > > An MS WCF configuration > > > http://msdn2.microsoft.com/en-us/library/ms735103.aspx > > > > > > A Tomcat server.xml file > > > http://tomcat.apache.org/tomcat-6.0-doc/default-servlet.html > > > > > > All work without namespaces... > > > > > > I'm still +1 on [a]. Couldn't we fix the problem with validation by just > > > > creating proper schema's for the Tuscany extensions as if they were > > defined > > in specs? > > > > -1 on only doing [b]. Everyone always moans about XML configuration, > > most > > other projects spend a lot of time finding ways to simplify their config > > XML > > and make things easier for users and here we are setting out to make > > ours > > significantly more complicated and ugly. Seems like shooting ourselves > > in > > the foot to me. > > > > I'm not sure about [c] yet, not being able to do scheme validation isn't > > > > great, would we change all the samples and tests to use the no namespace > > way? > > > > ...ant > > > >
