I think though we should raise an error in this case as we have
specified a binding (that we expect to be processed by Tuscany using a
binding processor) rather than some arbitrary extension element (that
we don't expect Tuscany to process). IIUC a better extensions example
would be.
<component name="Catalog">
<implementation.java class="services.FruitsCatalogImpl"/>
<property name="currencyCode">USD</property>
<service name="Catalog">
<tuscany:binding.jsonrpc/>
<extensions>
<xyz:someExtensionElement/>
</extensions>
</service>
</component>
So we would expect <xyz:someExtensionElement/> to end up in the
extensible element list and we expect <tuscany:binding.jsonrpc/> to be
processed by a processor.
<component name="Catalog">
<implementation.java class="services.FruitsCatalogImpl"/>
<property name="currencyCode">USD</property>
<service name="Catalog">
<tuscany:binding.jsonrpc/>
<xyz:someExtensionElement/>
</service>
</component>
Would raise a schema validation error.
So, in the contract, I think the only thing we treat as an extensible
element is the content within the <extensions/> element.. Are we able
to make that specific distinction in this case?
Regards
Simon