Version 22 was never officially released, so I decided to bring all the recent changes
out as version 23.
News in version 23:
It is now possible to use numbers and characters as element contents items. Change
processing mode with
(set-xml-accept-extended-contents-in language value).
It is also possible to affect the possible attribute values. Change
processing mode with
(set-xml-accept-only-string-valued-attributes-in language value).
The XHTML LAML templates now makes it easy to use the various LAML processing
options via the introduction of the a new LAML template '
Processing options
' in the LAML Emacs menu.
The reporting of errors in case of XML validation problems has been improved. As
part of the error messages, problematic document fragments are reported using Scheme
syntax. Earlier, native XML syntax was used.
The Emacs keybindings are now available in two different versions. The
original
keybindings are still maintained. A new set of keybindings, called
hygienic
keybindings, has been introduced. Most of these start with C-c (control
C). As such, they do not conflict with existing and important Emacs
keybindings. The choice of keybindings can be controlled in the LAML
configuration file laml-config/configuration via the configuration property called
emacs-keybindings.
It is also possible to configure LAML without Emacs keybindings, by using
the value
none.
The internal document representation now exists in two version:
laml
and
sxml.
Use of
sxml
is still experimental (but it works well throughout all LAML software). The
choice of representation is made in
lib/xml-in-laml/xml-in-laml.scm
via the variable
laml-internal-representation.
In a future version, the choice of internal representation may be a
configuration option.
It is now possible to get access to the element content models, the action
procedures, and the validation procedures through the a number of new maps in
lib/xml-in-laml/xml-in-laml.scm.
The procedure
validate-ast!
does explicit validation of an AST. In normal use of LAML, the XML validation
is integrated into the mirror functions. If the AST is not created through
the mirror functions it is useful to apply the procedure
validate-ast!
for full XML validation.
Similarly the procedure
process-ast!
processes an AST by means of the designated action procedures. Notice
that the mirror libraries will have to be loaded in order to use
validate-ast!
and
process-ast!.
Notice that it is no longer necessary to define the action procedures before loading
of the mirror functions.
Filenames with '<' and '>' cause problems in Windows XP. From this version
of LAML, the Scheme Elucidator does not emit such file names.
A new XML-in-LAML
manual facility
has been developed. It can be used to write manuals for Scheme software. It
also serves as a convenient interface to SchemeDoc, which extracts interface document
from Scheme source programs. Finally, the new LAML manual facility can
be used to extract and format document from an XML DTD.
The new LAML manual facility uses XHTML and CSS stylesheets. You can
easily change the manual stylesheet for all LAML manuals by executing one
of the scripts in the directory
css-stylesheets/change-manual-stylesheet/.
You can also make your own CSS stylesheets for you manuals.
The
LAML tutorial chapter on SchemeDoc and the LAML manual
has been rewritten to take the new manual facilities into account.
See also the new
SchemeDoc home page.
A new interactive command,
xml-dtd-manual,
can be used to make a LAML manual (in SchemeDoc) style of an XML DTD.
This command can be used from an interactive LAML prompt, such as obtained by M-x
run-laml-interactively
in Emacs.
The command
xml-dtd-manual
is defined and documented in the fundamental LAML setup file laml.scm.
Similarly, the
schemedoc
command can be used to start the SchemeDoc tool. And
xml-dtd-parse
can be used to parse and XML DTD. Finall, the command
generate-xml-mirror
can be used to generate a mirror in Scheme of an XML language.
In versions earlier than LAML 23, each tripple of laml-platform, operating-system,
scheme-system had its own Emacs file for LAML processing. This caused
a substantial overlap of E-lisp source definitions, and it was quite difficult
to make a new set of LAML processing E-lisp functions.
From version 22 these different files have been eliminated. Instead all the LAML
processing commands are joined in the file
emacs-support/laml-execute.el.
The variations accross platforms, operating systems, and Scheme systems are
accommodated in the two E-lisp functions
start-laml-process
and
call-laml-process.
Both of these are defined in the initial part of
emacs-support/laml-execute.el.
It is now possible to start or call (asynchronously or synchronously) a LAML process
on a LAML file directly from dired. Dired is the Emacs directory editor.
Try
M-x dired.
Two new keybindings (the same used for processing a LAML files, from
inside a LAML file, C-c C-0 and C-c C-x C-o with the hygienic key bindings) have
been introduced. They are bound to the E-lisp commands
laml-process-selected-file-from-dired
and
laml-process-selected-multiple-files-from-dired.
The first processes the selected file asynchronously. The second one
may process several selected files synchronously. These commands are
also available via Dired's operate menu.