Single Processing Engine now reports compile-time errors and warnings.
The set of supported platforms has updated to include more recent versions of Windows and Linux. Other platforms have been dropped.
OmniMark Studio for Eclipse now works with Eclipse platform up to version 4.6
name of entity
, public-identifier of entity
and system-identifier of entity
have been
introduced to permit entity properties to be accessed from elsewhere than the body of external-data-entity
or external-text-entity
rules.
#doctype
is now attached in do markup-parse
as soon as
an external-text-entity #dtd
fires.
declaration of
can now be applied to an external text entity reference event.
abstract
record types can now be declared.
The existing dtd-start
and dtd-end
have been deprecated in favour of the
new document-type-declaration
rule.
A new parameter at base-uri
has been added to oasis.compile-parsed-catalog
to serve
as a default xml:base
value.
The new unicode.block-boundaries
shelf provides a list of character blocks from the Unicode standard.
The xml.writer
function is now capable of encoding external text entity references, including the
identifier of the external DTD subset in the document type declaration. The entity references fed
to xml.writer
must still be resolved.
The output of xml.writer
and xml.written
can be controlled with two new
optional switch
parameters: empty-tags
and utf-8
.
Multiple entity-resolver
types can now be chained using the |
operator.
ommarkuputilities.static-resolver can be used to emulate the
behaviour of the built-in external entity resolver with explicit #library
and #libpath
shelf values.
New beta library omxmlschema provides support for markup validation against W3C XML Schema.
New beta library omregex can match and mark up a string against a regular expression pattern.
New beta library omsgmlwrite can be used to serialize a markup stream to SGML, equivalently to how the existing omxmlwrite library serializes markup to XML.
The set of supported platforms has been updated with 64-bit Linux support.
Element expressions are now first-class objects. Any markup-element-event
instance can be used as an element expression and vice versa.
previous
can now be used inside an element expression.
The new operator elements of
can be used to obtain the element stack of arbitrary element expressions.
repeat over reversed
can be applied to any shelf reference.
The new built-in sink #log
provides a more flexible way of logging user messages than #error
and
log-message
.
Shelf-class optional
arguments can now have initializers.
Operator create-processing-instruction-event
has been added to the language for easier generation of
custom markup.
The library OMFF8859 has been added for converting between ISO/IEC 8859 and UTF-8.
The library OMFFUTF32 has been added for converting between UTF-32 and UTF-8.
An instance of a markup-buffer
type can now be used as a queue, thanks to the new function
consume
in the ommarkuputilities
library.
The omuri
library has been extended with function uri.relative
, for converting an absolute URI
into a relative one with respect to a given base URI.
The OMUTF-8 library now includes a utf8.length
function that can be used to determine the number of
UTF-8 code points in a UTF-8 encoded string
The set of supported platforms has been updated.
The types sgml-dtd
and xml-dtd
have been introduced, both subtypes of the type dtd
.
The introduction of these types allows compiled DTDs to be manipulated as first-class objects.
The built-in #current-dtd
has been introduced, providing access to the DTD being used for the
currently-active parse.
#doctype
is now writable: its value can be modified to affect the document type of the currently-active
parse.
The types element-declaration
, attribute-declaration
, and entity-declaration
have been
introduced. The introduction of these types allows the elements, attributes, and entities declared in a compiled
DTD to be manipulated as first-class objects.
The operator declared-elements of
has been introduced; it can be used to obtain the elements declared
in a compiled DTD.
The operator attributes of
has been extended to apply to instances of element-declaration
; it
can be used to obtain the attributes declared in an element declaration.
The operators declared-general-entities of
and declared-parameter-entities of
have been
introduced; they can be used to obtain the entities declared in a compiled DTD.
The operator content of
has been extended to apply to instances of element-declaration
; it can
be used to obtain a representation of the content model in the element declaration.
The operator name of
has been extended to apply to instances of element-declaration
; it can be
used to obtain the name of the element declared in the element declaration.
The built-in functions create-element-declaration
and create-attribute-declaration
have been
introduced, to allow element and attribute declarations to be created programmatically.
The built-in function create-element-event
has been introduced, to allow element events to be created
programmatically.
The types declared-attribute
and specified-attribute
have been introduced to represent the
types of the attributes
and specified attributes
shelves, respectively. specified-attribute
is a subtype of declared-attribute
.
The attributes
shelf can now be passed to functions as a read-only
argument of type declared-attribute
. The specified attributes
shelf can now be passed to functions as a read-only
argument of type declared-attribute
or specified-attribute
.
Functions can now return shelf references, in addition to single values.
Pattern variables can now be passed through as optional
function
arguments, whether or not they are specified.
A new OASIS catalogs support library, OMOASISCATALOGS has been introduced, to enable programmers to use OASIS catalogs to resolve external entities.