What's new

What's new in OmniMark 10.1.0

The set of supported platforms has been updated with 64-bit Linux support.

What's new in the language of OmniMark 10.1.0

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.

What's new in the libraries of OmniMark 10.1.0

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

What's new in OmniMark 10.0.0

The set of supported platforms has been updated.

What's new in the language of OmniMark 10.0.0

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.

What's new in the libraries of OmniMark 10.0.0

A new OASIS catalogs support library, OMOASISCATALOGS has been introduced, to enable programmers to use OASIS catalogs to resolve external entities.