I think that having an XSD for the Synapse config files would be very useful, even if they don't provide complete validation. This would enable autocompletion when using an advanced XML editor (e.g. Eclipse) and avoid stupid mistakes when writing these files by hand.

@Ruwan: please contribute what you already have; I'm very interested.
@Paul: the fact that you have an XSD doesn't exclude extensibility; however it requires that every extension package defines its own XML namespace. @Wayne: I had a quick look at the document about context sensitive grammars in XSD. Unfortunately I think that this approach doesn't provide a complete solution for our problem.

Andreas

On 14 juin 08, at 17:42, Ruwan Linton wrote:

Hi Wayne,

Thanks for the input, and I must agree that I was trying to build up a CSG in XSD, I think that is what we need from the POV of the IDE integration of
the language and validating the language. Not just a schema, isn't it?

I will have a look and give it a try once again. :-)

Thanks,
Ruwan

On Sat, Jun 14, 2008 at 8:02 PM, Wayne Keenan <[EMAIL PROTECTED]>
wrote:

HI,

What your after is to be able define a context sensitve grammar in XSD, not something I would have thought possible but after a quick google it is
perhaps doable:  http://www.w3.org/2000/04/26-csrules.html

I've not studied the doc in any great depth, and the application of a CSG
in
XSD is new to me. I'malso  unsure as to how it would apply to all of
Synapses config, especially the config extesbility. However, perhaps for those extention points a xsd:anyType in the XSD may suffice? Or perhaps
'typedef'd as a XSD type, e.g.  synapsens:SynapseExtentionPoint.
Editor/tools would know not to iterperte the config at such points, unless they were made aware of the custom extension's own XSD (should extations
writers have provided one)

Im sur eit would be dooable, and a cool/nifty feature for extarnal support,
but there is the trade off with maintenance, flexibility/agility,
testability, conformance...  blah blah...


regards
Wayne

On Sat, Jun 14, 2008 at 2:44 PM, Ruwan Linton <[EMAIL PROTECTED]>
wrote:

I think I must add something to Paul. I have tried to write a schema for
the
Synapse Configuration and ended up with part of it. Synapse Configuration Language is designed in a manner that is very easy to understand by a
human.
While we are trying to achieve the above we have missed the control of machine validatabality, because there are things in the Synapse CL which
cannot be expressed using an XSD. For example;

<target endpoint="string"?>
 <endpoint ......./>?
</target>

In the above configuration target element can contain only one of the endpoint attribute or the endpoint child tag but not both. At the same
time
it is a must to have one of these. AFAIK, there is no mechanism to
specify
this constrain in an XSD.

These two elements are there because, one can predefine the endpoint and
refer it with an endpoint attribute or define it inline inside the
endpoint
child tag.

I know it is good to have a XSD for the language, but we have considered this behavior is important than having a schema. We can provide a schema
for
the language after restricting some of the language features. For example
endpoint to has to be defined and referred within target but cannot
define
inline.

You can use the
http://synapse.apache.org/Synapse_Configuration_Languageas
the verbal schema of the language :-), of course this has no value if you
want this to be embedded into your XML IDE.

Thanks,
Ruwan

On Sat, Jun 14, 2008 at 1:02 PM, Paul Fremantle <[EMAIL PROTECTED]>
wrote:

One reason we don't have a config file XSD is that the config is
extensible. You can package up a mediator + config reader/writer so
that your own "Domain Specific" mediator config adds to the XML.

Paul

On Fri, Jun 13, 2008 at 8:43 PM, Asankha C. Perera <[EMAIL PROTECTED] >
wrote:
Tanmay

Then how does Synapse validate any configuration file? Do you have
something else instead of schema?


Yes, this is basically done by the package org/apache/synapse/ config,
where
a set of factory and serializer classes digest the given XML and
create
the
object tree, and the reverse.

asankha




--
Paul Fremantle
Co-Founder and CTO, WSO2
Apache Synapse PMC Chair
OASIS WS-RX TC Co-chair

blog: http://pzf.fremantle.org
[EMAIL PROTECTED]

"Oxygenating the Web Service Platform", www.wso2.com




--
Ruwan Linton
http://wso2.org - "Oxygenating the Web Services Platform"
http://ruwansblog.blogspot.com/





--
Ruwan Linton
http://wso2.org - "Oxygenating the Web Services Platform"
http://ruwansblog.blogspot.com/

Reply via email to