OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

camp message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [camp] Use of Cardinality for JSON array attributes


On 02/17/2013 03:41 AM, Alex Heneveld wrote:

Tom, All-

What about just having a boolean "required" in place of cardinality ?

Where the type is an array it is clear that multiple values might be
within the array.  But my read is that the "cardinality" is still either
0 or 1, so the combo of required + type.isArray gives the same
information, in a clearer way.  (I also think cardinality >1 could be
taken to mean that the _attribute_ might be listed twice, which is not
our intention.)

On a related note, I'd like to see the "mutability" attribute be made a
boolean (in 5.2.2) rather than having values "immutable" and "mutable".
Probably change the name of the field to be "mutable" rather than
"mutability".


See my comment in the issue https://tools.oasis-open.org/issues/browse/CAMP-34

The terms mutability and writable are problematic wrt semantics of PUT.
We ought to talk about 'changeability' of attributes.

-Anish
--

So 5.2.{1,2,3} would now be "Required", "Mutable", and "Writeable", all
booleans, nice and simple and consistent.

--A


On 17/02/2013 05:06, Mr. Tom Rutt wrote:
For some reason I could not get access to raise a new Jira issue.

I am sending this email for discussion before a formal issue is raised.

There are several attributes defined with an array type (e.g, String[]
. Link[])

These attribute definitions have various cardinality values,
including, 1, 0..1, or 0..*

It makes no sense for an array attribute to have cardinality 0..*, for
this implies multiple arrays in the JSON serialization.

In the case of 0..1 cardinality, Is there a difference in having an
array present with 0 elements, versus not having the array present?

In the case of 1 cardinality, is it allowed to have an array with 0
elements present for its serialization?

There does not seem to be a way to specify that an array should not be
present in the serialization with zero elements.  What is the
difference between no attribute in the serialization, verses an array
attribute with no elements?

Proposal:

Lets make the cardinality property of an attribute express the actual
semantics of presence.

If the cardinality is 1 it should imply that the attribute is always
present, and sent as a basic type value.

If the cardinality is 0..1, it should imply the attribute may be
present, and if present is sent as a basic type value.

If the cardinality is 1…*, it should imply that the attribute is
alwasy present and sent using an JSON array.  The type in the
definition should be the base type (e.g, change Link[] to Link in the
definitions of type)

If the cardinality is 0..1, it should imply that the attribute may or
not be present,  If present it is sent using a JSON array. It could be
constrained to not send empty arrays. The type in the definition
should be the base type (e.g, change Link[] to Link in the definitions
of type)




---------------------------------------------------------------------
To unsubscribe from this mail list, you must leave the OASIS TC that
generates this mail.  Follow this link to all your TCs in OASIS at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]