Native XML support would be nice and allow for yet another way of storing data. This however would allow for some unquie storage routines since an XML tag can hold many attributes for an item, and data. As well, theres the hierarchy which could make for items having child objects in which they are all related. Heres a conceptual view:
/xmlcreate <database name> <filename> [attribute one] [attribute one data] .... [attribute five] .... [data]
this creates a XML root tag which is the name and start of the database tree. If you use the command on the same filename but the <database name> is different this add's an additional database to the file.
/xmlfree <database name> <filename>
Removes the entire matching xml database from a file
/xmladd -c <database name> <filename> <parent item> <item> [attribute one] [attribute one data] .... [attribute five] .... [data]
this would add a new XML item to the specified database. The -c switch is for adding the new XML item under a specific parent XML item (adding a child item).
/xmlrem [-c] <database name> <filename> <parent item> <item> [attribute one] [attribute one data] ... [attribute five] ... [data]
this would remove a child or parent item (child item if switch is -c) from a database. If the optional parameters are supplied it would remove a givin attribute or the data from the XML item. If a parent XML item is removed, all child items within it are removed as well.
/xmlmod [-c] <database name> <filename> <parent item> <item> <attribute one> [attribute one data] .... [attribute five] .... [data]
this would modify data from any XML item such as attributes or data. If -c isnt specified it modifies the givin parent item.
Identifiers:
$xml(filename,database,[name/N],[attribute name/N])
returns $true/$false if database exists or not. If name/N is specified it returns the name or Nth item if it exsists. If it doesnt it returns $null. If name/N exists and attribute N is specified, It returns the Nth attribute name. You can use the .attrib property to get the data for that specific attribute
the $xml identifier also has these properties:
attrib = get attirubte data for an N item
data = get data associated with an item
element = returns item name
Other identifiers could be used for searching through the XML database as well. I'll stop with the detail because im sure my comments have been in-depth enough. Thanks
(Note: I know XML support can be done via a DLL currently, but native support would be very handy)