Is there a way to do something similar to KVC but use the message name as the key itself? For example, rather than `valueForKey:`, is there a way for an object to respond to all messages?

For example, say you have an XML document:

```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ...>
<employees>
  <employee>
    <name>Bill</name>
    <department>Accounting</department>
  </employee>
  <employee>
    <name>John</name>
    <department>Human Resources</department>
  </employee>
</employees>

```

Besides using the already-available NSXMLDocument and co., would there be a way to implement some sort of abstraction so you could do:

```
MyXML *xmlDoc = [[MyXML alloc] initWithContentsOfFile:@"test.xml"];

NSLog (@"%@", [[[xmlDoc employees] first] department]);

[[[xmlDoc employees] first] setDepartment:@"Management"];

```

I chose XML just as an example, but I want to know whether this is possible at all, and whether or not it involves getting too close to the Objective-C runtime or whether it is supported by the runtime itself, and how I would go about implementing something like this. This is purely for experimental purposes and I understand that there will likely be significant performance costs.

**EDIT:**  

If possible, I'd like to avoid existing frameworks such as Cocoa and use the base Objective-C object `Object`.