As reported earlier on this blog, we are currently working on our wysiwyg XML Editor BXE Version 2.0. Besides a lot of new features (much more configurable through the RelaxNG file, for example), it has a complete new rendering engine, which takes XSLT as input again (like in the old days of the Bitflux

Editor). This makes things generally a lot easier to program, once we had the correct XML to HTML mapping in place. It's not perfect yet, but should already work with a lot of existing XSLT documents.

We're not quite release ready yet, but the main functionality is there and therefore we put a little demo online. If you know the old examples, you won't see much of a difference GUI wise, but try playing around. Append for example a new item to an existing item (click on item in the

status bar on the bottom and then clickā€Append Itemā€). BXE now automatically inserts all needed elements and does an XSLT transformation. It also takes the current date for the dc:date field, because we defined a callback function for that element in the RelaxNG. You can now replace the contents of the dummy fields and make a new entry ;)

Basically three files are needed for BXE 2.0:

  • The XML file with the content. In this example, it's the RSS 2.0 feed from our Blog.
  • The XSLT file with the styling information. Nothing spectacular in this case. It could be the same, which we use for the output of the regular webpage.
  • And the RelaxNG file with the information of what element is allowed where. The one in the demo was auto-created with Trang and just a little bit hand-tweaked, so don't expect a perfect example of RelaxNG.

One major problem currently is, that BXE shows to many possible elements for appending within the context menu, ie. you can append another title element to the channel element from the menu, but that's invalid. BXE correctly complains about that soon after you inserted it. It's a trade-off currently between speed of displaying the menu and

correct information. BXE doesn't allow you to insert them in the end and automatically switches back to the last known correct state. if you insert a wrong element. We'll try to improve that later.

Due to the major change in the backend engine, BXE 2.0 currently doesn't work with projects made for BXE 1.0, but we will try to add a compatibility layer, so that only minor adjustments are needed. But you gain a more stable engine with doing that and we prevent a lot problems we had with the old engines, in the first place. And with XSLT,

there are a lot more possibilities to display your content and it works finally correctly with any XML input document.

BTW, it's still Mozilla/Firefox only ;)