TinX

Q: What is TinX?

A: TinX stands for TinX is not XSLT in the sense that GNU 's not Unix. I was inspired by XML like structures being processed over the wire using tools that flattened out structures and inflated them back. In 1997 I was introducted to an XML like structure used to transfer banking information from customer to business processing center and back. The tools that existed then were not mature. We built specialized tools, but there were limited generic tools for processing these documents. Enter TinX.

TinX is a transformation engine for XML Documents from Lucas Software Engineering, Inc.. The current release focuses on mapping XML to XML and has the ability to map to Java class and object methods in order to call logic compiled inside of Java classes. It also includes support for calling JavaScript functions and SQL.

The idea behind TinX is that XSLT is great for web pages and various other translations, and document generation from templates, but is it right for everything? What about server side dynamic content with XML? Perhaps the need for TinX is best summed up with: "If the only tool you have is a hammer, everything begins to look like a nail".

TinX's basic product is designed around XML document processing. This design allows for stream based processing using very fast SAX event handlers. The TinX map is geared toward developers with easy tasks to move the equivalent of XML tree structures values into the appropriate Java calls and/or XML responses.

Eventually TinX will be capable of String, Delimited Text, and XML input and output options as well as SQL calls directly mapped to an XML Document Request and Response.messages.

Q: Why another transformation tool?

A: As mentioned in What is TinX?, you may be satisfied with using your own in-house tools, various open source projects, or XSLT to solve your problems, but TinX is focused on XML document processing. The goal for TinX was to make enterprise integration easier for developers using XML documents to pass multiple requests like in the OFX and IFX standards.

This will also help in multiple channel integration and the enterprise view of the customer. TinX is about Business To Business (B2B) processing. And a close eye is given to the "batch" processing current institutions use in combining multiple system of record information. Eventually there will be more tools that come out that build upon the engine's language like syntax and help speed business document processing to production.

Q: Why did you decide to use XSD Schema instead of DTD?

A: DTDs are an earlier description of how an XML file may be defined. It lacks some of the more descriptive attributes about elements and entities and can help in establishing data formats. The industry is already moving in that direction and it makes sense to support it first. The current syntax of TinX can be found in the tinx.xsd file.

Q: What is the product structure to TinX? Is it free?

A: TinX is a commercial product and comes in three flavors: Personal, Standard, and Enterprise. The cost varies based on the edition and volume. These licenses are Node-Locked to a particular machine.

The Personal Edition will only allow one thread to handle all the transformations. This will be slower than the Standard Edition, but will give developers an opportunity to try TinX out. The Personal will require annual registration. Special Academic Licenses are available of this version.

The Standard Edition will be Node-Locked and allow multiple users to use the engine. This will be limited to 4 concurrent threads. This will be for the small shops and low number of system users in a XML document processing environment.

The Enterprise Edition is for the large business, corporation, or government agency that has systems configured with multiple CPUs and hundreds to thousands of users. This edition allows for the configuration of threads based on the performance characteristics of the client. This is a Node-Locked license but can be purchased in sub-net configuration (Class C restriction). In the sub-net license, the product's license will enable the TinX engine to run up to 253 instances of TinX on the same sub-net. This is what we term Sub-Net Locked.

Annual Support is available. For price and support terms, please contact sales@lse.com

Q: What are the systems requirements?

A: TinX is a 100% Java Solution that depends on J2SE. It does require the Security API as well as support for JDBC and JAXP. It has currently been tested with Sun JDK 1.4.1. It should work with Sun JDK 1.4.2 and up on platforms supporting that JVM. It has also worked with IBM JDK 1.4.0 and JRockit 8.1. Currently tested platforms include: Linux and Windows.

TinX is dependant on DOM4J (http://www.dom4j.org) and Jaxen (http://jaxen.sourceforge.net). There is built in support for JavaScript (Rhino http://www.mozilla.org/rhino) as a scripting language. TinX requires a XML SAX Parser and has been tested with Piccolo SAX Parser (http://piccolo.sourceforge.net) (some bugs, see Piccolo web site on attribute truncation), Crimson (http://xml.apache.org/crimson), and Xerces 2 (http://xml.apache.org/xerces2-j).

DOM4J, Jaxen, Crimson and JavaScript (Rhino from Mozilla.org) binaries have been bundled with the TinX jar file for simplicity.

Q: Where do I get TinX at?

A: Current download instructions can be found here. There are three separate ways to install. Windows .exe, Unix .bin, and Generic Jar install files. Pick the one that is right for you. Enjoy! :-)