On 2/4/08 2:48 PM, Daniel Aleksandersen wrote:
> On 2008-02-04 23:06, you wrote:
>> Aristotle Pagaltzis wrote:
>>> * Daniel Aleksandersen <[EMAIL PROTECTED]> [2008-02-04 
> 16:10]:
>>>> Why does so many in this list fail to eralise that I am talking
>>>> about the <feed> element’s <id> element?
>>> Ugh, sorry.
>>>
>>> Well, the point about atom:id being globally unique continues to
>>> apply in either case.
>>>
>>> However, I’m not sure what the feed ID really identifies, nor can
>> The Feed level atom:id is primarily useful as a logical group
>> identifier.  For instance, suppose you have a collection of Atom feed
>> documents representing a paged set.  Together, all of the entries
>> comprise a single logical group commonly identified by the atom:feed's
>> atom:id element.  If there was no atom:id element, there'd be no way of
>> grouping entries from multiple feed documents into a single logical
>> set.
> 
> Then why is this not written in any specifications?

I had always thought that intent was clear from the specification:


http://xml.resource.org/public/rfc/html/rfc4287.html#element.feed
"""
# atom:feed (The "atom:feed" Element) elements MUST contain exactly one atom:id 
"""

http://xml.resource.org/public/rfc/html/rfc4287.html#element.id
"""4.2.6.  The "atom:id" Element

The "atom:id (The "atom:id" Element)" element conveys a permanent, universally
unique identifier for an entry or feed.

atomId = element atom:id {
   atomCommonAttributes,
   (atomUri)
}

Its content MUST be an IRI, as defined by [RFC3987] (Duerst, M. and M. Suignard,
“Internationalized Resource Identifiers (IRIs),” January 2005.). Note that the
definition of "IRI" excludes relative references. Though the IRI might use a
dereferencable scheme, Atom Processors MUST NOT assume it can be dereferenced.

When an Atom Document is relocated, migrated, syndicated, republished, exported,
or imported, the content of its atom:id (The "atom:id" Element) element MUST NOT
change. Put another way, an atom:id (The "atom:id" Element) element pertains to
all instantiations of a particular Atom entry or feed; revisions retain the same
content in their atom:id (The "atom:id" Element) elements. It is suggested that
the atom:id (The "atom:id" Element) element be stored along with the associated
resource.

The content of an atom:id (The "atom:id" Element) element MUST be created in a
way that assures uniqueness.

Because of the risk of confusion between IRIs that would be equivalent if they
were mapped to URIs and dereferenced, the following normalization strategy
SHOULD be applied when generating atom:id (The "atom:id" Element) elements:

    * Provide the scheme in lowercase characters.
    * Provide the host, if any, in lowercase characters.
    * Only perform percent-encoding where it is essential.
    * Use uppercase A through F characters when percent-encoding.
    * Prevent dot-segments from appearing in paths.
    * For schemes that define a default authority, use an empty authority if the
default is desired.
    * For schemes that define an empty path to be equivalent to a path of "/",
use "/".
    * For schemes that define a port, use an empty port if the default is 
desired.
    * Preserve empty fragment identifiers and queries.
    * Ensure that all components of the IRI are appropriately character
normalized, e.g., by using NFC or NFKC.
"""

HTH,
Keith

Reply via email to