9 - ``::tixiXPathEvaluateNodeNumber`` will not throw an error anymore when an xml node does
10 not exist. Rather, the function will succeed and return zero. (issue #198)
11 - Fixed inconsistent behavior of the function ``::tixiUpdateTextElement``: This function should
12 only work, when the element path refers to a single element with no XML child nodes or at most
13 one text child node. This is now explicitly checked and an error is thrown, if these
14 prerequisites are not met. Without this, it is not clear how the function behaves e.g. at the
15 presence of comment child nodes.
16 - ``::tixiXPathExpressionGetTextByIndex`` now retrieves the complete content of an element
17 including text and comments.
21 - ``::tixiExportElementAsString`` retrieves the xml string of a given element (issue #202)
22 - ``::tixiImportElementFromString`` imports a char-string as a child element into an existing
23 tixi-document (issue #202).
30 - Fixed inconsistent behaviour of the function ``::tixiAddExternalLink``.
31 The function now creates external node links consistent to ``::tixiOpenDocumentRecursive``.
32 A new required argument defines, whether the newly created external node
33 should be directly loaded into the xml tree (issue #173).
37 - Drasting performance improvements when adding and changing vectors via
38 ``::tixiAddFloatVector`` and ``::tixiUpdateFloatVector`` by changing
39 the quadratic runtime behaviour to a linear behaviour (issue #183).
40 - Added support for Python 3.8 and Python 3.9 (issue #178).
44 - Fixed invalid calls in matlab bindings (issue #170).
45 - Fixed error code in ``::tixiGetFloatVector``, if a vector element is not a number (issue #184).
46 - Fixed a crash when saving to external xml documents (issue #175).
53 - Fix for `::tixiGetDoubleElement` and `::tixiGetIntegerElement` and elements with trailing whitespace.
54 - Removed all exit( ) calls in TiXI
60 - Deprecated all array functions. These are
63 - `::tixiGetArrayDimensionNames`
64 - `::tixiGetArrayDimensions`
65 - `::tixiGetArrayDimensionSizes`
66 - `::tixiGetArrayDimensionValues`
67 - `::tixiGetArrayElementCount`
68 - `::tixiGetArrayElementNames`
69 - `::tixiGetArrayParameterNames`
70 - `::tixiGetArrayParameters`
71 - `::tixiGetArrayValue`
73 **These functions will be removed in TiXI 3.3.0!**
75 - ```::tixiGetDoubleElement``` and ```::tixiGetIntegerElement``` now return the error code ```::NO_NUMBER```,
76 if the element is not a number.
77 Before, TiXI returned '0' as a number without error.
78 - ```::tixiGetFloatVector``` and ```::tixiGetVectorSize``` do not check for `mapType="vector"` anymore.
81 - The validation error messages produced by
82 ```::tixiSchemaValidateFromFile```, ```::tixiSchemaValidateWithDefaultsFromFile``` and
83 ```::tixiSchemaValidateFromString``` now show line numbers of the error in the xml file.
84 - Support of Matlab R2018a and newer
87 - Added new function ```::tixiRemoveExternalLinks``` to remove links to external files to
88 improve validation of xml files.
91 - Fixed several build problems
92 - Fixed adding empty vectors using ```::tixiAddFloatVector```
93 - Fixed crash for very long error messages
94 - Fixed decoding of special characters by ```::tixiGetTextElement```
100 - Improved cmake export scripts. Tixi installs should now be relocatable.
101 - The cmake build system now builds by default static libraries. If shared
102 libraries are desired, ```-DBUILD_SHARED_LIBS=ON``` has to be passed to cmake.
103 - Implemented caching for the functions ```tixiXPathExpressionGetXPath``` and
104 ```tixiXPathEvaluateNodeNumber``` to speed up queries on large files.
107 - ```tixiSwapElements``` allows to exchange two xml elements.
108 - Added functions TixiGetNumberOfChilds, TixiGetChildNodeName and
109 TixiGetChildElementPaths to C++ Bindings.
112 - Fixed indexing of text nodes. Now it is possible to directly select text nodes
113 using e.g. /root/a/text()[2].
114 - Fixed function ```tixiGetChildNodeName``` to returns also the namespace prefix.
120 - tixiRenameElement To rename an existing element
127 - Completed C++ wrapper
130 - tixiXSLTransformationToString To perform an xml transformation
133 - Fixed an error in Python bindings that added a tixi prefix in front of all methods
139 - Renamed TIXI library to tixi3
140 - TiXI header file is now located under include/tixi3/tixi.h
141 - Added new C++ bindings for TiXI located under include/tixi3/tixicpp.h
145 - Fixed failure in ```tixiUIDCheckExists``` if a uID is duplicate
146 - Fixed invalid characters in Matlab bindings
147 - Fixed missing return value in the matlab bindings of ```tixiUIDCheckExists```
148 - Fixed compilation of the matlab bindings on linux
154 - Added XML namespace support
155 - Added Makefile to build the MATLAB interface with mex
158 - Functions to write elements with namespaces
160 - tixiCreateElementNS
161 - tixiCreateElementNSAtIndex
162 - tixiAddBooleanElementNS
163 - tixiAddDoubleElementNS
164 - tixiAddIntegerElementNS
165 - tixiAddTextElementNS
166 - tixiAddTextElementNSAtIndex
168 - Funtions for namespace modifications
170 - tixiSetElementNamespace
171 - tixiDeclareNamespace
173 - Functions to register namespaces
175 - tixiRegisterNamespace
176 - tixiRegisterNamespacesFromDocument
179 - Fixed hard-coded libraries in CMake config scripts
186 - Removed warning in tixiOpenDocumentRecursive, if no external
187 files are defined in the cpacs file
188 - Fixed problems with intel ifort in linux
189 - Added Fortran 03 interface. This has to be compiled by the user.
190 - The C-code of the matlab mex interface is now always shipped with tixi,
191 if the user wants to build it by himself.
197 - Less messages in case of errors to reduce clutter
200 - Fixed tixiUpdateDoubleElement and tixiUpdateIntegerElement not updating
201 the element content, if the element was empty before
208 - Removed ellipsis argument for error message handler. This
209 change affects code calling tixiSetPrintMsgFunc.
212 - tixiGetPrintMsgFunc to return the internal message handler.
219 - Support to load and save external data from directories
220 relative to the XML file rather than the current working directory
221 - Completely cleaned up code base for a common code style
225 - tixiXPathExpressionGetXPath to query an absolute XPath from
226 an XPath search query
227 - tixiGetDocumentPath to get the path of the currently opened file
230 - All known memory issues fixed (more than 100)
231 - Fixed problems when dealing with external data
232 - Fixed many compiler warnings
239 - Rerouting mechanism for error and warning messages
240 (a custom message handler can be installed)
241 - Added Python 3 support
245 - tixiAddFloatVector now has an additional precision parameter to control
246 e.g. the number of digits after the decimal point
249 - tixiUpdateFloatVector to change the data of an already existing vector
250 - tixiSetPrintMsgFunc to install a custom message handler
253 - tixiGetNumberOfChilds and tixiGetChildNodeName now ignore DTD nodes
254 - MATLAB specific: reverted tixiCheckElement, tixiCheckAttribute,
255 tixiCheckDocumentHandle, tixiCheckUIDExists to old behavior
262 - Automatic generation of python and matlab bindings
263 - TiXI can now be used as an Android NDK native module
264 - TiXI installs cmake config files in order to be used by other projects
268 - Renamed tixiGetChildElementName to tixiGetChildNodeName. Its output is now
269 consistent with DOM standard.
270 - Removed tixiGetRawInterface
271 - Changed arguments in tixiAddPoint MATLAB binding
272 - Removed all matrix related functions
275 - tixiGetNodeType, returns the type of an XML node accoring to DOM standard.
279 - Fixed incorrect return value of tixiGetFloatVector, if number of elements
280 read is smaller than expected
281 - TiXI can now be built with clang also on windows
282 - Fixed wrong formatting of the result XML, when inserting an xml element
283 using tixiCreateElementAtIndex
290 - tixiGetChildElementName - Returns the name of a child element beneath a given path.
291 - tixiGetAttributeName - Returns the name of an attribute of a given node.
292 - tixiGetNumberOfChilds - Returns the number of childs elements of a given path.
293 - tixiGetNumberOfAttributes - Returns the number of attributes of a given node.
294 - tixiGetBooleanAttribute
297 - Switched the API to const char strings. This should produce much less
298 warnings but should not break the current API/ABI.
299 - Added file tixi_version.h including all version information.
300 - Added support for visual leak detector
301 - Added check for python version < 3.0 and python version > 2.5
304 - Fixed tixiUpdateTextElement not updating the text, if the node was empty before
305 - Fixed element retrieving of root node
306 - Fixed uIDCheckExists behaviour of python wrapper
312 - Changed UnitTesting Framework to google-test
313 - Added coverage with gcov (gcc only) to project
314 - Added check that the number of elements in an array is the same as the specified array size
315 - Fixed null-pointer bug in tixiGetTextAttribute
316 - tixiAddCpacsHeader now creates also a CPACS version tag
317 - Documentation overhaul
320 - tixiUpdateIntegerElement
321 - tixiUpdateBooleanElement
327 - Fixed lots of memory leaks
328 - Improved usability of uIDCheckExists (python)
329 - Changed unit testing framework to google test (gtest-1.6.0)
330 - Added more unit tests
336 - Installer for 64-bit Windows
337 - All-In-One installer with 3rd party dependencies for Windows
338 - Added MATLAB interface
344 - Changes to fit CPACS-2.0 and TIGL-2.0.
350 - Using a more recent version of MSVC (2008)
351 - Adding a JAVA (OSGi) Bundle that allows easy usage of TIXI functions from java code to repository. Right now the most important functions are implemented
354 - tixiUpdateDoubleElement replaces an double element of a node
355 - tixiAddTextElementAtIndex could create a new element at a given position
361 - Many functions now print more informative error messages
362 - Added a Python wrapper for the C-code and DLL handling (no need to manually convert cpython variables to python)
365 - tixiUIDCheckLinks (new function) performs a check over all nodes with the uID "isLink"
366 and checks if the corresponding uid exists in that data set
369 - tixiRemoveAttribute does not remove an attribute
370 - tixiCheckAttribute does no longer write an error message when not finding attributes
376 - New function tixiUsePrettyPrint to make pretty print optional
377 - New UID helper functions:
378 - tixiUIDCheckDuplicates checks if all uID are unique
379 - tixiUIDGetXPath gives the XPath to a given uID
380 - tixiUIDCheckExists checks if a uID exists
381 - tixiUIDSetToXPath sets a uID to a given node
382 - tixiXPathEvaluateNodeNumber Evaluates a XPath expression and returns the number
383 of result nodes matching this xpath expression.
384 - tixiXPathExpressionGetTextByIndex Evaluates a XPath expression and returns
385 the text content of the resultnode matching this xpath expression.
387 - Bugfix in tixiAddTextAttributes. The function does now replace a attribute
388 if there is already one with the same name.
389 - Bugfix in tixiRemoveAttribute. The function does deletes a attribute from a node correctly.
390 - TIXI 64-Bit libs are available for linux.