Forgive me for chiming in here, but I'd like to add my 2 cents worth here. I've been evaluating most of the XML-based Java guis recently, and I think I may have some insight on this topic.

Russell, I think you may be mistaken that changes to Swing may be difficult to support in Swixml. Swixml is pretty small and lightweight--the only thing necessary to support new Swing classes (or user-extended Swing classes) is a new call to regsiterTag()--just one line of code. If new complex data types are added, new converters will need to be created, but this really isn't that great a task. Methods are handled through reflection, so there is no extra effort required to support the invocation of new methods in new interfaces.

Wolf, I think Russell may have a point here about the JSR57 schema, though. In a loose sense, Swixml really is a sort of serialization language for Swing. In fact, if you added the letter "J" in front of the tag names, I think you could even use reflection to find the Swing classes themselves, thus removing the need to register tags altogether. Swixml has done a *really* nice job of keeping it simple--its syntax is simpler than JSR57 (its scope is narrower, too). However, JSR57 really isn't that complex. And it is a standard. And it supports non-Swing objects, as well. I think there may be some merit in supporting the JSR57 schema.

This would change Swixml greatly. Right now Swixml consists of only about 20 classes. This is small, and if Swixml decided to stay with its schema, I can understand it on this basis alone. Changing Swixml to support JSR57 would really mean then end to Swixml and the beginning of something new.

That said, I really think JSR57 has something. I think Russell is correct in saying there is no value added to having yet another XML-based serialization language (what Swixml is, really--it performs a sort of deserialization translating the Swixml code into a Swing GUI). Besides, JSR57 supports so much more than just Swing. Looking at the resulting XML, I don't think it's really any more difficult than Swixml.

What if Swixml were to introduce a new interface called "ObjectEngine" and make SwingEngine implement it? Then the Axualize group could make a JSR57Engine or something. Hell, my previous request for a namespace-capable SwingEngine could be a simple extension of SwingEngine, too. Yeah, it would take some effort. But I think the JSR57 schema has some strong benefits. I'm not sure what extra support would be necessary, but it seems to me that this approach might even allow co-mingling of Swixml and JSR57 files in the future (I'm also not sure of the benefit of this beyond backwards compatibility, and Swixml really isn't that old yet).

I really like Swixml, as much for what it isn't as for what it is. But I also think JSR57 deserves a closer look. -dan



Reply via email to