This is the complete version history of the XML Parser:
|2019-11-22||XML Parser 2.0.5
Introduced the PresetEncoding method and the IgnoreEncoding boolean property:
When you have loaded your XML file to a Delphi string (= UnicodeString) or to a TStringList, it is already encoded in Unicode UTF-16. The LoadFromString and LoadFromStrings methods convert this to a UTF-8 string internally and pass that to the parser. In this case, the encoding must be forced to be UTF-8 (which is what PresetEncoding is used for) and the encoding in the XML prolog must be ignored (which is what IgnoreEncoding controls).
Please note that using LoadFromString/s for large XML is inefficient, because the XML will be re-encoded to UTF-8 internally (the parser is unable to parse UTF-16). So if you have large XML files, it is better to use LoadFromFile or LoadFromStream.
The XML Reader Demo has also been changed to correctly use the new functionality.
|2019-02-28||XML Parser 2.0.4
Bugfix in TXmlParser.LoadFromStream: there was an off-by-one bug, where the terminating null character (#0) was written one byte beyond the buffer. This was fixed.
If you use the LoadFromStream method, you should update to the new version. The other LoadXxx methods are not affected by this bug.
|2019-01-22||XML Parser 2.0.3
|2016-10-31||XML Parser 2.0.2
|2010-10-12||XML Parser 1.0.20
|2009-12-31||XML Parser 1.0.19
Delphi 2009/2010 compatibility
Delphi 2009 introduced Unicode to the world of Delphi by providing a new string type "UnicodeString", which is a UTF-16 string and using that as the standard and fixed definition for the "string" type. The whole VCL and Delphi runtime libraries are now based on this string type.
However, rewriting the parser to use this type would have been quite difficult, especially when the code has to be backwards compatible to the older Delphi versions. So I decided to stay with the AnsiString interface. This makes it possible to use the parser in Delphi 2009/2010, but it's neither handy nor very elegant. I also rewrote the demo programs (XmlReader and XmlScannerDemo) to be compatible with all supported Delphi versions (all Win32 Delphi compilers starting from Delphi 4).
My goal is to do a complete rewrite for UnicodeString, which will then also correctly support all aspects of Unicode. (However, I can't tell you when that will happen, maybe at another holiday season?)
I didn't test this new code with Kylix. So if you still work with Kylix you can try to use the new version and give me feedback about how it does. In case it doesn't work anymore you can still download the old version 1.0.17.
I don't own C++Builder so I can't say anything about it. As C++Builder has the Delphi language compiler built in, everything should work fine. If it doesn't, please send me a mail so we can sort things out.
|XML Parser 1.0.18
This got never released. I sent out beta versions to a few people so I decided to skip this version number in order to avoid version number confusion.
Included support for Delphi 7 (VER150). New package files for D7 and K3. There is a new compiler symbol HAS_CONTNRS_UNIT which is used now to distinguish between IDEs which come with the Contnrs unit (D5 and up) and those that don't.
Fixed a bug in TXmlParser.Scan with Processing Instructions whose target name is beginning with 'xml'. Thanks to Uwe Kamm for submitting this bug.
The CurEncoding property is now stored always in uppercase letters. The XML spec wants encoding identifiers to be treated case independently. So comparisons are faster when it's always stored in uppercase.
Thanks to another tip from Svatopluk Cech I changed the code so that the need for
frequent re-allocation of pointer buffers is reduced which should speed up your code.
I dedicate this version to my father, who turned 66 today.
|2001-12-03||XML Parser 1.0.14
|2001-09-03||I checked if the parser compiles and runs in Delphi 6 (D6). It does. So I took the time and included a D6 package file (XmlComponents_D6.dpk) into the xmlparser.zip. Nothing else has changed.|
|2001-07-14||XML Parser 1.0.13
Xml Reader Demo
|2000-07-29||TXmlParser: Added methods to simplify access to attribute lists. Adapted the XmlScannerDemo. Partly reworked the site.|
|2000-07-28||Documentation restructured. Thanks to Rajeev Rajan for the documentation on installing and using the parser in C++ Builder 5.|
|2000-07-27||Demo program and documentation for the TXmlScanner VCL component. New TXmlScanner source code.|
|2000-07-11||New "features" section on this page. LibXmlParser: Removed "Windows" unit from USES clause, added a few '!!!' comments|
|2000-06-20||xmlreader.zip: Changed the DFM file to be in binary format so D4 users can read it. Thanks to Simon Bond, UK, for the hint.|
|2000-04-23||LibXmlParser: Deleted the reference to the 'Contnrs'
unit. The parser can now also be compiled with Delphi 4.
Thanks to David Cresswell, UK, for giving me hints and
assistance in making the parser D4 compatible.
The XML Reader demo has also been changed to be D4 compatible. There is also a new zip file with the executable.
|2000-04-04||Small changes to the parser, one bug fixed (please refer to the history in the source)|
|2000-03-31||Finished Reference Documentation, new VCL parser TXmlScanner (built upon TXmlParser)|
|2000-03-30||Documentation, new version of Parser (bug fixed: Also translate Encoding of CDATA sections)|
|2000-03-28||Initial Version published|