OmniMark is used to convert data from one format to another. In many respects it is similar to the Perl language. It has a built-in XML parser, which has made it popular. It has support for XQuery via integration with Sedna native XML database. It also has features to process find rules which implement a similar concept to regular expressions, although the pattern expression syntax is quite different from and arguably clearer than the more familiar regular expression syntax used in Perl, Java etc. Its syntax is English-like and hence it is easy to understand. Although it is Perl's competitor, Perl and the Ruby programming language are more widely used than OmniMark, because they are open source and freely distributed. OmniMark can also be used for schema transformation tasks in the same way as XSL-T, but allows straightforward paradigm switching between procedural and functional code without the need for any additional constructs to support the procedural elements. In general OmniMark is significantly faster to write than XSL-T for any given application (assuming equal developer competence).
OmniMark is well known for its use of a streaming architecture which makes it particularly efficient in handling large volumes of content, and allows OmniMark to outperform its competitor technologies whenever the data volume is high (for instance when processing very large and numerous text, XML and SGML files). This is partly because data is handled "on the fly" without first building software data structures to represent it. The competitor technologies can be made to approach or match this performance but in general it would take a skilled and domain-competent Java developer (who had good knowledge of techniques such as, for example Boyer-Moore, referents and lookahead) to approach or match the performance of programs produced by a much less skilled and less knowledgable OmniMark developer on large data sets. This would also assume that the greater system resources needed by the Java software were in place, and that the extra time needed to produce the Java code when compared with the time needed to produce the OmniMark code was available.
Hello World ProgramEdit
process output "Hello World! Mohnish"
Program to Locate All Words starting with a Capital Letter in a Text FileEdit
process submit file "myfile.txt" find (uc letter*)=>temp output temp || "%n" find any
- OmniMark at Work: Getting Started, by Brian E. Travis, John R. McFadden, Denielle C. Travis (Editor), Robert Peltz (Illustrator)
- Internet Programming with OmniMark, by Mark Baker published by Kluwer Academic Press
- Practical Guide to SGML Filters, by Norman E. Smith
- Practical Guide to SGML and XML Filters, by Norman E Smith
- OmniMark Programming Principles, by Errol Chopping, an online book.