[ANN] XMLmind XML Editor V2.6

Discussion in 'XML' started by Olivier Ishacian, May 12, 2004.

  1. XMLmind XML Editor V2.6 can be downloaded from

    V2.6 (May 10, 2004)

    Enhancements: (see technical details below)

    * Composing modular documents with XXE is
    easier, quicker and less error-prone:

    1. Select an element in a document (select
    the root element if you need to reference
    the whole document).
    2. Use new command "Edit|Document
    Reference|Copy as Reference" (shortcut
    3. Switch to the master document.
    4. Use ``ordinary Paste'' command, which now
    understands that you are not pasting a
    copy of the element but a reference to
    the element selected in step #1.

    * Use of XInclude to compose modular documents
    is now enabled in free Standard Edition.
    (Previously, this feature was only supported
    by Professional Edition.) In practice, this
    means that from now, Standard Edition users
    can compose arbitrarily complex modular

    * Previously, pressing key Enter inside any
    element caused the ancestor ``split-able''
    element, if any, to be split in two parts.

    This behavior was sometimes nice (inside a p,
    para, simpara, etc) and sometimes surprising
    (inside div, td, entry, etc).

    In order to make XXE less surprising to use,
    this special behavior has been removed:
    pressing key Enter inside a ``split-able''
    element does nothing at all.

    For consistency, the special behavior of key
    BackSpace at the beginning of a ``join-able''
    element and the special behavior of key Del at
    the end of a ``join-able'' element have been
    removed too.

    Splitting a ``split-able'' element now
    requires the element to be explicitly selected
    and command Edit|Split to be used (its new
    keyboard shortcut is Esc Enter).

    Joining a ``join-able'' element to its
    preceding sibling now requires the element to
    be explicitly selected and command Edit|Join
    to be used (its new keyboard shortcut is Esc

    Similarly, when allowed by the DTD or schema,
    Esc Delete joins explicitly selected element
    with its following sibling.

    * Does the above changes mean that XXE is less
    surprising to use but also somewhat less
    powerful? No, because the XHTML and DocBook
    configurations have been tuned to implement
    the following behaviors:

    + Enter, Del, BackSpace can be used to
    split and join as before but only inside
    p, para and simpara.
    + Ctrl-Enter pressed anywhere inside a
    paragraph or a list item (i.e. any
    commonly used, repeatable, element)
    inserts a new paragraph or a list item
    after it.
    + Ctrl+Shift-Enter pressed anywhere inside
    a paragraph or a list item inserts a new
    paragraph or a list item before it.

    * User Request: pressing keys Del and BackSpace
    now work as expected: they delete selected
    nodes if there is an explicit node selection,
    otherwise they delete text selection if any,
    otherwise they delete the character at caret

    Previously, deleting an explicit node
    selection was only possible using Ctrl+K. Note
    that Ctrl+K is still available and useful
    because, like Ctrl+X and unlike Del and
    BackSpace, it can be used on the element
    implicitly selected.

    * The DocBook menu contains a new entry
    "Informal Element / Formal Element" which can
    be used to convert an informal element to/from
    a formal element having a title. This command
    currently works for informaltable/table,
    informalfigure/figure and

    * The DocBook CSS style sheet now implements for
    the xref element all the processing
    expectations described in "DocBook: The
    Definitive Guide".

    * All DocBook template documents now use a
    section element rather than a sect1 element.

    * Upgraded Norman Walsh's DocBook XSL style
    sheets to version 1.65.1.

    * It is now easier to customize the XSL style
    sheets used to convert DocBook and Slides
    documents to HTML, RTF, PostScript® and PDF.

    The idea is to specify XSL style sheet
    parameters in a named parameterGroup
    configuration element added to
    (C:\Documents and Settings\xxe\config\customiz
    e.xxe on Windows). Example:

    <parameterGroup name="docb.toPS.transformParameters">
    <parameter name="variablelist.as.blocks">1</parameter>

    <parameterGroup name="docb.toRTF.transformParameters">
    <parameterGroup name="docb.toPS.transformParameters"/>

    More on this in the online help of the DocBook
    configuration. Also note that the
    documentation of Norman Walsh's XSL style
    sheets is bundled with XXE.

    * The CSS style sheet used to edit W3C XML
    Schemas has been slightly improved.

    * The XSL-FO processor plug-in for Apache FOP
    now includes imi, a class library for
    managing images, which allows FOP to support
    many graphics formats other than GIF and JPEG
    (for example PNG).

    Reminder: XSL-FO processor plug-ins are only
    supported by XXE Professional Edition, except
    the plug-in for [4]RenderX XEP which is
    supported by Standard Edition but only when
    installed with XEP Trial Edition.


    * The section of the tutorial describing how to
    compose modular documents has been completely

    * The Power User's Guide has been split in three
    independent documents:

    + First document describes how to configure
    and deploy XXE.
    + Second document describes how to write
    macro-commands and contains a reference
    of all native commands.
    + Third document deals with the support of
    W3C cascading style sheets (CSS) in XXE.

    Bug fixes:

    * Reopening a document referencing by the means
    of XInclude a module (example: a
    <!DOCTYPE>-less section), itself containing a
    reference to a character entity (example:
    &euro;), was not possible. In such case, the
    error message was: reference to undefined
    entity "euro".

    * Previously, XXE pretended that it was able to
    manage references to external entities and
    ``XIncluded'' modules, themselves containing
    references to internal or external entities,
    while this was not the case. For example, in
    such case, "Edit Referenced Document" and
    "Save As" failed miserably.

    Now references to external entities and
    ``XIncluded'' modules, themselves containing
    references to internal or external entities,
    are detected as being ``not managed''.

    * If a document references the same entity (same
    public ID and same system ID) several times,
    XXE now declares a single entity in the DTD
    internal subset. Previously, XXE declared the
    entity several times using a different name
    for each reference. The old behaviour was
    harmless but the saved XML file was not as
    simple as it could be.

    * It is no longer possible to save a document

    + a comment contains string "--" or ends
    with "-",
    + a processing-instruction contains string
    + a processing-instruction has a target
    which is not an XML Name.

    * It was not possible to remove invalid
    attributes such as "xmlns:xi" when the
    document is conforming to a DTD. Trying to do
    so previously reported an error about
    "xmlns:xi" being malformed or having an
    unknown prefix, which prevented XXE from
    removing the invalid attribute.

    * It was not possible to use named element
    templates in macro-commands when the name of
    the element template was localized. For
    example, with a German XXE, it was not
    possible to use the "figure einf├╝gen" toolbar
    button because element template
    "figure(image)" has been renamed to

    * Using both attr(foo) and a
    text-field(attribute, foo) in the content
    generated for the same element caused XXE to
    throw a NullPointerException. This happened
    after modifying the text in the text-field()
    and moving focus using the Tab key to a
    sibling text-field().

    The bug is fixed but the focus behavior is
    still unpleasant when attr(foo) is used. It is
    recommended in such case to use
    label(attribute, foo), a new type of generated
    content object, rather than attr(foo).

    * XML Schema: the complete schema built from
    multiple schemas specified using
    xsi:schemaLocation and
    xsi:noNamespaceSchemaLocation attributes was

    Technical details about the enhancements (for
    local gurus):

    * The old method for composing modular
    documents, that is using a dialog box to
    specify which document (or element inside a
    document) to reference is still available, but
    the corresponding command is no longer bound
    to any menu or key.

    This ``old command'' is called include and is
    documented in the Power User's Guide. This
    command is still useful because you can use it
    non only interactively, but also within
    macro-commands, by passing it an URL possibly
    having an XPointer fragment.

    * The new way of composing modular documents is
    implemented by commands copyAsInclusion and
    pasteInclusionEnabled (an extension of command
    paste which now replaces command paste in

    * The new behavior of the Del and BackSpace keys
    is implemented by new commands
    deleteSelectionOrJoinOrDeleteChar (a simple
    variant of command joinOrDeleteChar) and
    deleteSelectionOrDeleteChar (a simple variant
    of command deleteChar).

    Unless overridden in a configuration file (it
    is the case for XHTML, DocBook, Simplified
    DocBook, Slides), Del and BackSpace are now
    bound to command deleteSelectionOrDeleteChar.

    * Macro-commands now have four new XPath-based
    child elements: match, test, get and set. In
    practice, this means that it is now possible
    to write much more powerful macro-commands
    (really much more!):

    + Macro-commands can now be highly
    + Macro-commands can now have variables,
    local or with the document view as their
    + Some variables are predefined, example:
    $selected, $implicitElement, $dotOffset,
    etc, because they are mapped to the
    selection. Example:
    <set variable="dotOffset" expression="$do
    tOffset + 1"/> moves the caret by one
    character to the right.

    * Macro-commands now have a boolean trace
    attribute. When specified with value true,
    this attribute causes the macro to print debug
    information on the console, which is extremely
    useful when developing a sophisticated macro.

    * Previously, configuration element command
    could contain child elements: class (command
    implemented in Java[tm]), macro (a
    macro-command) or process (a process command).
    In addition, configuration element command can
    now contain child element menu, which is used
    to specify a popup menu of commands.

    This new type of command, typically invoked
    from contextual macro-commands, is intended to
    be used to specify contextual popup menus,
    redefining or extending the standard
    right-click popup menu.

    * In CSS style sheets, generated content can now
    contain ``proprietary'' extension
    which is a generalization of standard
    construct attr(attribute_name).

    The improved rendering of the DocBook xref
    element is implemented using xpath().

    Note that xpath(), like attr(), is evaluated
    once and this happens when the view of the
    element is built. This means that in most
    cases, manually refreshing the view of the
    element after a change in the document will be
    needed (use Select|Redraw or Ctrl-L).

    Specifying attr(foo) in a CSS rule implicitly
    creates a dependency between the value of
    attribute foo and the element which is the
    target of the CSS rule: the view of the
    element is automatically rebuilt when the
    value of its attribute foo is changed.

    Similarly, specifying xpath(whatever) in a CSS
    rule implicitly creates a dependency between
    the element which is the target of the CSS
    rule and all its attributes: the view of the
    element is automatically rebuilt when the
    value of any of its attributes is changed
    (which too much or not enough depending on the
    value of the whatever XPath expression!).

    * The xpath() construct is efficient and
    sometimes -- not often -- useful, but in many
    cases, it is not dynamic enough. Having to
    manually refresh the view of the element after
    a change in the document is definitely not

    Unlike xpath(), new generated content object
    string_specifying_an_XPath_expression) is
    automatically updated when the document is
    modified (for efficiency reasons, the update
    is delayed until the editing context changes).

    Unfortunately, label(xpath,
    string_specifying_an_XPath_expression) is not
    implemented in XXE V2.6 and is not expected
    before V2.8. XXE V2.6 only supports
    label(attribute, attribute_name).

    * The implementation of XPath used in
    macro-commands and in ``proprietary'' CSS
    extensions is a XPath 1.0 full implementation
    including all standard functions such as id()
    and document(), as well as many ``proprietary
    functions'' such as copy(), if(),
    resolve-uri(), etc.

    The implementation of XPath 1.0 used in XXE
    has been extracted from James Clark's XT, one
    of the fastest XSLT engines.

    * User Request: CSS3 attribute selectors
    [att^=val], [att$=val], [att*=val] are now

    * It is now possible to specify both schema and
    dtd elements in an XXE configuration file but
    in this case, the dtd element cannot be used
    to specify a content model. It may be used to
    specify a set of character entities.

    * DocBook templates using a sect1 element are
    still available in
    but you need to edit configuration file
    XXE_install_dir/config/docbook/docbook.xxe to
    use them.

    * The xsdvalid, dtdvalid, dtdtoxsd command-line
    tools are now XML catalog aware. These
    command-line tools will use the XML catalogs
    specified in environment variable XXE_CATALOG.
    This variable must contain one or several XML
    catalog file names or URLs separated by a
    semi-colon (';').

    Possible incompatibilities:

    * All DocBook template documents now use a
    section element rather than a sect1 element.

    * Esc Enter, Esc Del, Esc BackSpace are now
    bound to commands split and join.

    * In XHTML and DocBook configurations, Enter,
    Del, BackSpace, Ctrl-Enter and
    Shift-Ctrl-Enter are now bound to contextual

    * Command get has been replaced by new
    macro-command element get. For example, the
    following macro-command:

    <command name="docb.startImageViewer">
    <command name="get"
    parameter="[implicitElement][file] ./@fileref"/>
    <command name="start" parameter='xv "%_"'/>

    may be rewritten as follows:

    <command name="docb.startImageViewer">
    <macro trace="false">
    <get context="$implicitElement/@fileref"
    <command name="start" parameter='xv "%_"'/>

    XMLmind XML Editor Information List

    Olivier Ishacian, May 12, 2004
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Olivier Ishacian

    [ANN] XMLmind XML Editor V2.8

    Olivier Ishacian, Oct 22, 2004, in forum: XML
    Olivier Ishacian
    Oct 22, 2004
  2. Olivier Ishacian
    Olivier Ishacian
    Feb 7, 2005
  3. Olivier Ishacian

    [ANN] XMLmind XML Editor V2.10

    Olivier Ishacian, Jun 6, 2005, in forum: XML
    Olivier Ishacian
    Jun 6, 2005
  4. Olivier Ishacian

    [ANN] XMLmind XML Editor V3.0

    Olivier Ishacian, Oct 10, 2005, in forum: XML
    Olivier Ishacian
    Oct 10, 2005
  5. olivier
    Jun 15, 2006