gNaXEL Logo  
gNaXEL - a Graphical XML Editor
 
     
Description:   gNaXEL is a graphical XML editor that resembles XML Notepad. Intended as a learning tool, to instruct on the methods of working with XML technologies. It allows the user to view XML files in a hierarchical manner using a tree-view control. One can also see a textual "as-is" representation of the same XML document. The XML document can be edited using gNaXEL, and also be validated against a DTD.
     
    The gNaXEL program is being offered under open source license, so that it could be extended by the user as need be. The program will eventually have additional XML technologies added to it, such as XSLT style sheet editing and processing, XML schema validation, along with minimally functional DTD, XML schema and RELAX NG vocabulary editors. This program was originally written as a companion to a pair of XML textbooks, insuring that a no-cost graphical editor was always available on many platforms to work out the textbook exercises.
     
On this page:   Preview Background Releases Prerequisites Download
Other pages:   For Users For Developers
     
Screen shots:   Below are two screen shots, both taken using the gNaXEL XML editor that is currently under development. For your own testing purposes, the XML files used to generate these views can be collected by each image.
     
    gNaXEL editing an XML file
    gNaXEL editing a simple XML document
    The XML file used to generate this figure can be collected from here.
     
    gNaXEL editing an XML file with attributes
    gNaXEL editing an XML file with attributes
    The XML file used to generate this figure can be collected from here.
     
Background:   Short History
    gNaXEL started off as XML gNotepad, written in gcc and GladeMM on Red Hat 7.1. Problems in versioning cropped up once Red Hat adopted gtk 2, and GladeMM was not ready (doubt if many programmers were ready for that quick change). So the decision was made to aim for Java using Eclipse. This falls in line with the decison to use Eclipse as the coding environment for the next textbook. While there is a performance hit with Java, Eclipse brings with it the SWT library, which promised faster graphical performance.
    One of the major obstacles in writing a graphical XML editor is the requirement for a "TreeList" UI control. GTK had a version, but it was restrictive. SWT has none worth talking about. So the design decision was made to write one from scratch, to meet the needs of displaying an XML document.
    Most likely the GTK+ version of XML gNotePad will be revisited, once the first version of gNaXEL is released. While working on another project we ended up working with the latest version of GladeMM and the GTK Treeview control, and it looks like GladeMM is a viable platform to work with once again.
     
    Design differences between gNaXEL and XML Notepad
    1- It is open source (GPL), so you can extend it to meet your own needs, plus you can see one approach to writing a graphical XML editor, another training tool.
    2- gNaXEL uses Xerces XML libraries.
    3- It can open mal-formed XML documents, up to a point. Using Xerces SAX reader, partial XML documents can be parsed.
    4- Handles text nodes differently - performs a normalization technique that assumes whitespace from a greater than character to the first non-whitespace character, and the whitespace from the last non-whitespace character up to the next less than character is undesired whitespace, and disposes of it in the info-set. New whitespace is generated when the XML character data stream is persisted, which may or may not match the original whitespace.
    5- Cannot grab the mouse in SWT - so the "View-Split" functionality cannot be replicated. Not a big loss, though.
    6- Toolbar cannot be dynamically moved, as SWT does not provide for docking toolbars (gtk did). Aggravating, as horizontal toolbar can get in the way at times.
    7- Will accept PI nodes, unlike XML Notepad. gNaXEL will not do anything with these nodes, just carry them and allow them to be edited.
    8- gNaXEL does not load its entire XML document into the graphical UI controls. Rather, only the visible portions of the document are loaded into the UI controls. Vectors are used to store the infoset and are used to refresh the controls as the viewport is scrolled.
     
    Expected New Functionality
    1- CDATA normalization will be controlled by a preferences flag. Currently, CDATA sections are normalized when the XML document is parsed. Character entities are generated to replace any characters that cannot be represented when the XML character data stream is persisted. Some whitespace may be lost in the current process.
    2- Plan to drop the DOM and rely solely upon the SAX parser to fill in the info-set for gNaXEL. This will require adding some global counters and search capabilities, which will be required anyhow, once the program is fully fleshed out.
     
Planned Releases:   Initial public Version 0.1.1 gNaXEL Release [latest release]
    This version is now complete and the source is available for download in the file release section.
     
    What will NOT work until gNaXEL Version 0.2 Release:
    1- Editing functions driven by the program:
        cut, paste structural changes, etc.
    2- Add enabling capabilities for editing
    3- Dynamically adjust textbox widths to match width of contained text, adjusted against preset minimum width and maximum of canvas width.
     
    What will NOT work until gNaXEL Version 0.3 Release:
    4- Better status bar messages.
    5- Search (find / replace).
    6- Complete preferences (access to options offered by Xerces).
    7- Settle on method for archiving preferences.
     
    What will NOT work until gNaXEL Version 0.4 Release:
    8- Add URL open capability.
    9- List of last files loaded (MRU).
    10- Command line parameters (open file from command line).
     
    What will NOT work until gNaXEL Version 0.5 Release:
    11- Help facility.
    12- I18n (try with German first).
     
    What will NOT work until gNaXEL Version 0.6 Release:
    13- Web browser view driven by XSLT (based on SWT browser control).
     
    What will NOT work until gNaXEL Version 0.7 or Version 1.0 Release:
    14- Explicit namespace support (not in XML Notepad either).
    15- DTD / Schema facilities.
    16- XPath searching and XSLT functionality.
    17- Display with filtered nodes
    18- Rudimentary DTD authoring (ability to create DTDs used in the "Introduction to Applied XML Technologies in Business" textbook).
    19- Rudimentary XML Schema authoring (ability to create schemas used in the "Introduction to Applied XML Technologies in Business" textbook).
    20- Formalize canonical form processing.
     
    After the Version 1.0 Release:
    21- Review whether the GTK+ version of gNaXEL (XML gNotePad) should be written.
     
Prerequisites:   Certain libraries must be made available to gNaXEL
    1- Java (we used Sun J2SE version 1.4.2)
       >> last accessible from here
    2- Eclipse IDE (we used version 3.0.0)
       >> last accessible from here
      * at a minimum just get the SWT libraries installed for your platform, listed under "SWT Binary and Source"
    3- Apache Xerces Java Paser 2.6.2 Release
       >> last accessible from here
      * Do not use Release 2.6.1, had CDATA / Entity Reference bug!
     
Downloads:   All downloads are now being handled by SourceForge SourceForge.net Logo
    The download consists of a zip file, which contains the Java source files, images and other resources, and compiled classes to run on a Fedora Core 1 workstation hosting Eclipse version 3 IDE. If the user wishes to run gNaXEL under a different environment, then the Java sources will need to be built in that environment. Future releases will incorporate other operating systems, including Windows.
     
    The project page for gNaXEL is located at http://gnaxel.sourceforge.net, and the downloads can be accessed from http://sourceforge.net/projects/gnaxel/ project summary page.
     

Valid XHTML 1.0! Valid CSS!

     
Last updated:
6-Sep-2004 16:14z