Another way is to set your component to have no schema so it just takes an object. There is no API to have a "wildcard" schema yet, but one way is to have a property type that parses the inline-CSS-like string with the styleParser:
AFRAME.registerComponent('foo', {
schema: {
parse: AFRAME.utils.styleParser.parse
}
});
The above component is a single-property schema, so whatever object we pass will become the value of this.data
:
el.setAttribute('foo', {bar: 'baz', qux: 'qaz', whateverWeWant: true});
Or:
<a-entity foo="bar: baz; qux: qaz: whateverWeWant: true"></a-entity>