Создание гиперссылок в пользовательском медиа-типе

В настоящее время я создаю набор пользовательских типов мультимедиа для API RESTful (например, application / vnd.mycompany.foo + xml) и пытаюсь выявить плюсы и минусы двух разных способов раскрытия гипермедиа-ссылок.

Если я сначала рассмотрю, что делают другие типы медиа, то, пожалуй, лучше всего начать с HTML. HTML позволяет мне создавать ссылки, такие как:

<image src="http://example.com/image.gif"/>
<a href="http://example.com/page.html"/>
<form action="http://example.com/page.html"/>
<link rel="stylesheet" type="text/css" href="theme.css" />

Интересно то, что в некоторых случаях есть некоторые специальные теги, которые имеют атрибут url, а затем есть общий тег link, который использует атрибут rel для определения отношения.

В AtomPub есть также несколько способов, которыми ресурсы связаны друг с другом.

<collection href="http://example.org/blog/main" >
         <atom:title>My Blog Entries</atom:title>
         <categories href="http://example.com/cats/forMain.cats" />
</collection>

<atom:category scheme="http://example.org/extra-cats/" term="joke" />
<atom:entry>
   <link rel="edit" href="http://example.org/edit/first-post.atom"/>
</atom:entry>

Вопрос, который я задаю, состоит в том, когда имеет больше смысла использовать элемент ссылки со связью, а когда имеет смысл добавить атрибут к существующему элементу.

например ссылки AtomPub могли быть сделаны

<collection>
      <link rel="source" href="http://example.org/blog/main"/>
         <atom:title>My Blog Entries</atom:title>
         <categories>
                <link rel="source" href="http://example.com/cats/forMain.cats"/>
         </categories>
</collection>

<atom:category term="joke">
     <link rel="scheme" href="http://example.org/extra-cats/"/>
<atom:category>
<atom:entry edit="http://example.org/edit/first-post.atom"/>

Как это часто бывает, при написании этого вопроса ответ кажется очевидным. Обязательные ссылки отображаются как атрибуты, а необязательные - как элементы. Однако мне было бы очень интересно услышать мнение других людей о том, как, по их мнению, должны быть представлены ссылки.

Ответы на вопрос(3)

Ваш ответ на вопрос