[Bug 12112] New: MaxCharacters behavior is ambiguous

http://www.w3.org/Bugs/Public/show_bug.cgi?id=12112

           Summary: MaxCharacters behavior is ambiguous
           Product: WS-Resource Access
           Version: CR
          Platform: PC
        OS/Version: Windows NT
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Enumeration
        AssignedTo: public-ws-resource-access-notifications@w3.org
        ReportedBy: nathan.burkhart@microsoft.com
         QAContact: public-ws-resource-access-notifications@w3.org


The WS-Enumeration spec says the following about the processing of the
MaxCharacters element in Section 4.1:

"It can happen that the next item the data source would return to the consumer
is larger than MaxCharacters. In this case, the data source MAY skip the item,
or MAY return an abbreviated representation of the item that fits inside
MaxCharacters. If the data source skips the item, it MAY return it as part of
the response to a future Enumerate request with a larger value of
MaxCharacters, or it MAY omit it entirely from the enumeration. If the
oversized item is the last item to be returned for this enumeration context and
the data source skips it, it MUST include the wsen:EndOfSequence item in the
Enumerate response and invalidate the enumeration context."

The text says that a skipped item MAY be returned in response to a subsequent
Enumerate request with the same Context.  This implies that when the element(s)
get skipped the EnumerateResponse would contain a valid Context and *no*
EndOfSequence element.  However, it says that if the "last item to be returned"
is skipped then the EnumerateResponse MUST contain the EndOfSequence element
and invalidate the Context (so a future Enumerate response could not come back
and retrieve it).

Assume an enumeration has two elements that each take up ~50 characters, and
Maxcharacters==75 and MaxElements==10.  There are two interpretations that both
appear to be valid according to the spec:

1. Return one item along with an EndOfSequence element.  The second item can
never be retrieved.

2. Return one item. Leave the second item to be returned in response to a
subsequent Enumerate request.

The first interprets the "last item to be returned" as literally the last in a
sequence of items.  The second interprets the spec to say that if there are
items left but an Enumerate request fails to retrieve any of them, in that case
it will return the EndOfSequence (because the assumption is that the next
Enumerate request would retrieve more items).

Both sound like reasonable interpretations -- the spec should make it clear if
beahavior #1, behavior #2, or both are valid implementations.

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.

Received on Thursday, 17 February 2011 17:42:18 UTC