Hello,
I’m working on the Magritte-XMLBinding package. With this package you can export Magritte objects as XML and read Magritte described objects from XML. I would like to have a nice simple API that is easy to understand. I’m looking for some feedback.
Assume we have the following description:
MXPerson>>descriptionName
^MAStringDescription new
accessor: #name;
label: 'Name';
If we want to export the name property as a xml element we add the beXmlElement message. By default it will add an extra element with the accessor name as the element name and the value as the element contents:
<MXPerson>
<name>Pete</name>
</MXPerson>
Optionally we can specify an alternative xml element name:
description
beXmlElement;
xmlElementName: 'person-name'.
Or do you like this API better?
description
beXmlElement: 'person-name'.
The output:
<MXPerson>
<person-name>Pete</person-name>
</MXPerson>
It is also possible to store a property as an xml attribute of the parent element:
description
beXmlAttribute.
<MXPerson name='Pete'>
</MXPerson>
Or in a property of a separate element:
description
beXmlElementWithAttribute
<MXPerson>
<name value='Pete' />
</MXPerson>
The element and attribute names can be customized:
description
beXmlElementWithAttribute;
xmlElementName: 'xname';
xmlAttributeName: 'yvalue'.
OR:
description
beXmlElement: 'xname' withAttribute: 'yvalue'.