Wednesday, March 29, 2006

How to Tame XML-Schema for OO Programming Languages

Yesterday I wrote about complexity required to map Java grammar to XML-Schema. I looked a bit more into the work that's been done, and noticed that the WS-I apparently started to take on establishing a profile for XML-Schema but it never panned out.

I don't know. I'm not completely convinced that there isn't a way to establish a standardized mechanism for mapping XML-Schema onto an OO programming grammar.

Knowing (at least for web services) that the schema is probably generated from a set of classes, I wonder if there could be a standardized set of schema annotations that indicate what the classes looked like from which the XML-Schema derives. Then, the consumers of the web service would have some hints on how to be reflect the original package/class/method structure.

Tuesday, March 28, 2006

XML-Schema and Object-Oriented Programming Grammars

I've recently been trying to digest the JAXB 2.0 specification and I've been amazed at the complexity that is needed to support the XML-Schema paradigm from Java. And although I'm not familiar with the way XML-Schema is supported in other OO languages, I'd be surprised if it isn't just as complex.

I appreciate XML-Schema. I think the W3C did an excellent job defining it clearly, but to claim it to be simple would be specious. I wonder if there isn't some way to define a subset of XML-Schema features that map more readily and concisely onto an object-oriented paradigm, much like what the WS-I Basic Profile did for WSDL.

Having a high degree of flexibility in XML-Schema is great, but when it gets down to the practical application, certain features rarely get used because, in the end, the instance documents have to be consumed by by a real programming language.

APT-Jelly Released

So I finally got around to cutting release 1.0 of APT-Jelly. I posted a news item on TheServerSide and got some good feedback. Hopefully, I'll get around soon to more directly supporting Velocity and Freemarker templates.