This proxy can be inherited with an XML file name parameter. It will only allow access to fields which corresponds to an "id" attribute value in the XML file :

class MyXml extends haxe.xml.Proxy<"my.xml", MyStructure> {

var h = new haxe.ds.StringMap<MyStructure>();
// ... fill h with "my.xml" content
var m = new MyXml(h.get);
// Access to "myNode" is only possible if you have an id="myNode" attribute
// in your XML, and completion works as well.


new(f:String ‑> T)