sspxml is a lightweight (ca. 40KB) web-based XML-editor for small and middle-sized
XML-documents and XML-fragments. The editor is especially suited for entering XML
in a browser, e.g. to edit contents of a CMS-frontend or to maintain configurations.
In read-only-mode it allows nice presentation of XML-code on websites.
Demo
Special keys:
Ctrl-A : select all Ctrl-M at start-element name: select element Ctrl-U : make selected text lower-case Ctrl-Shift-U : make selected text upper-case.
As input an XML-DOM-object is passed (or a string with a valid XML-document, which
is parsed during initialization).
If no XML (or no parameter at all) is passed, sspxml will try to
parse the content of the HTML-placeholder. If this is a textnode with valid XML, the textnode is removed and the control is initialized
with the parsed XML:
sspxml is an XML-node-editor with syntax-highlighting.
An arbitrary formatting by the user is not possible, the XML is always
rendered standard formatted. However, line breaks in textnodes are preserved.
From clipboard, only such XML-snippets can be pasted, which would be
syntactically valid at the insert position in principle.
Input is being analyzed during typing to a large extend
and will be formatted and completed, or blocked where appropriate.
A final validation can be performed when edited XML is retrieved (by parsing
with the browser's XML-parser; parser-Exception, if not "well-formed").
A validation beyond that must be done elsewhere (e.g. server-side or
explicitly with Javascript).
Elements can be collapsed and renamed at their start-tags.
Navigation and selection by keyboard is widely supported (cursor keys,
tab, navigation keys, Ctrl-A, etc.).
The required CSS and the images for the expand buttons are already contained in the js-file.
sspxml is a jQuery-plugin and requires a current version of the library jQuery at runtime.
The following XML-node-types are not supported by sspxml, because they a rarely required and most often avoidable:
Document Type Nodes
Notation Nodes
Entity Nodes
Entity Reference Nodes
These node types were not implemented deliberately to keep the editor's code small.
Do not use sspxml, if you are required to support at least one of these node types.