.. _advanced.base: Relative Link Resolution ======================== Many feed elements and attributes are :abbr:`URI (Uniform Resource Identifier)`\s. :program:`Universal Feed Parser` resolves relative :abbr:`URI (Uniform Resource Identifier)`\s according to the `XML:Base `_ specification. We'll see how that works in a minute, but first let's talk about which values are treated as :abbr:`URI (Uniform Resource Identifier)`\s. Which Values Are :abbr:`URI (Uniform Resource Identifier)`\s ------------------------------------------------------------ These feed elements are treated as :abbr:`URI (Uniform Resource Identifier)`\s, and resolved if they are relative: * :ref:`reference.entry.author_detail.href` * :ref:`reference.entry.comments` * :ref:`reference.entry.contributors.href` * :ref:`reference.entry.enclosures.href` * :ref:`reference.entry.id` * :ref:`reference.entry.license` * :ref:`reference.entry.link` * :ref:`reference.entry.links.href` * :ref:`reference.entry.publisher_detail.href` * :ref:`reference.entry.source.author_detail.href` * :ref:`reference.entry.source.contributors.href` * :ref:`reference.entry.source.links.href` * :ref:`reference.feed.author_detail.href` * :ref:`reference.feed.contributors.href` * :ref:`reference.feed.docs` * :ref:`reference.feed.generator_detail.href` * :ref:`reference.feed.id` * :ref:`reference.feed.image.href` * :ref:`reference.feed.image.link` * :ref:`reference.feed.license` * :ref:`reference.feed.link` * :ref:`reference.feed.links.href` * :ref:`reference.feed.publisher_detail.href` * :ref:`reference.feed.textinput.link` In addition, several feed elements may contain :abbr:`HTML (HyperText Markup Language)` or :abbr:`XHTML (Extensible HyperText Markup Language)` markup. Certain elements and attributes in :abbr:`HTML (HyperText Markup Language)` can be relative :abbr:`URI (Uniform Resource Identifier)`\s, and :program:`Universal Feed Parser` will resolve these :abbr:`URI (Uniform Resource Identifier)`\s according to the same rules as the feed elements listed above. These feed elements may contain :abbr:`HTML (HyperText Markup Language)` or :abbr:`XHTML (Extensible HyperText Markup Language)` markup. In Atom feeds, whether these elements are treated as :abbr:`HTML (HyperText Markup Language)` depends on the value of the type attribute. In :abbr:`RSS (Rich Site Summary)` feeds, these values are always treated as :abbr:`HTML (HyperText Markup Language)`. * :ref:`reference.entry.content.value` * :ref:`reference.entry.summary` (:ref:`reference.entry.summary_detail.value`) * :ref:`reference.entry.title` (:ref:`reference.entry.title_detail.value`) * :ref:`reference.feed.info` (:ref:`reference.feed.info_detail.value`) * :ref:`reference.feed.rights` (:ref:`reference.feed.rights_detail.value`) * :ref:`reference.feed.subtitle` (:ref:`reference.feed.subtitle_detail.value`) * :ref:`reference.feed.title` (:ref:`reference.feed.title_detail.value`) When any of these feed elements contains :abbr:`HTML (HyperText Markup Language)` or :abbr:`XHTML (Extensible HyperText Markup Language)` markup, the following :abbr:`HTML (HyperText Markup Language)` elements are treated as :abbr:`URI (Uniform Resource Identifier)`\s and are resolved if they are relative: * * * *