We started a new MBS Xojo XML Plugin to provide you an alternative to the built-in XML classes in Xojo. The plugin is based on the xerces-c library and over time we will add more features. For now we have already 30 classes to cover the basic XML handling. The plugin supports unicode, handles memory management for you and uses exceptions to report errors. Performance is quite good and we have some special functions like ElementsByTagName() to speed up common operations.
The XMLParserMBS class can customize the parsing process with configuration options. You can filter the nodes while you parse and configure which nodes to ignore. When serializing the XML, you can apply filter and various options to generate the XML as you need.
With XMLTreeWalkerMBS and XMLNodeIteratorMBS we have two powerful classes to walk over a XML tree and visit nodes. We support for-each loops in Xojo with our various iterate classes. You can loop over the child elements in an element and over the attributes and child nodes in a node.
For our MongoDB plugin we got a few new features: We can now run InsertMany method to insert an array of documents or a JSON Array with documents and be quicker than running InsertOne for ewach of them. We added some new methods for cursor to query the error document and to build a cursor from a reply. We added Rename function for MongoCollectionMBS and provide a FindIndexes function to lookup what indexes exist.
We support iOS better with implementing DirectorySizeMBS and DNSServiceMetaQueryMBS classes and CopyPicture method in NSImageMBS for iOS.
Our ScintillaControlMBS got a border for Windows and a new Prepare event to set a few properties before the control is created.
For Windows we improved our ARM support. In SerialPortMBS class the WinRTSControl property allows you to control RTS line state directly.
The CURLSMBS class got new properties to control mime option flags, a new setting for the maximum life time connection and a property for the SHA256 hash of a SSH Host public key. We enabled zstd support for CURL in case a server uses that for compression.
For MacOS we added new events to NSPopoverMBS class to handle detached popovers better. In NSFontMBS class we added monospace system font query functions.
Finally we updated our Chromium based classes to a newer Chromium version, CURL to version 7.85.0, DynaPDF to 188.8.131.52 and SQLite to version 3.39.2.
See release notes for a complete list of changes.