The software listed here was developed for Delphi 5 and above, and sometimes, when stated so, also for Delphi 3. I could not verify whether it works in Delphi 4, too. (Try it out and drop me a line.) Successful compilations under Kylix 1, 2, and 3, and compatible C++ Builder versions where reported to me, although in some cases for previous versions of my software. Therefore, I cannot claim that newer versions are in fact completely compatible. Please report problems through the Open XML mailing list. -- d.k.
Utility Library v.3.0.3 (released 2012-01-21)
The Open XML Utility Library provides a wide range of methods, components and foundation classes. It can be used for Win32/Kylix as well as for .NET development. The package includes the following units:
- dkAbnfUtils Functions for testing ABNF syntax conformance.
- dkCodecUtilsWin32/dkCodecUtilsRTL Unicode conversion functions for more than 70 encodings including the whole ISO-8859-x family, various Windows and Mac code pages as well as KOI8-R and JIS_X0201.
- dkEncodingUtils Unicode helper functions and classes.
- dkLangUtils Functions for ISO 639 language code processing.
- dkParserUtilsWin32/dkParserUtilsRTL Classes for parsing a byte stream.
- dkTreeUtils Object tree classes with build in semi-automatic garbage collection.
- dkUriUtils Functions for testing URI syntax conformance.
- dkWideStrUtils Helper functions and classes for WideString processing.
- dkXmlRulesUtils Functions for testing XML syntax conformance.
Alternative Document Object Model (ADOM)
The Alternative Document Object Model (ADOM) package contains several components for processing of XML documents: An XML file or an XML string can be transformed into a tree structure of nested objects; several functions allow the modification and evaluation of this structure. The implementation includes:
- Classes to build an object model of ordinary XML 1.0 documents.
- Classes to build an object model of namespace XML 1.0 documents.
- Classes to build an object model of DTDs.
- A validating XML parser (conforming to the XML 1.0, 5th ed. specification).
- Document evaluation via XPath 1.0 expressions.
- A collection of special purpose components for advanced XML processing, including support for XML namespace and DTD processing. These components can be freely combined into a SAX-like pipeline architecture. This allows for maximum scalability to meet different requirements of XML input and output.
ADOM may be used for Win32/Kylix as well as for .NET development.
Up-to-date Versions
There are two up-to-date versions of the Alternative Document Object Model available. The development version includes the latest additions and improvements. The stable version will be maintained until the next stable release (usally after one to two years), i.e. bugs will be fixed, but the class and method definitions will remain unaltered (if possible). You may mix both versions at runtime, but only one of them can be used as a design time package in the same project. For instructions about how to do this see the UPGRADE.txt file included in the package's zip-archive.
"Which version shall I use?" -- 1. If you want to get the most out of ADOM, use the development version. It is reasonable bug-free and information about known bugs or rarely tested features can be found in the BUGLIST.txt file included in its zip-archive. But be prepared to update your code from time to time, when a class or method definition in a new development version changes. 2. If you are planning to release your code (or part of it) as open source, consider using the stable version instead. If a bug is discovered and fixed in the stable version, you (usually) do not need to updated your code. Just compile it with the new stable ADOM version. 3. If you are planning to release a third party component or unit for ADOM, consider using the stable version. Third party components based on the development version tend to get out of synchronization with it, since experience has shown that developers often do not find the time to update their components whenever a new development version is released.
- Alternative Document Object Model v.5.1.6 (released 2012-03-27)
This is the current development version of the Alternative Document Object Model.
Requirements: The latest version of the Open XML Utility Library (see above) must be installed on your system. Some of the optional add-ons require the Open XML Dynamic Controls package (see below).
- Alternative Document Object Model v.4.3.5 (released 2012-03-27)
This is the current stable version of the Alternative Document Object Model.
Requirements: The latest version of the Open XML Utility Library (see above) must be installed on your system. Some of the optional add-ons require the Open XML Dynamic Controls package (see below).
Legacy Versions
Previous versions of ADOM had been labeled "Extended Document Object Model (XDOM)". The following major ADOM/XDOM releases are no longer maintained and should not be used to develop new applications. They are listed here for archive purposes only.
- Alternative Document Object Model v.4.2.1 (released 2008-12-13)
Requirements: The also outdated Open XML Utility Library v.2.0.17 must be installed on your system.
- Extended Document Object Model v.3.2.7 (released 2008-09-28)
Requirements: The also outdated Open XML Utility Library v.2.0.14 must be installed on your system.
- Extended Document Object Model v.2.4.0 (released 2003-03-15)
Requirements: The also outdated Open XML Utility Library v.1.0.4 must be installed on your system.
- Extended Document Object Model v.2.2.12 (released 2000-10-31)
XLink Object Model v.1.0.0 (released 2002-06-12)
The XLink Object Model package contains classes used to maintain collections of links as specified by the W3C Proposed Recommendation "XML Linking Language (XLink) Version 1.0". It also runs under Delphi 3.
Entity Translator v.1.0.3 (released 2003-07-03)
The Entity Translator Package includes two components which can be used to replace parts of a string with a substitute. A typical use-case is the replacement of an HTML entity reference (such as 'ö') with a special character (such as 'ö'). The component TCharToEntityTranslator serves to replace single characters of a text by a series of characters. The other way round, the component TEntityToCharTranslator serves to replace a special kind of character series, called entity references, by other characters. Entity references start each with the same character, called the left delimiter (in HTML this is '&'), and end each with the same character, called the right delimiter (in HTML this is ';'). The characters used as delimiters are not hard-coded, i.e. an application may choose to use different ones.
The Entity Translator Package has been programed and tested using Delphi 3, though likewise it should work with all subsequent Delphi and Kylix versions and maybe also with Delphi 1 and 2.
Dynamic Controls v.1.0.0 (released 2008-12-13)
The Dynamic Controls package implements a very object-oriented way to deal with Unicode data in GUI controls. All Unicode data is maintained in list components separate from the controls. The (auto-updating) controls are linked to this lists with the help of iterator classes. Lists may be automatically filtered.
Virtual Shell Tree v.1.1.1 (released 2010-01-18)
The Virtual Shell Tree package contains a
TVirtualShellTree component for displaying the Windows file system and selecting individual files (→
screenshot). This component is very easy to use: Place it on a form, specify the system folders that should appear at the top of the file hierarchy, and write a handler for the event that is triggered when a user double-clicks on a file.
Virtual Shell Tree is released under a dual license: MPL 1.1 and LGPL 2.1 (or later). It has been programed and tested using Delphi 2010, but should work with any Win32 Delphi version from 7 to current. It is based on Mike Lischke's Virtual Treeview Win32 distribution, version 4.8.6 (available at
www.soft-gems.net) that must be installed first.
Application Launcher v.1.0.4 (released 2012-02-09)
The Application Launcher package contains a TAppLauncher component for launching an external application and processing its output until the application terminates.
The Application Launcher is released under an ISC LICENSE. It works only in Delphi 2009 (for Win32) and above.