XMLSpear Progress Log
Release 3.40 22-10-2016

Released version 3.40

    Improvements and new features:
  • User can set the handler which should open a file type.
  • Implemented actions for several components to change the font or font-size.
  • Implemented language sensitive info based on xsd annotation/documentation elements.
  • Support for MacOS 10.7 and later.
  • Improved support for Linux.
Trigger for this new release was a user request to support documentation tags in schema files. The documentation in the schema files is now used to display help information when a user is editing XML. The help is displayed in a pane and supports html content in the documentation. The user can choose the display language.

Click for bigger image
Release 3.32 27-01-2016

Released version 3.32 which is a pure bugfix

  • Could not switch to tree or element pane in the XMLEditor after installing java 1.8.0_66+

JCC monitor Applcation available 23-01-2014

JCC runs automatic checks and logon scripts for monitoring the availabilty, health and performance of an application.

I originally developed this software to monitor our CA Clarity web application, but it is fully configurable and can be used to monitor several components of your application.

Look here for more details.
Click for bigger image
Generic stub to launch a job in CA Clarity 17-12-2013

Some time ago I built a generic solution to launch jobs from CA Clarity.

It was a long time ago 13-09-2013

It took almost 3 years for a new update release. That is a long time. The focus of my development activities is no longer on XMLSpear itself, but more on the plugins. The editor itself is a rather stable product. I have not planned any major developments for it in the future, but I will still be active to solve bugs. XMLSpear is still appreciated by many users. In the company where I am employed, we still use it a lot, because of some dedicated plugins that help us to do our work.
I have been programming a lot in those past years. And maybe I will publish some of my software on the site. One very interesting piece of sofware is a utility to monitor the health of a business application and all of its components; I called it JCC (short for JCheckCenter). It runs automatic checks and logon scripts to monitor the availabilty, health and performance of the CA Clarity management application. The software can be configured to your needs and is also used for other application monitoring. But there is one big problem: i never took the time to make some documentation.

Click for bigger image
Release 3.20 11-09-2013

Released version 3.20.

    Several bug fixes:
  • Some popups not visible when working with more than 1 screen
  • Files could not be deleted in external program because they were locked by XMLSpear
  • On some platforms it was not possible to use Shift delete in the element view.
  • Binary plist files could not be opened in java 6+
  • Fixed some formatting issues related to whitespace after attribute or element name
    Improvements and new features:
  • Added actions to change the fontsize in de source editor. Default sizes can be set in the XMLSpear.properties file
  • Better type support for attributes. Ignore typed quotes in attribute value when they are already present.

Release 3.10 14-09-2010

Released version 3.10.

  • This release includes a fix for bug B-18, see the bug list for details.
  • The xerces library is updated to version 2.10.0.
  • Added several extra settings to customize XMLSpear to your specific needs. All available settings can be viewed or edited in the XMLSpear.properties file.
  • All run-parameters after the first one (which references the property file), will be interpreted as file paths. So you can use the bat or shell script to start the editor and open 1 or more files.

Placed a new plugin (with source included) on the site. With this plugin you can convert a csv text file to an xml file. This plugin should encourage you to create your own handy plugins. If you made one, please report it to me so that I can publish it on my site.

Final release 3.00 available 09-03-2010

The final version can be downloaded. You can either dowload a disc image (.dmg) or a compressed zip archive (.zip). I fixed some issues for Linux users and removed the expire date.

Thanks for your feedback 02-03-2010

Last weeks I got more feedback than ever before. It turned out that there was a issue with the FileChooser not showing icons in Windows 7. This can be solved by upgrading to the latest java version. Another person reported that the new version did not work in Linux variants (like Ubuntu). I solved this and it will be fixed in the coming final release. The latest beta 3 release will expire on April, 1. I am glad to hear that you are appreciating the program and that it is used. Keep telling me!

Released -- version 3.00 beta3 06-02-2010

This will be the last beta release. It contains a fix for the Saxon-Xalan mix-up. I also added a wait dialog, which will be displayed during XSL transformation. I did some serious performance improvements for the xml format and the cut-marked-text actions. On my macbook it takes 4 seconds to format a 17 MB xml file. Pretty fast I think. You can also transform large xml files. At work I even had to use XMLSpear in favour of XMLSpy to do some transformations, because XMLSpy ran out of memory. But do not misunderstand me: XMLSpear can not be compared (or compete) with XMLSpy. But is is just nice to see that on some points it does a good job.

The download is a .dmg image, and can be found here.

Bug Saxon used when Xalan is choosen and vice versa 30-01-2010

Never do a last second change! Just before packaging release beta 2, I decided to change the sequence of Xalan and Saxon in the listbox of the transformation dialog and thereby introducing this new bug. I registerd the bug as B-18 in the bug list .

Released -- version 3.00 beta2 28-01-2010

I fixed a serious bug in the xslt transformation. Stylesheet references to external or internal (like the document('') function) resources could not resolved.The bugfix was not as trivial as I thought, because Saxon and Xalan behave quite different in the way they load needed resources. And I have to say that Saxon is much more friendly and efficient.

Mac Beta Available -- version 3.00 beta 12-01-2010

Last week I showed a colleague the new version. He had a nice 13-inch macbook pro running Snowleopard. I showed some features of the new version and immediately found some bugs. I had always tested on my Mac with java 1.6. But to my surprise the application lauched with java 1.5. I checked the plist but it looked ok: JVMVersion 1.5+. Why did it not start java 1.6? It turned out I had an old JavaApplicationStub in my package. So I had to change that. If you start XMLSpear please check in the console what version of java is started. On Mac OS 10.4 you will see 1.5 but on Leopard and SnowLeopard it should be preferably 1.6. If not, then check your settings in the Java Preferences program which is located in the Application/Utilities folder. This short demo to my colleague made me clear that I did not have had time enough to test all new features. Therefore this download will be marked as beta. I love to hear from you what you think of it. Please give me some feedback. If you also have a Windows or Linux machine let me hear if the program runs well on that platforms.

Finishing the release, Xerces 2.10 and JWebpane 12-01-2010

The programming is finished. This was a major effort. I started in october and spent almost every evening. But I am quite excited about the result. Now we have synchronization, xpath, xslt, xml catalog and many other improvements and bug fixes. I will first build a release for Mac OS X. You will need java 1.5; that means that Mac OS 10.2 is no longer supported. The download will be available by the end of this week. I hope the xerces guys will relase their version 2.10 this week. Then it can be includes in my package.
By the way and something totally different: i am waiting for almost two year for the JWebpane. It would make live for java Swing programmers so much more easy and it would give Swing a big boost. Sun what are you doing?

I am alive 09-12-2009

After a silence of more than two years I have good news: a new version of XMLSpear is on its way. And it will be a great improvement. It will be released as version 3.0. A big improvement is the synchronization between source and table panel. You can jump between the panels and keep your postion within the xml. This gives such a better user experience!
Another big improvement is the xpath panel. The xpath result is presented in a table view. You can sort the colums and jump to the nodes in the main editor. You can walk through every row in the result set while jumping up and down in the editor. Giving a lot of possibilities. You will also able to repeat nodes, including all children, with a simple key shortcut. Maybe I also will include a simple xsl transformation possibibillity but that depends on the time that is left. The release in planned in he first week of januari 2010. Please mail me if you have things that should absolutely be fixed or included in this release, this is your chance.

Stay tuned!!

Released 2.43 03-12-2007

Fixed several bugs in the XML editor

Published a bug list 08-11-2007

You can find the bug list here. Please do mail the bugs you find.

Started online documenation 05-11-2007

I made a start with writing documentation for XMLSpear. My first subject is about validating an xml document.

Bugfix 2.42 released 04-10-2007

With some help from the xerces forum, I was able to come with a quick fix for the issue about default attributes, see below. Sorry for the inconvenience, and I hope this issue is now really solved. If you still encounter problems please let me know.

2.4 introduced a bug. 03-10-2007

If you are running version 2.4 or 2.41 please edit the XMLSpear.properties file and set the value of "insert_default_attributes" to true. It turns out that errors are reported on the wrong place. Also combo-boxes show the wrong enumeration values because they are shifted in place. Setting the above value to true will solve this problem and you will get back the pre 2.4 behavior. This also means that attributes with default values that are not present in the document are inserted again and thereby causing uncontrolled modification of the document. I will try to solve this issue as soon as possible!

Minor release 2.41 02-10-2007

I found a solution to improve the performace of the xml trees. Loading is now much faster and also the recursive expand and collapse actions are improved. Still, if you have a large tree, it is better to use the non-recursive equivalents.

Solved bugs:
  • If property routeconsole was set to false, the messages were not directed to stdout

  • Improved performance for loading and expanding or collapsing big xml trees.

The new release (2.4) is out !!!! 23-09-2007

Finally I made it to a new release. I am using XMLSpear a lot at my work and there were some things I really missed, like reloading files and feedback for changes since the last save. The text editor has some new functions and is now a real alternative for editing small, plain text files. These are text files that have no included format information; for example configuration-, bat-, shell-, ini- or source files. The editor will pick up the appropriate encoding and line-separators for the platform or you can specify them explicitly while opening or saving the file.
I think this version is a big improvement and increases the overall usability. Please let me (and others) know what you think of it by leaving some notes on some of the software download sites.

Solved bugs:
  • Mark-All and Replace-All without "match-case" option checked and in combination with big documents freezed the GUI completely. In fact this was caused by a very inefficient processing. This bug is fixed now and even better: a progress dialog is added.
  • DTD for mac plist files could not be accessed in local directory, which caused necessary network access. This is fixed by copying PropertyList-1.0.dtd to the local schema directory.
  • When the proxy checkbox was deselected, the proxy was still used if there was a non blank host address
  • A long last line completely freezed the GUI due to a bug in Java. I implemented a workaround.
  • Validation added default attributes to the XML DOM tree, which was rather confusing. This feature is now suppressed.

New functionality:
  • The change status of a source is reflected by the appearance of the save button. The save button will only be enabled when the document has changes.
  • A warning will be given when a document is closed, that has unsaved changes.
  • A close and close-all action is added to the file menu
  • Documents can now easily be reloaded.
  • You can now select text and mark or unmark it. The marked text can be copied or cut to the clipboard.
  • New application and document icons for MacOS. If have an old application icon in the dock, please trash it. I will soon post more information about cleaning old file associations and icons.
  • Improved undo support for replace actions
  • Open and save file dialogs use the directory of last opened document
  • Warning if a file already exists in save-as action
  • XMLSpear has a known limitation in handling big files. The file size is just a indication. Big text files with many short lines are much better handled than files without linebreaks. Handling of XML files will be influenced by the number of elements and the presence of CDATA or base64 content without linebreaks. An alert message will be given if a file is opened with a size greater than configured in the XMLSpear.properties file, which can be found in the XMLSpear configuration folder.
  • Added tooltip text with modified date and size to the file tree
  • The file tree got a iTunes look
  • Key shortcuts for expanding and collapsing nodes in the XML tree

Screenshot (MacOs X)
Waiting for a smart guy 18-09-2007

I am almost finished with my new release. In fact I am only waiting a few days to see if someone can give me a workaround for a nasty bug in the editor pane. I have posted it in the java swing forum. You can take a look at it.
Good news is that the new release will improve the overall experience a lot. Mac users will get nice icons for the application and several document types handled by XMLSpear. I have made a screenshot of it. You can see the document icon for XML. I also made separate ones for plist, dict, xsl and xsd. If you click the image you will also see the new application icon in the dock.

So stay tuned for the next release.
Oh, one last remark: if you are a swing expert dig into that bug and tell me ...

Screenshot (MacOs X)
Release notes 2.30 16-04-2007

Solved bugs:
  • Incorrect display and behavior of default button in dialogs
  • Double-clicking folders in the file tree to expand the tree, incidentally triggered an action to open a file.
  • After deleting all file trees, a newly add tree only showed up after opening a source or restarting XMLSpear
  • The filetree tab, which displays the top directory name, was not updated after a folder was selected as the new root.
  • Small problems with the item names in the filetree popup menu in java 1.6
  • Incorrect positions in the find-replace (especially concerning Windows users after a saving a document.
  • Redundant extra line number in text editor
  • Several XML formatting issues in the source view.
  • Loss of linefeeds after editing text in tree tabel
  • Incorrect behavior regarding to mixed elements with multiple text nodes
  • Prefix initially not filled in dialog for inserting elements or attributes

New functionality:
  • Move up possibility in file tree
  • If you select a .xsd file in the tree, there will be a new option in the popupmenu to generate a XML instance from the selected schema
  • A totally new find-replace dialog with the possibility to mark text.
  • A find function for the tree table
  • Improved support for mixed elements. You can switch to an advanced mode, where the textnodes will displayed in the tree.
  • If a text has linefeeds or tabs you are not allowed editing the text in the table cell. This will be indicated by a special button which brings up a text editor.
  • In edit mode, you will have a button in each cell to switch to a full functional tekst editor.
  • If a value is part of an enumeration, it will be showed in the table. In previous versions the combobox was only showed in editMode.
  • Xpath display of each selected element in the tree table view
  • Insert and editing of CDATA and text nodes in the tree table view
  • Improved schema support for enumerations and fixed values
  • Unformat option in the XML source view
  • Alphabetical listing of elements in dialogs
  • Collapse and Expand actions are now local to the selected node, instead of to the complete tree
  • The warning message for large XML files is removed. If a XML file is displayed in the treetable, it will no longer be fully expanded. This will save a lot of load time. It is not a good idea to fully expand such a tree from the rootlevel. This will be slow or may cause an out-of-memory exception.

Screenshot (MacOs X)
Some complains 21-02-2007
Almost a month ago I updated my log. It 's very busy at my work, so I just could not push myself to work at XMLSpear in the evenings. And what does not motivate me either is the lack of feedback. I have spent my time discussing some issues on the xerces forum. I have great respect for this open source developers. They really do the difficult work while others sell their commercial "wrapper applications" and make big money out of it. Often I see applications consisting of 95% open source libraries. But the problem is, companies still buy it instead of looking to the free alternatives. Especially in the case of big customers there are always people who make advantage of expensive software deals: maybe a payed nice trip to the supplier ..
I already have gathered the changes that will come in the next release. It will be an "in-between" release focussing on some minor issues. I will improve the editing of text values containing carriage returns. In the current version linefeeds are lost when you edit them in the treetable. This is because java textfields don't support them and automatically change them to spaces. So be aware of this.

Please post your comments.
Version 2.20 22-01-2007
Version 2.2 is out:
  • Added support for abstract elements and substitution groups.
  • Added support for abstract complextypes in schematree. This may assist you while inserting these elements, because the insert popups do not show them properly. I will try to fix this in future.
  • Validation in tree-mode against a XSD with abstract types incorrectly reported errors. This problem was fixed by the xerces team. Michael, thanks again for the great support!
  • The current line in source view is now highlighted. Also implemented a goto-line action.
  • Jump to error in source view implemented.
  • Added tree action to edit the node name or namespace
  • Improved feedback if the problem is not in the opened (current) source.
  • Fixed the refresh in the problem table when a row was selected
  • Windows UNC path names were not correctly handled.
  • Do not give an error when there is no rootname specified while creating new xml.
Please post your comments.
Version 2.10 02-01-2007
Let's start the new year with a new version.
  • The most important change is the ability to check XMLSchema (.xsd) files for errors. XMLSchema files are normal xml files. So XMLSpear will treat them exactly the same. Only when you validate them, they are checked for the specific xsd constraints.
  • Another important improvement comes to projecttree, which is in fact a view on your file system. The tree will now show the icons which belong to the file.
  • XML errors now can easily be related to the resource where they occured, which can be the XML source or the schema used for the validation.
  • Window users now also can make file type asscociations.
Read the included version information in the program for more details

Please post your comments.
Version 2.01 14-12-2006 23:00
Made a separate release for mac os 10.2.x users. It turned out that the newer JavaApplicatioStub does not work on 10.2.
Also fixed the following issues:
  • Fixed the problems that some popups did not work in java 1.6. I did not tested it again but I already solved a similar issue in release 1.23.
  • Fixed a problem that was in one of the early 2.00 builds were Windows users crashed because I tried to load a apple specific class
  • Included another Example plugin because the included zip archive was corrupt
I also found a solution for the file associations in Windows which will make it possible to open a file in XMLSpear by double-clicking. In one of the next releases I will implement it.
Just released final version 2.00 11-12-2006 23:59
Just updated the website with the new release.
I noticed that the bundled applicatition did not start on Mac OS 10.2.8. (tests on 10.3.9 and 10.4.8 were OK). On Mac OS 10.2.X you have to use the shell script, until a solution is found. If someone knows the problem please mail me. Also mail me, or use the forum, if you can tell how to change the application bundle (info.plist) so, that the file associations work more adequate.
I don't get it ..... 4-12-2006 23:25
After midnight I updated my weblog with the entry below. It was not my intention to announce this on the software download sites. But to my great surprise, when I came back from work, I had already mail from macupdate.com that they had published my new release. Still I first want to test it a little before I make it available as download. So please help me and start through webstart (be very patient for the XMLSpear to be loaded). I already had a minor update this evening because I noticed that the new Xalan serializer that was packaged in XercesJ 2.9.0 prints a lot of whitespace after the rootelement, despite using the print-pretty option. So I fall back to the original, now deprecated Xerces serializer. Also I had some problems with java 1.6, for instance the display of radio buttons in the toolbar. Hopefully they are now fixed.

Let's talk abaut the new features. You can now straight push the validate button to start validating. If a schema or DTD can not be found you will be prompted for it. Sometimes you have to temporary stop validation. For instance if you are editing the dtd or schema locations you do not want that the window everytime popups. In the new mapping window you can see the locations where the parser looked for resources. Here a list of some changes:
  • Better proxy support, possibility to test your connection
  • As mentioned: a totally new validation feature
  • Support for entity nodes in tree. Entities are not lost anymore
  • Caching of http locations for better response
  • Fixed several formatting issues
  • Tree actions on root for setting (no)schemaLocation
  • Improved namespace support when inserting element or attributes in the tree
  • Improved readableness in the xml problems window and in the treetable rows
I am really proud of this release. It costed me an unbelievable amount of my spare time. Be friendly, if you encounter some bugs or have some suggestions, report them so I can make XMLSpear better.
Screenshot (MacOs X)
Version 2.0 beta available as java webstart !!!!! 4-12-2006 00:30
I just made version 2.0 beta available as webstart version. Please take a look . I did not find much time to test. So please mail your comments. Next monday I will officially release the version. Then I will also supply a downloadable executable. It is too late now for details. I will try to give an update tomorrow.
Working on a major release 9-10-2006
I am making progress on the next release. It will bring much better validation support. You will be able to start validation right away, using the schemas named in the xml source. If a schema or dtd can not be found, you will get a chance to point to the right resource. This may be local or remote (http) file. Also you will get some advanced options: I have added two additional windows. One shows you all the mappings between namespaces and files. The other shows all the cached grammars (schemas or DTD) which are used by the parser. You will be able to clear the cache. This is nice if the schema or DTD is changed and you want to load a fresh copy. With this new features coming, XMLSpear becomes really a great free tool for checking and correcting XML. If you have questions or suggestions, please mail me.
XMLSpear 1.23 released 11-09-2006
It was not my intention to make another release with the current validation structure. See the notes I made for release 1.22. But I was forced to make this "in-between" release because Java 1.6 brings serious backwards compatibilty issues. I also grabbed this opportunity to fix some issues with DTD validation.

Minor update 11-07-2006
I silently updated the 1.22 download package. It only applies to people who use the MQ-JMS plugin. The last saved queuemanager-list is now restored when the tool is restarted. Please post some feedback on the forum if you tried XMLSpear. I really like to hear your opinion!

XMLSpear 1.22 released 09-07-2006
I think this will be the last release before my holidays. It is release that fix some bugs (and hopefully not introduces new ones). It also brings validation to the the source view! But I am not pleased with the way validation is currently implemented. Assigning schemas and starting validation should be two separate actions. It should be possible to just start validation, based on the references that are made in the XML instance. Furthermore you should also be able to assign schemas based on URL's. So I am working on a totally new design to make this possible. I want to make the easiast tool for correcting and editing XML.
Tip: Use the project tree to open files and assign schema's 29-06-2006
The project tree can make your work a lot more easy. It really makes sense to add several project tree folders for XML and schema's. This way you do not have to navigate each time you want to open files and assign schema's.
Once you have opened a XML file, you can assign a schema by just right-clicking a schema file in the tree. Normally you will assign the top-level schema. When other schema's are referred within this schema the xerces parser will try to resolve them, based on the location of the top-level schema you assigned. So it is preferred to use relative path's. But if this fails you can try to just assign extra schema's using the assign action in the project tree. Future releases will bring more convenience to schema resolving mechanism.
Screenshot (MacOs X)
XMLSpear 1.21 26-06-2006
Changes in this release
  • Solved the bug in FileHistory
  • Added message catalog to classpath. You should get more detailed error messages from the MQJMS plugin
  • Added support for editing a binary property list on Mac OS. In Mac OS Tiger the plist files are compiled to binary format. With XMLSpear you can open and edit them as normal XML files.

Found 2 bugs in current version 20-06-2006
Users reported two bugs in the current version
  • XMLSpear won 't start caused by the history file menu savings in the preferences
    Tempororary workaround:
    Deleted the XMLSpear preferences:
    -for MacOS find com.dd.xml.plist in preferences.
    -for Windows find it in the registry, good luck :)
  • A MQ connect failure does not give a decent reason description:
    "Message catalog not found"
    Tempororary workaround:
    You have to add the classpath of the directory with the mqji_*.properties. These property files are not in the current XMLSpear packages. But if you have access to them you can put them into the ma88 directory and add the whole directory to the classpath by editing the XMSpear.properties file.
I already fixed this two issues, but a new release takes some more time.
XMLSpear 1.20 18-06-2006
Much later than expected I released a new version of XMLSpear. There are some bug fixes and approvements, like a new console window. But most interesting is the new JMS MQseries client plugin. The plugin makes XMLSpear a candidate as testing tool for all kind of services that can be called by means of MQSeries. The following scenario is possible:
  • Edit an XML file
  • Use the export plugin to connect to a queueManager
  • Select a destination queue
  • Set the properties of the message
  • Send the message
It is also possibile to do a send-and-reply, waiting for the answer from the server. If there is a response. it will be showed in a new window of XMLSpear. You can use XMLSpear to keep a folder of all your test messages and the replies.

Another great opportunity is to use XMLSpear as a correcting tool for recycling messages that were put in a reject queue for reasons of invalid content.
  • Import the rejected message into XMLSpear
  • Correct the XML
  • Put the message on a destination queue
The MQSeries plugin is purely java. So now you can browse your queues or put messages from your Mac OS or Windows machine in just the same way. Within the plugin, you can administer a list of all available queuemanagers and save the list to the file. The next time this list is automatcally restored. You do not need to install any other software than XMLSpear.

I am looking for someone who has a free queuemanager available on his server and is willing to make this public. It would be great if others could put some messages, browse queues. Just to see the plugin at work. Please mail me or send your comments to me. You could also post it on the forum.
If you are using the program please send some feedback to me or put it on Versiontracker.
Screenshot (MacOs X)
XMLSpear 1.16 beta 09-04-2006
Fixed some bugs.
Update 07-04-2006
Yesterday I publiced the sofware on the VersionTracker site. Apparently this site is watched by other software sites. I got messages from MacUpdate and Softpedia. The last one made me :)

Hello, Your product "XMLSpear 1.15b" has been tested by the Softpedia labs and found to be completely clean of adware/spyware components.
We are impressed with the quality of your product and encourage you to keep this high standards in the future.
More information about your product's certification and the award is available on this page

I also got a tip (thank you Jens) to change the windows .bat file, so it automatically switches to the riht directory. The distribution has been updated for this.
Update 06-04-2006
Added a download link on the website, with some sample files included. Also made a small udate on the software, for better handling extensions while saving.
XMLSpear 03-04-2006
The program got a new name. I decided to change the name from XMLDonkey to XMLSpear. But that is not all. Several new features and improvements are available in this last release. Among them are :
  • New text plug-in
  • More functionality in project tree. It is now possible to right-click a file and choose an available editor to open the file. This way you are not stuck anymore to certain fixed extension. Also actions are available depending on the open editor. For instance, when the XML editor is open, you can right-click a schema file and assign it to the xml instance.
  • A history mechanism is added for opened files
  • The save-as dialog has features for selecting the encoding and the desired line-separator.

Progress 02-03-2006
Several upgrades
  • Key accellerators implemented
  • Upgrade to xerces 2.8.0
  • Undo-Redo in source view improved
  • Find-Replace in source view added
  • Several bugs in saving XML fixed

SourceEditor activated 16-02-2006
This week the first version of XMLSpear with a workable source editor was released. Creating the source editor was a hard job. Performance is one of the biggest issues when making an editor in java. At first, the design was based on a textDocument where all styling data was held inside the document. This was great for small documents, but it turned out terrible slow when loading large files. I made several attempts and tweaks (like turning off synchronizing on the insert methods), to improve load times. Ending up with loading times 10 times faster than initial, but still not acceptable. Using a background thread for the syntax coloring was not an option for me, because it introduces extra complexity and makes the overall process only harder. So in the end, I sat down and asked myself why I started building this source editor in the first place.
My initial intention was to make a simple source editor, only to be used to solve errors in not-wellformed xml documents that could not be loaded in the treetable view. And also a source editor would be helpful to do things that are not supported or not suitable for the treetable view. Think of copy-and-paste of xml from other documents. With this in mind I decided to throw away the old coding and to start building a text editor just based on plain text to avoid performance problems. It is a very simple design, based on the excellent tutorial of Tim Prinzing about syntax coloring. The basic XML scanner is not yet perfect, but it can be made better with coming releases. This will certainly not become a sophisticated source editor like XMLSpy. But that has never been the goal of this project. XMLSpear is in the first place a graphical tree editor, targeted to check, and correct XML files in a simple way. In the future the functionality will be extended by all sorts of import and export plugins. Please take a look at XMLSpear and let me know what you think about it.
Screenshot (MacOs X)
Progress 02-01-2006
Improved DTD support.
  • Added DTD Support for inserting elements and attributes. Possible attributes and elements are listed.
  • Attributes with a enumeration type are now showed in a combobox when updating

Progress 23-12-2005
Xerces fixed the DTD revalidation. So my workaround is not needed anymore. In the next release I will improve the DTD support for inserting elements and attributes. And this wil also bring a more flexible solution for loading DTD's or schema's.
Progress 22-12-2005
The DTD support in the previous release was not a success. Xerces does not revalidatie the DTD 's properly. In this release I programmed a workaround. But the error reporting is only raw implementend. The errors are shown but the related error nodes are not colored red, as will happen with xsd schema. In the next release I will improve this.
Progress 08-12-2005
Released beta 1.10 of the CommonGUI, now using Splitpanes. Also added a very simple html browser which will standard open links in the native WebBrowser of the platform. You can open links in the tab by right-clicking, but its limited and not recommended for real webbrowsing.
Progress 21-11-2005
Released beta 1.13 of the XMLHandler.
Take a look 01-11-2005
It is not finished yet, but you can take a look at XMLSpear using java web start. Be patient and wait till XMLSpear is completely loaded. This will be the case if you see the project tree in the left pane. It may take as long as 1 minute depending on your connection. Open a project directory containing XML files and open an xml file. You can only open wellformed xml files with the extension .xml.
In this version the treetable and Element view are available and already very usable. After you have opened the xml file, you also may open a schema and get excited about our realtime validation feature. The source view is not integrated yet. In the next period I will regular make new beta versions available.
Cleanup 08-09-2005
I decided do some code cleanup. Keeping all the views synchronized became more difficult after each new view that was added. The produced code that was hard to maintain and understand. Especially after some pause, it took a lot time to "warm up" and getting productive again. The biggest issue was solved by implementing a new event handling. Here a screenshot of the new tabbed centerpane with a glimpse at the treetable.
Screenshot (MacOs X)
Progress report 25-05-2005
Yes the project is still alive. Due to personal circumstances, I had to take a long pause. Now I am working at it again. But I have to admit: I underestimated the work. When starting a project you have nothing at all. Every line of code or new window you paint, is a big step forward, and you think you are going fast. But then you come at the stage where you have to refine your code, fill in the details, make new icons. Suddenly you realize you are still miles away from a mature product. It is hard to decide what functionality you want to provide in the first release, and what things should wait. I decided not to publish the plugin-api in the first release. More time is needed to document it, to make examples and to restructure the interface. This said, let me tell about the new implemented features. For example:
  • the project-tree (alias file-explorer) has gained more functionality. You can delete and rename files, reload directories, make new folders by right-clicking the tree
  • Saving of files is enabled
  • Schema-outline is now integrated
  • Several new program icons are made
  • A new treetable component is developed. It is developed separately and still needs to be integrated.
  • All tabs can be maximized/restored by double-clicking the tab (like in Eclipse)

Screenshot (Windows XP)
Deleting and inserting elements in the tree 06-02-2005
The XML tree can be used to delete and insert elements. I will show you the possibilities by manipulating the example purchase order xml file (po.xml).
  • Open the the po.xml file and assign the po.xsd schema file. The schema determines the structure of the po.xml file. It describes which elements and attributes can be part of the purchase order xml and whether they are optional or required.
    At the start, our purchase order file has no errors.
  • Navigate in the tree to "city" (full path purchaseOrder/shipTo/city). Right click on the element and choose delete. Immediately after this action, the tree displays error icons showing the exact path to the element in error. You can also click in the problems table to jump to the element in error. The error message tells that a city element was expected before the state element.
  • We will now correct the error. Right click on the "state" element and choose "Insert Element Before". A popup is showed. The list of elements contains one element, the "city" element, because the schema tells this is the only element that can be inserted before "state". Click "OK" to insert the element. All error icons in the tree will disappear.
If an element has already child elements use insert element before/after rather than "insert child element". The "insert child element" always inserts the child as last child element and does not take account of the right order in which the elements must occur. Therefore it should only be used to insert the first child of a parent.That is why, in this example, we correct the error by inserting the element before the state element, rather than inserting the city element as child of the shipTo element.

You can also open the schema outline window which gives you a graphical display of a valid xml structure.

Delete Element (MacOS X)
Creating a new xml document 01-02-2005
Let me show you the steps to make a new document.
  • Start the action by selecting "New" from the File menu. You can see a screenshot at the right column (for a picture of the whole screen just click on the image).
  • A popup asks you to choose the type of document you want to create, select "XML". The document types showed in the list, depend on the the availability of plug-ins. Every editor is a separate plug-in. A plug-in will register itself to XMLSpear by telling what kind of document types they support. XMLSpear will be released with a xml plug-in and a text plug-in. The text plug-in will be very primitive and the source is packaged in our release. I hope others will enhance the functionality of XMLSpear by developing new and better plug-ins.
  • Next tell if you want to use a schema to build the new xml document. For our example we use the purchase order schema.
  • The last popup asks you for several values to construct the XML tree.
    The root element will likely, but not always, be determined by the schema interpreter. Sometimes you have to choose between more than one possible root elements.
    The recursive depth value will limit the depth when constructing xml from recursive schema definitions.
    Elements may have multiple occurrences. In that case the repeat factor will limit the number of times they are generated. In our example "items" can have more than 1 "item". The repeat factor limits the number of items to 2 per item
    It is also possible to specify whether optional elements and attributes should be generated.
  • See the result in the last screenshot. In our first release the xml generator does not fill values. That is why you see some errors in the resulting document.

New Document (Windows XP)
Element pane 19-01-2005
I am proud to show you a screenshot of the XML element pane. Select an element in the XML tree at the right side and edit it in the element pane. If the XML document has a schema, then first open that particular schema file. Now it is almost impossible to make mistakes while editing.
  • The element pane shows the value of the selected element and all of his attributes.
  • If values are restricted by the schema, you can pick one out of the presented listbox.
  • Real-time validation during editing gives you feedback about solved or new errors.
  • Attributes can be deleted or inserted by right-clicking on the attribute table.

Element Pane (MacOS X)
Progress report 14-01-2005
I was surprised to see XMLSpear show up in Google when searching with the keywords "Xerces 2.62" or "xerces dom3 xml editor". This also obliged me to tell something about the progress after more than a month of silence.
Last week the work on the Common GUI was finished. It took some time to develop a nice closeable tabbedPane that showed up well on both Windows XP and Mac Os. At last I decided to design my own close icons, very similar to the icons in MacOS X. I will try to put a screenshot on this page in the next days.
This week I will add the XML element pane to the editor. The XML element pane is placed in the center and is an alternative for the XML source editor. By navigating in the XML tree of the outline window, you can select the element with it's attributes that will be showed in the element pane. It is not going as fast as I hoped, but it must be possible to come up soon with the first public beta version.
Common GUI 23-11-2004
Last weeks we had lot of discussions about the architecture of our common gui. It slowed down our progress, but it is too important to put off till later.
The common gui is our framework which makes it possible for third parties to extend XMLSpear with other editors or add more functionality. This is essential to the success of our software, because our own time and capacity is very limited. The common gui, in which we plug in our xmleditor, provides interfaces to access the frame and to place components. We take the following approach:
  • When a file is opened, the plug-in table is searched for a registered editor which handles the specific file type.
  • If an editor is available, an instance of the editor is created and the file is passed over.
  • The editor creates an instance of our component manager.
  • The editor builds the gui components and adds them to the component manager, specifying the name an the location where they should appear in the frame.
  • At last, the component manager is added to the frame, which is responsible for the actual placement and visibilty in the frame.
Every opened document has its own tab in the center pane. When switching from one document to the other, the common gui will load the related editor and restore all dependant components in other locations of the frame.
It will take some more evenings to finish the work of our common gui. After that, our focus will return to the xmleditor.
Stay tuned!
Initial load 14-11-2004
We have been developing on XMLSpear for quite some time now, so in this 'Initial Load' I will give an overview on what we have developed so far.

Project Explorer
Like most modern tools on the market, XMLSpear provides you a project explorer. This gives you the opportunity to bundle your files.
In our first release the project viewer will not be very sophisticated. You will have to point to a file directory. This directory will be the root of your project tree. In other words the project explorer will exactly reflect the chosen file directory.
From the project tree you can open xml files by double clicking the specific file. With XMLSpear you can open several source files at the same time. Each file will be placed as a new tab in the center pane.

Source Editor
The hardest part of writing an XML Editor is giving good user-feedback when the XML is not well-formed. When the XML is well-formed it is easy to give for example the number of elements in an XML Document, but as soon as you miss as much as one XML character giving that same number isn't that easy at all. We think the biggest mistake the developer of an XML Editor can make is guessing what xml characters are missing and how many elements there are. During the design of XMLSpear we where very carefull not to make this mistake.

The Source Editor in XMLSpear accepts both well-formed and non-well-formed XML Documents. When non-well-formed XML Documents are opened XMLSpear highlights the XML without guessing, it will simply highlight what is there. This way someone can quickly spot errors in an XML Document and fix them.

The Source Editor of XMLSpear also has a formatting feature. This feature formats the entire XML Document with only a push on a button.

XML Documents can be validated on two different levels:
- a well-formed check of the xml
- validation against an XML schema
In either case the errors in the XML Document are highlighted, so they are easiliy spotted and corrected.

XML Outline
The XML outline shows your XML document in a tree perspective. This is the best view to examine the structure of the document. It is also perfect for navigating. The XML outline in XMLSpear is very powerful, because it has some excellent features, especially when you are working in element-view with the document
- when you select a node, the center pane will jump to this node
- validation errors are showed in the tree. Just follow the error nodes to locate the error
- because validation is done at real-time, yow will immediately see if your document is error free
- you can insert and delete nodes by right-clicking the tree nodes

Schema Outline
This window reflects the structure of the XML schema. As you know XML documents can be validated against a schema. The schema determines which elements and attributes may be declared in the XML instance document. The values of the elements and attributes may also have constraints which are described in the schema. The schema outline tree gives an excellent overview of the schema.

There are different types of nodes in the tree. All have them have their own icon:

picture  Element
picture  Attribute
picture  Sequence group
picture  Choice group
picture All group

The last three types are so called model groups and will be explained in more detail.
  • A sequence group describes a group where all members must appear in the specified order. This means that when you look at the schema outline tree, all nodes which are directly child nodes of the sequence group belong to this group and must appear in the XML instance document in exactly the same order.
  • A choice group describes a group where only one member of the group can be selected for use in the XML instance document.
  • An all group describes a group where all members can be part of the document and where order is not important.
    Occurrence restrictions are showed by using parenthesis. The first number gives the minimum, the second number the maximum.
    For instance (0,1) indicates a minimal occurrence of zero and a maximum occurrence of one.
When editing the XML document it will be a great help to have the schema outline beside. Comparing the schema outline and XML outline to each other will give you good feedback which element or attributes can be inserted at specific places. Solving errors which are related to the structure will also be more easy.
Project Explorer (MacOS X))

Source Editor (Windows XP)

XML Outline (Windows XP)

Schema Outline (MacOS X)