What's new

What's new in OmniMark 11.0

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.

What's new in the language of OmniMark 11.0

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.

What's new in the libraries of OmniMark 11.0

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.

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.