XAmple
- Home page: http://www.felixgolubov.com/XMLEditor
- Needs only Java 1.5 or 1.6
- Uses XML-handling Swing widgets designed by Golubov.
- No source code for the widgets, only a JAR file xmleditor.jar.
- Swing itself is part of the Java standard library.
- The editor UI built around the widgets is called XAmple.
- We do get source code for XAmple.
- Too-small font problem common to many Swing apps. Probably fixable.
- Allows saving of malformed documents without asking for confirmation.
- Understands xsi::noNamespaceSchemaLocation.
- Generates an editing form from the schema.
- Fast. Validation results appear without noticeable delay.
Rinzo
- Home page: http://editorxml.sourceforge.net/
- It's a plugin for Eclipse 3.3 or later.
- SourceForge open source project.
- No editing form. Documents are represented by syntax-colored text
in one pane together with a structure tree in another. - Doesn't understand xsi:: noNamespaceSchemaLocation.
- I had to use xsi::schemaLocation and give a bogus namespace URI
along with the name of the schema file.
- I had to use xsi::schemaLocation and give a bogus namespace URI
- Slow. Noticeable delay between typing and the results of validation.
- XML files must be part of an Eclipse project.
- If not then saves produce error pop-ups about invalid thread
states.
- If not then saves produce error pop-ups about invalid thread
- Allows saving of malformed documents without asking for confirmation.
- When inserting new elements it offers a menu of possibilities that
often includes invalid choices, allowing me to insert elements in the
wrong order. After insertion however the editor catches the error.
XMLmind XML Editor Personal Edition
- Home page:
- Freeware Java 1.6, no source code.
- $330 Professional Edition comes with full source.
- Schema glitch: It didn't accept the use of maxExclusive to restrict
the range of xs:unsignedInt.- It claimed that maxExclusive and maxInclusive were both being used.
- I'll bet maxInclusive was used when deriving xs:unsignedInt
from xs:integer. - The two conditions should conflict only when used in the same
restriction element. - Fixed the problem by using xs:integer as the base and adding
minInclusive="0". - Make bug report to XMLmind.
- Doesn't validate as you type. Validates upon load, save and upon
request. - Fast.
- Offers the correct choices when inserting new elements.
- Understands xsi:noNamespaceSchemaLocation.