The inheritance of @xml:lang and @xml:base creates a lot of
complexities for an implementation. When they are used in combination
with atom:source, things get particularly bad.

Should we add some notes to the spec to remind people how to correctly
handle base and lang when atom:source-ifying entries?


A couple of the complexities are:

1) An @xml:base attribute declared on an entry might be relative to
the original feed's URI, or to @xml:base attributes on parent
elements. These need to be resolved before they can be copied across
into a second feed.

2) The source feed will have atom:entry as a child of atom:feed, but
the second feed will have atom:source as a child of atom:entry. This
switch in the hierarchy means that if the source feed contains an
@xml:lang tag on its entry, but not on its feed, you need to undeclare
@xml:lang on atom:source. Likewise, any @xml:base on atom:entry need
to be resolved because it can no longer be relative to the base of the
atom:feed element.

Eg:

  <atom:feed>
    <atom:title>Source feed</atom:title>
    ...
    <atom:entry xml:lang="de">
      <atom:title>Guten Tag</atom:title>
      ...
    </atom:entry>
  <atom:feed>

  
needs to be embedded as:

  <atom:feed>
    <atom:title>Second feed</atom:title>
    ...
    <atom:entry xml:lang="de">
      <atom:source xml:lang="">
        <atom:title>Source feed</atom:title>
        ...
      </atom:source>
      <atom:title>Guten Tag</atom:title>
      ...
    </atom:entry>
  <atom:feed>

-- 
Dave

Reply via email to