Mark Waschkowski wrote:
"That's true, but the JCR behavior seems harmless to me" re:setting null
causes property to be removed
Actually, this caused a problem for me. I needed to represent a node in xml,
and so created a transformation from a node to xml, but noticed early on
that if a property was set to null, my xml representation showed nothing at
all (no property name or value). This isn't acceptable when trying to output the state of something to the end user. So instead I had to create an

Well, that's a very absolute statement. I think it's a very natural way to output a state.

object
from the node and then create xml output for the object instead of just
transforming the node to xml. It appears to me to be an unnecessary step
forced on me due the the api. I don't understand why setting the property
value to null would also remove the property rather than just setting the
value to null.

Because the property model doesn't allow a value of "null". So yes, the API might be clearer if trying to set a value to null would throw an exception.

"I strongly disagree. Being absent, and having an empty string value are
completely different things. Font instance, you can't have a "null"
attribute value in XML."
Well, I agree that having an empty string value and being absent (and having a null value) are all completely different things. However, I do see removal
of the property itself as a side effect of setting the property to null.

No, it's the only effect.

Yes, 'null' doesn't really apply to attribute values, but:
1) Attributes can be empty ie. id=""
2) there IS a difference between an empty attribute and an attribute that
doesn't exist! See:

Yes. JCR properties can have the empty string as value as well or be not there. That's exactly the same as for XML attributes.

http://mail-archives.apache.org/mod_mbox/xerces-c-dev/200105.mbox/[EMAIL PROTECTED]

I looked at this but couldn't find how this is relevant. Maybe you could add a few sentences of explanation.

IMHO most people will, on first time use, expect that properties set to null
are still part of the node, just empty or nullified, and I don't see the
justification for having this unintuitive 'side effect' when setting the
property to null. But I certainly have an open mind about there is some
underlying reason for this behavior!

Again, the underlying reason is the data model for properties. And I can only guess that that wasn't chosen arbitrarily, but with compatibility with other property models in mind.

...

Best regards, Julian

Reply via email to