[ANN] XMLmind XML Editor V2.6

O

Olivier Ishacian

XMLmind XML Editor V2.6 can be downloaded from
http://www.xmlmind.com/xmleditor/download.shtml

===================
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
Shift-Ctrl+C).
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
documents.

* 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
BackSpace).

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
position.

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
informalexample/example.

* 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
~/.xxe2/config/customize.xxe
(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>

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

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.

Documentation:
--------------

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

* 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
where:

+ 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
"figure(Abbildung)".

* 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
incorrect.

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
XXE).

* 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
contextual.
+ Macro-commands can now have variables,
local or with the document view as their
scope.
+ 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
xpath(string_specifying_an_XPath_expression)
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
desirable.

Unlike xpath(), new generated content object
label(xpath,
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
supported.

* 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
XXE_install_dir/config/docbook/template_sect1/
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
macro-commands.

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

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

may be rewritten as follows:

---------------------------------------------------------
<command name="docb.startImageViewer">
<macro trace="false">
<sequence>
<get context="$implicitElement/@fileref"
expression="uri-to-file-name(resolve-uri(.))"/>
<command name="start" parameter='xv "%_"'/>
</sequence>
</macro>
</command>
---------------------------------------------------------
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,053
Latest member
BrodieSola

Latest Threads

Top