+1 for option [B] alone.  Given the fact that we are going to rely more on
tooling to define composites this shouldn't be a problem.

- Venkat

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)
> "/>
>             <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)"/>
>         </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)
> "/>
>             <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)"/>
>         </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)
> "/>
>             <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)"/>
>         </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...
>
> --
> Jean-Sebastien
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to