DIXml for delphi 11
DIXml is an embedded XML, XSLT, and EXSLT processing library for Delphi (Embarcadero / CodeGear / Borland). It is build on the libxml2, libxslt and libexslt libraries but requires no DLLs nor other external files.
DIXml v6.1.0 – 25 May 2023
Update libxml2 to version v2.11.4:
-
Improve protection against entity expansion attacks, also known as “billion laughs”. Heavily nested entities should be detected and false positives reduced. However, it is still possible that large documents which use entities extensively are rejected.
-
Fix several cases of quadratic behavior in the XML push parser.
-
Rework the XInclude engine to support nested includes properly.
-
Fix about 90 memory errors after malloc failures.
-
Deprecate several outdated and internal functions.
-
Many other improvements and bug fixes, such as:
-
No longer use recursion to validate elements.
-
XInclude aborts immediately if it exceeds max depth.
-
Fix handling of URI port numbers.
-
Improve HTML parsing of nested lists.
-
Multiple XML parser improvements.
-
Ensure that error messages are valid UTF-8.
-
XPath
number('-')
returns NaN.
-
Update libxslt to version v1.1.38:
-
Fix about 40 memory errors after malloc failures.
-
The result of
generate-id()
is now deterministic across multiple transformations. -
Many other improvements and bug fixes, such as:
-
nil
pointer dereference. -
Floating point and integer overflows.
-
Date overflow checks and rounding.
-
Overview
DIXml is the most feature-complete XML and XSLT solution for Delphi.
Features
-
XML and HTML reading and writing, pull and push parser modes.
-
XML and HTML document tree creation, traversal, load, and save.
-
SAX and extended reader interfaces.
-
DTD and schema validation.
-
Encoding support for UTF-8, UTF-16, ISO-8859-family, ASCII (all native).
-
XPATH processing.
-
NameSpace support.
-
XSLT transformation and processing.
-
File, memory, and customized input / output.
-
Low memory usage, outstanding performance.
Standards Implemented
-
XML standard: http://www.w3.org/TR/REC-xml.
-
Namespaces in XML: http://www.w3.org/TR/REC-xml-names/.
-
XML Base: http://www.w3.org/TR/xmlbase/.
-
RFC 2396 : Uniform Resource Identifiers An example HTML document.
-
XML Path Language (XPath) 1.0: xpath cover page - W3C.
-
HTML4 parser: HTML 4.01 Specification.
-
XML Pointer Language (XPointer) Version 1.0: XML Pointer Language (XPointer).
-
XML Inclusions (XInclude) Version 1.0: XML Inclusions (XInclude) Version 1.0 (Second Edition).
-
ISO-8859-x encodings, as well as rfc2044 [UTF-8] and rfc2781 [UTF-16] Unicode encodings.
-
Part of SGML Open Technical Resolution TR9401:1997.
-
XML Catalogs Working Draft 06 August 2001: XML Catalogs.
-
Canonical XML Version 1.0: http://www.w3.org/TR/xml-c14n and the Exclusive XML Canonicalization CR draft http://www.w3.org/TR/xml-exc-c14n.
-
Relax NG, ISO/IEC 19757-2:2003, RELAX NG Specification.
-
W3C XML Schemas Part 2: Datatypes REC 02 May 2001.
-
W3C xml:id Working Draft 7 April 2004.
libxslt Problems Detected During DIXml Development
DIXml includes fixes for all the bugs listed above.