[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Categories and fixed="yes"
Yep, my apologies, y'all are right about what the spec actually says.
It was just a case of me really wanting it to say something else :-).
Unfortunately, at the time, this was one of those things that, at the
time, we only had a limited amount of experience with; not nearly enough
to craft a "complete" solution. This can likely be revisited and it is
possible that the app:categories element can be augmented using
extension attributes and elements that help achieve the goals we're
looking for.
- James
Andreas Sewe wrote:
>> Bill de hOra wrote:
>>> James M Snell wrote:
>>>> The categories element should be interpreted as only applying to the
>>>> "http://example.org/extra-cats/" scheme.
>>> There's no reasonable reading of the RFC that supports that.
>> To be clear - the scheme attribute exists solely so child category
>> elements without schemes can acquire it. It has no stated relation to
>> fixed, which is relative to the Collection.
>
> Right, app:categories/@scheme serves only as a default. There is no
> interaction with app:categories/@fixed, just as there is no well-defined
> interaction between multiple fixed attributes [1].
>
> Ironically, James raised the very same question Joe asks now in April
> [2]: is there a way to mandate that entries "can [...] contain any
> number of arbitrary atom:category elements that use no scheme at all"?
> The only difference is that James wanted the null scheme to be an open
> ended set, whereas Joe has a non-null scheme in mind.
>
> Unfortunately, my alternative proposal [3] which would have been able to
> support both Joe's and James's requirements didn't gain much support
> from the WG.
>
> <!-- James's open-ended set of categories in the null scheme: -->
> <app:categories>
> <app:any/>
> </app:categories
>
> <!-- Joe's open-ended set of categories in the "foo" scheme: -->
> <app:categories>
> <app:any scheme="foo"/>
> </app:categories>
> <!-- or (alternatively, using the default provided by
> app:categories/@scheme) -->
> <app:categories scheme="foo">
> <app:any/>
> </app:categories>
>
> IIRC, the above was deemed too complex whereas the RFC's text simply
> seemed to satisfy everybody as everybody interepreted it differently. ;-)
>
> So let's face it: app:categories/@fixed is not only poorly specified but
> also incapable of satisfying use cases like that of Joe and James.
>
> All that we can do now is live with it and reject entries which, while
> satisfying the service document's category definitions, do not conform
> to our expectations inexpressible by app:categories. I just fear that it
> means violating a SHOULD once in a while:
>
> The server MAY reject attempts to create or store members whose
> categories are not present in its categories list. A Collection that
> indicates the category set is open SHOULD NOT reject otherwise
> acceptable members whose categories are not in its categories list.
> The absence of an app:categories element means that the category
> handling of the Collection is unspecified. A "fixed" category list
> that contains zero categories indicates the Collection does not
> accept category data.
>
> Regards,
>
> Andreas
>
> [1] <http://www.imc.org/atom-protocol/mail-archive/msg09431.html>
> [2] <http://www.imc.org/atom-protocol/mail-archive/msg08999.html>
> [3] <http://www.imc.org/atom-protocol/mail-archive/msg09278.html> and
> <http://www.imc.org/atom-protocol/mail-archive/msg09296.html>
>