Подтвердить что ты не робот

Значение атрибута префикса HTML (Open Graph Protocol)?

Я новичок в Facebook Open Graph Protocol. Я пытался выяснить, что означает значение атрибута HTML prefix. Ближайший пост в Stack Overflow, который я мог найти, касался этого вопроса этот пост, который был очень полезен, поскольку он касается того, что различия между различными возможными синтаксисами и какой для использования.

Однако сообщение ничего не говорит о том, что этот атрибут prefix или что он делает. AFAIK это не стандартный атрибут HTML. Мне удалось найти этот документ, который, по моему мнению, является тем, где W3C определяет этот атрибут, но не смог его понять.

Не мог бы кто-нибудь объяснить мне:

  • Что делает атрибут prefix?

  • Могу ли я написать

    <html prefix="og:http://ogp.me/ns#">

    вместо

    <html prefix="og: http://ogp.me/ns#">

    или это будет синтаксическая ошибка?

  • Можно ли включать несколько атрибутов prefix для любого заданного тега HTML?

    <head prefix="a: http://www.aaa.com/ns#" prefix="b: http://www.bbb.com/ns#">

    Основываясь на моих знаниях HTML, это было бы неправильно, но тогда prefix является нестандартным атрибутом. Поэтому, возможно, мне хотелось бы знать, могу ли я написать:

    <head prefix="a: http://www.aaa.com/ns# b: http://www.bbb.com/ns#">

    или задание нескольких префиксов в любом месте в дереве HTML не имеет смысла по какой-либо причине?

  • Если этот тег prefix не является частью спецификации HTML, как бы передать страницу, содержащую этот атрибут, в средство проверки кода, когда-либо результат, когда мой код соответствует стандартам?

Спасибо, что ответили на мои вопросы.

4b9b3361

Ответ 1

Первый:

prefix является одним из атрибутов, определенных расширением RDFa (Resource Description Framework in Attributes). RDFa используется для реализации Semantic Web на веб-страницах, представленных во многих языках разметки, таких как HTML и XML. Вместо того, чтобы веб-страница рассказывала браузеру о том, как он должен быть структурирован, теперь вы также можете рассказать ему, что представляет страница, например, Лицо, Список продуктов и т.д.

И для того, чтобы вы могли семантически представлять данные на своей веб-странице, вам нужно использовать семантический словарь, который сообщает браузеру точно: что представлено на вашей странице. Популярным семантическим словарем является schema.org.

Но иногда особая семантическая лексика не может представлять и описывать всю вашу веб-страницу. Это где атрибут prefix входит в:

Что делает атрибут prefix?

Атрибут prefix позволяет указать один или несколько семантических словарей, которые используются. В следующем примере используются два словаря для представления лица, у которого есть любимый Animal: schema.org и vocab.org.

<p vocab="http://schema.org/" prefix="ov: http://open.vocab.org/terms/" resource="#manu" typeof="Person">
    My name is <span property="name">MY_NAME</span>

    and my telephone is <span property="telephone">MY_TELEPHONE</span>.

    My favorite animal is the <span property="ov:preferredAnimal">FAVORITE_ANIMAL</span>.
</p>

Могу ли я написать <html prefix="og:http://ogp.me/ns#"> вместо <html prefix="og: http://ogp.me/ns#"> или это будет синтаксическая ошибка?

Кроме того, из-за невозможности найти какие-либо примеры в Интернете с использованием прежнего синтаксиса, из спецификации ядра RDFa вы можете видеть, что по крайней мере одно пространство действительно является обязательным:

prefix
    a white space separated list of prefix-name IRI pairs of the form
    NCName ':' ' '+ xsd:anyURI

Можно ли включить несколько атрибутов prefix для любого заданного тега HTML?

Да, ты можешь. Из спецификации атрибута prefix приведенного выше, и из множества примеров, приведенных в спецификации ядра RDFa, допускается следующее:

<html
    prefix="foaf: http://xmlns.com/foaf/0.1/
            dc: http://purl.org/dc/terms/"
>
    <!-- your page -->
</html>

Если этот prefix тег не является частью спецификации HTML, как бы передать страницу, содержащую этот атрибут, в средство проверки кода, когда-либо результат, когда мой код соответствует стандартам?

Как уже упоминалось в @wensveen, HTML5 поддерживает атрибуты RDFa из коробки.

Ответ 2

Кажется, что атрибут prefix действительно определен в связанной с RDFa спецификации. Хотя вам нужно указать правильный тип медиафайла для документов XHTML (application/xhtml+xml) и правильный doctype (<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">) и, возможно, еще несколько отжиманий XML, это не обязательно для HTML5. В HTML5 вы можете использовать атрибуты, определенные RDFa, из коробки.

Смотрите: спецификация HTML + RDFa 1.1

Я не знаю, есть ли какие-либо конкретные преимущества этого способа сопоставления префикса в пространстве имен. Мне это не совсем понятно.

Ответ 3

Мой понятный префикс используется для пространства имен XML, поправьте меня, если я ошибаюсь. почему HTML-страница нуждается в пространстве имен XML? Я предполагаю, что роботам или паукам проще понять вашу страницу.