I am creating an initialization file for my upcoming plugin. This file will allow the user to specify a path to a keyfile (currently by calling FileChooser), and may copy the data from the keyfile over - I haven’t decided yet.
Anyway, the initialization file is XML. I was planning on using an element for the path to the keyfile. For whatever reason, when I create a local XmlElement, store the path as an attribute, and then read out this attribute, the path can be read as a properly formatted String. However, if I try to use an element, via setText() and getAllSubText(), the path shows up as blank. Any idea what is going on here?
Also, I had planned on using writeToFile() once I have added the path to the original XmlElement that I derived from my XML initialization file. There is an argument for which DTD to use. My XML file is pretty simple, and not based on any schema, so what should I put in there? Can I leave this blank, or just put in some dummy schema? If not, what should I do?
Text elements are fundamentally different from attributes - you can’t just treat them as key/value pairs like you can with attributes (although a lot of XML is written in that style). To make it easier to use them like that, I added the createTextElement() and getChildElementAllSubText() utility methods, so you can do things like:
And, while I’m here, do you think that using attributes for my path (and serial number/keyfile) would be a better idea than elements? I was wanting a document that makes sense when I read it, and I have always used elements in my XML, but if attributes make more sense for Juce, that is fine with me.
Sorry, I obviously just typed “.” when it should have been “->”
If it doesn’t matter what your xml looks like then yes, attributes are easier. Or use a ValueTree, or even a PropertiesFile instead, which all get saved as xml anyway.