webentwicklung-frage-antwort-db.com.de

Bedeutung des HTML-Präfix-Attributs (Open Graph Protocol)?

Ich bin neu in Facebook Open Graph Protocol . Ich habe versucht herauszufinden, was die Bedeutung des HTML-Attributs prefix ist. Der nächste Beitrag zu Stack Overflow, der sich mit diesem Thema befasst, ist dieser Beitrag , der sehr hilfreich war, da er sich mit den Unterschieden zwischen den verschiedenen möglichen Syntaxen und den zu verwendenden befasst.

Der Beitrag sagt jedoch nichts darüber aus, was dieses prefix Attribut ist oder was es tut. AFAIK Dies ist kein Standard-HTML-Attribut. Ich konnte dieses Dokument finden, in dem das W3C meines Erachtens dieses Attribut definiert, aber keinen Sinn daraus machen konnte.

Könnte mir bitte jemand erklären:

  1. Was macht das prefix Attribut?

  2. Kann ich schreiben

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

    anstatt von

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

    oder wäre das ein syntaxfehler?

  3. Kann ich für ein bestimmtes HTML-Tag mehrere prefix -Attribute angeben?

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

    Nach meinen HTML-Kenntnissen wäre dies falsch, aber dann ist prefix ein nicht standardmäßiges Attribut. Was ich vielleicht wissen möchte, ist, kann ich schreiben:

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

    oder ist die Angabe mehrerer Präfixe an einer beliebigen Stelle im HTML-Baum aus irgendeinem Grund nicht sinnvoll?

  4. Wenn dieses prefix -Tag nicht Teil der HTML-Spezifikation ist, wie würde das Senden einer Seite, die dieses Attribut enthält, an eine Codeüberprüfung jemals dazu führen, dass mein Code den Standards entspricht?

Vielen Dank für die Beantwortung meiner Fragen.

36
John Sonderson

Zuerst:

prefix ist one der Attribute, die durch die Erweiterung RDFa (Resource Description Framework in Attributes) definiert sind. RDFa wird verwendet, um das Semantic Web in Webseiten zu implementieren, die in vielen Auszeichnungssprachen wie HTML und XML dargestellt werden. Anstatt eine Webseite zu haben, die dem Browser sagt, wie sie aufgebaut sein soll, können Sie jetzt auch was die Seite darstellt sagen, wie eine Person, eine Produktliste usw.

Und damit Sie Daten auf Ihrer Webseite semantisch darstellen können, müssen Sie ein semantisches Vokabular verwenden, das dem Browser genau sagt, was auf Ihrer Seite dargestellt wird. Ein populäres semantisches Vokabular ist schema.org .

Aber manchmal kann ein einzelnes semantisches Vokabular nicht alle Ihre Webseiten darstellen und beschreiben. Hier kommt das prefix Attribut ins Spiel:

Was macht das prefix Attribut?

Mit dem Attribut prefix können Sie ein oder mehrere verwendete semantische Vokabulare angeben. Im folgenden Beispiel werden zwei Vokabulare verwendet, um eine Person darzustellen, die ein Lieblingstier: schema.org und Vokabular) .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>

Kann ich <html prefix="og:http://ogp.me/ns#"> Anstelle von <html prefix="og: http://ogp.me/ns#"> Schreiben oder wäre das ein Syntaxfehler?

Abgesehen davon, dass Sie mit der vorherigen Syntax keine Beispiele im Web finden können, können Sie anhand der Spezifikation von RDFa Core sehen, dass mindestens ein Leerzeichen in der Tat obligatorisch ist:

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

Kann ich für ein bestimmtes HTML-Tag mehrere prefix -Attribute angeben?

Ja, du kannst. Aus der oben angegebenen Spezifikation des Attributs prefix und aus vielen Beispielen in der Spezifikation des RDFa Core ist Folgendes zulässig:

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

Wenn dieses prefix -Tag nicht Teil der HTML-Spezifikation ist, wie würde das Senden einer Seite, die dieses Attribut enthält, an eine Codeüberprüfung jemals dazu führen, dass mein Code den Standards entspricht?

Wie von @wensveen erwähnt, HTML5 unterstützt die RDFa-Attribute sofort .

34
tayllan

Es scheint, dass das Präfixattribut tatsächlich in der von Ihnen verknüpften RDFa-Spezifikation definiert ist. Während Sie den richtigen Medientyp für XHTML-Dokumente angeben müssen (application/xhtml+xml) und der richtige Doctype (<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd">) und wahrscheinlich einige weitere XML-Push-ups, dies ist für HTML5 nicht erforderlich. In HTML5 können Sie die von RDFa definierten Attribute sofort verwenden.

Siehe: HTML + RDFa 1.1-Spezifikation

Ich weiß nicht, ob es bestimmte Vorteile dieser Art der Zuordnung eines Präfixes zu einem Namespace gibt. Mir ist das auch nicht ganz klar.

2
wensveen