[relaxng-user] Applications of relaxng
James Clark
jjc at jclark.com
Wed Oct 1 08:04:58 ICT 2003
David Tolpin wrote:
> It is my impression that Relax NG, as well as other modern schema languages,
> is implemented with idea in mind that a schema is a validation tool.
Not exactly. I see the role of a schema language as being to define the
interface between components that communicate using XML. Validation is
one aspect of this: it's runtime checking of compliance with the
interface. I think it's important that when you have an interface you
can mechanically enforce it. But more important than this is just the
fact of having an interface that is rigorously defined, yet human
understandable. If all you have to define your interface is English
prose, it is very likely that different people will interpret it
slightly differently. If all you have is XSD, then you had better have
a tool like XMLSpy if you want people to understand it.
For a schema language to work well in this role, as an XML processing
component interface definition language, it's vital that the schema
language doesn't do anything other than define a set of XML documents.
If a schema does other random stuff useful for processing (like tell you
how to turn the XML document into Java objects or add default
attributes), then it's making the components that use it as an interface
unnecessarily tightly coupled. Maybe it's wishful thinking on my part,
but I see a growing realization of this point in the move towards
service-oriented architectures and "typeless" web services.
James
More information about the relaxng-user
mailing list