2013-02-26 13 views
8

Es gibt zwei "generische" Arten von Metadaten-Tags in DITA, dem Datenelement und dem Schlüsselwortelement. Natürlich gibt es auch das andere, aber anscheinend soll das bald veraltet sein, und der Name deutet auf eine Art letzten Ausweg hin.Schlüsselwort und Datenmetadaten in DITA?

So scheint das Schlüsselwort Tags in Web-Anwendungen zu ähneln, d. H. Was üblicherweise für "Folksonomies" verwendet wird. Aber was ist der genaue Unterschied zwischen Daten und Schlüsselwort, und wann sollten Sie welches verwenden?

Antwort

3

Das <data> Element ist in erster Linie für Spezialisierung, so dass es wahrscheinlich nicht ratsam ist, es direkt zu verwenden. Das <keyword> Element ist besser. Diese

:

<metadata> 
     <keywords> 
      <keyword>red</keyword> 
      <keyword>green</keyword> 
      <keyword>blue</keyword> 
     </keywords> 
    </metadata> 

dazu machen wird in der DITA-OT XHTML-Transformation:

<head> 
    <meta name="DC.subject" content="red, green, blue"/> 
    <meta name="keywords" content="red, green, blue"/> 
</head> 

Wenn Sie Tags hinzufügen möchten, würde ich Verwenden Sie Subjektschema-Maps, mit denen Sie eine Liste von kontrollierten Werten hinzufügen können.

Wenn Sie das Attribut @base oder @props spezialisieren, können Sie Metadaten mit viel mehr Kontrolle hinzufügen. Hier haben wir ein @props Attribut spezialisiert auf @era.

Sie können dann das Attribut @era zu einem Element in einem Zweig oder zum Element <topicref> in einer Karte hinzufügen.

<subjectdef keys="era_attributedef"> 
    <topicmeta> 
    <navtitle>Era of production by decade and producer</navtitle> 
</topicmeta> 

<subjectdef keys="producer"> 
    <hasInstance> 
     <subjectdef keys="sixties"> 
      <subjectdef keys="verity_lambert"/> 
      <subjectdef keys="john_wiles"/> 
      <subjectdef keys="innes_lloyd"/> 
      <subjectdef keys="peter_bryant"/> 
      <subjectdef keys="derrick_sherwin"/> 
     </subjectdef> 

     <subjectdef keys="seventies"> 
      <subjectdef keys="barry_letts"/> 
      <subjectdef keys="philip_hinchcliff"/> 
      <subjectdef keys="graham_williams"/> 
     </subjectdef> 

     <subjectdef keys="eighties"> 
      <subjectdef keys="john_nathan-turner"/> 
     </subjectdef> 
    </hasInstance> 
</subjectdef> 

<enumerationdef> 
    <attributedef name="era"/> 
    <subjectdef keyref="era_attributedef"/> 
</enumerationdef> 
+0

Nun, ich stimme Ihnen zu, dass ich auch zu der Verwendung des Schlüsselwortelements für generische Metata neigen, aber das ist die Verwirrung. Ich weiß, dass das Datenelement für die Spezialisierung bestimmt ist, aber anscheinend nicht nur das. In Eliot Kimbers Buch DITA for Practitioners heißt es, dass Daten das primäre Element sind, "um beliebige Metadaten zu speichern". Ich glaube also nicht, dass die Unterscheidung sehr klar ist. Bezüglich des subjectScheme, das betrifft hauptsächlich Attribute und beantwortet diese Frage nicht ganz. – Anders

+0

Ich erinnere mich an das Lesen eines DITA CMS mit selbst während des Renderings. Ich füge mehr zur Antwort hinzu, wenn ich die Quelle finde. –

1

Das Datenelement hat die @href und die @name @value und Attribute, die den Schlüssel.

Sie können also jede Eigenschaft definieren, die Sie für Ihren Build benötigen.

<data name="currentTopNavSection" value="profil"/> 

Ich habe ein paar Szenarien, in denen ich einige Pfadinformationen abhängig von der Zielgruppe meiner Dokumentation bereitstellen muss. Ich kann das Datenelement dafür verwenden.

<data audience="lifeg" name="active-audience" value="lifeg"/> 

Dieses ermöglicht es mir, zu wissen, welche das aktive Publikum ist, wenn ich die Dokumentation filtern

Ein anderes Beispiel wäre ein Javascript zu befestigen, die auf einer Karte spezifisch sein würde

Ich arbeite gerade an einer Webmap-Spezialisierung, wo ich spezialisierte Daten für Javascript und CSS habe.

* Update 2 *

das Datenelement verschachtelt werden. Eliot Kimber erklärt dies in einem Beitrag. Ich kann mich nicht erinnern, welches.Die Idee ist, dass es eine Sammlung von Eigenschaften darstellen kann

<data name="parent"> 
     <data name="chilproperty1" value="abc"/> 
     <data name="chilproperty2" value="abc"/> 
    </data> 

Diese Struktur ist sehr nützlich für Spezialisierungszwecke.

In meinem Verständnis ist das Datenelement nicht spezifisch. Es ist eine Möglichkeit für Autoren, sehr spezifische Bedürfnisse, spezialisiert oder nicht, zu dokumentieren. Es ist einfach, die Werte später im Build-Prozess mit xsl abzurufen.

+0

Sie haben Recht, vergessen Sie diesen Unterschied, das ist natürlich ein Indikator für ihre jeweiligen unterschiedlichen Absichten.Ich wünschte immer noch, dass dies in der Spezifikation besser dokumentiert wurde. – Anders

+0

Vergessen Sie, über die @keyref zu sprechen, was sehr nützlich sein könnte – Bertrand

3

Sie sind ein wenig abseits der Strecke; Das Schlüsselwortelement ist KEIN Metadatenelement. Das Schlüsselwortelement ist ein allgemeines Textelement, das häufig für Produktnamen verwendet wird. Ich denke, das Element, das Sie wahrscheinlich hier angeben wollten, war das keywords-Element. Außerdem wollen Sie das andere Meta-Element wirklich nicht abschreiben; es ist nicht veraltet und ziemlich nützlich.

Schlüsselwörter Element

Die Schlüsselwörter Element kann entweder auf das Thema oder Karten Ebene verwendet werden. Es enthält eine Liste von Begriffen aus einem Fachvokabular, die entweder mit dem Schlüsselwort oder den indexterm-Elementen versehen sind. Die Elemente keyword und indexterm werden als Metadatenelemente betrachtet und sollten in der Ausgabe entsprechend dem Medium angezeigt werden. Die indexterm-Elemente erzeugen üblicherweise Indizes; Bei der XHTML-Ausgabe werden die Schlüsselwortelemente im Allgemeinen dem XHTML hinzugefügt und für die Suchmaschinenoptimierung verwendet. (Dies ist Standardfunktionalität der DITA-OT, obwohl die freien PDF-Rendering-Engine, die Schiffe mit dem DITA-OT keinen Index erzeugt.)

Datenelement

gebraucht, wie sie ist, die Daten element repräsentiert eine Eigenschaft innerhalb eines DITA-Themas oder einer DITA-Map. Die folgenden sind die wichtigsten Aspekte:

  • Der Betreff der Eigenschaft ist das Element, das das Datenelement enthält. Wenn die Eigenschaft für ein Thema als Ganzes gilt, sollte sie in das Thema prolog-Element oder in ein topicmeta-Element in einer topicref gehen, das auf das Thema verweist.
  • Das Attribut @name des Datenelements ist die primäre Kennung für Prozessoren.
  • Der Wert der Eigenschaft kann auf verschiedene Weise ausgedrückt werden:
    • Textwert, ausgedrückt oft das @value Attribut
    • Verweis auf eine andere Ressource (Thema, Bild, Web-Ressource, etc.), mit das Attribut @href
    • komplexe Struktur, die von verschachtelten Datenelementen
  • Sie können ein optionales Titelelement verwenden, um ein Etikett für Eigenschaft zusammengesetzt ist.

Standardmäßig ignorieren Prozessoren den Inhalt von Datenelementen. Es kann jedoch eine benutzerdefinierte Verarbeitung erstellt werden, die den Inhalt bestimmter Datenelemente zum Formatieren usw. verwendet.

Als Basis für die Spezialisierung ist das Datenelement besonders nützlich. Es ermöglicht präzisere Semantiken sowie Aufzählungen von kontrollierten Listen von Attributen für bestimmte Elemente. Sie können viele Beispiele für seine Verwendung als Spezialisierungsbasis sehen, wenn Sie die in der Bookmap verwendeten Metadatenelemente untersuchen und & Trainingsspezialisierungen erlernen.

Siehe die data element topic in the DITA 1.2 specification für einige konkrete Beispiele.

othermeta Element

Das othermeta Element ausgelegt ist, Inhalte zu halten, für die kein vorhandenes Metadaten-Element anzuwenden scheint. Es enthält im Wesentlichen ein Name-Wert-Paar. Sie verwenden das @ name-Attribut, um die Eigenschaft zu benennen, und das @ content-Attribut, um den Wert zu speichern.

Wann sollten Sie welches Element verwenden?

  • Verwenden Sie die Schlüsselwörter Element Indexbegriffe und Schlüsselwörter angeben, die zu einem bestimmten Thema gelten, vor allem, wenn der Inhalt des Elements Schlüsselwort in der erzeugten Ausgabe verwendet werden soll.
  • Verwenden Sie das Element data, um Eigenschaften in ein DITA-Thema oder eine DITA-Map einzubetten, insbesondere als Hilfe für die benutzerdefinierte Verarbeitung oder zum Ernten von Eigenschaften für die automatisierte Verarbeitung.
  • Verwenden Sie das Daten Element als Grundlage für die Spezialisierung.
  • Verwenden Sie das Element othermeta, um Namen und Wertepaare zu halten, für die ein semantisches Element nicht existiert.
+0

Danke, aber ich stimme nicht ganz mit allem überein. Ich weiß, dass das Schlüsselwort auch als Wiederverwendungselement verwendet wird, ähnlich wie eine Variable, aber das Problem ist, dass es auch als Metadatenelement verwendet wird, wie aus der Spezifikation hervorgeht: "Alle Elemente oder im Metadatenelement werden berücksichtigt Teil der Metadaten des Themas ". Und auch daran, dass es Teil des Metadatenelements im Prolog ist ... Aber vielleicht ist das ein Teil der Verwirrung um dieses Element, dass es für andere Zwecke verwendet wird? +1 für den Tipp über die Nutzung der Daten durch die Lernspezialisierung. – Anders

+0

Die Sache mit anderen Meta angeblich veraltet kann ich nicht bestätigen, aber ich las es in einem Beitrag von Eliot Kimber (http://tech.groups.yahoo.com/group/dita-users/message/29812), wo er tatsächlich sagte es war veraltet, aber ich weiß es nicht wirklich. Vielleicht könnte er etwas Licht in die Sache bringen ... Ich finde es auf jeden Fall nicht sehr nützlich, wie ich bereits sagte, schon der Name deutet darauf hin, dass es ein letzter Ausweg ist. Ich würde lieber das Datenelement verwenden, sogar unspezialisiert, in solch einem Fall, da es Namen- und Wertattribute hat, ziemlich genau wie der Name und Inhalt von anderen Meta. – Anders

1

Der genaue Unterschied? Es gibt viele Unterschiede. Lesen Sie die Spezifikation (Entschuldigung, ich will nicht unfreundlich klingen).

Hier ist ein Unterschied von der Spezifikation, die bereits erwähnt wurde, aber ich denke, es lohnt sich hervorzuheben, weil es Ihnen helfen könnte zu entscheiden, welche zu verwenden (oder besser, entscheiden Sie, ob < Daten> verwenden):

Prozessoren sollten den Inhalt der < data> -Element standardmäßig so die < data> -Element sollte nur für Eigenschaften und verwendet werden, ignorieren nicht Text zur Formatierung als Teil der Strömung des Themas Körper einzubetten .

(Siehe auch an anderer Stelle in der Spezifikation Anfang. Text: „benutzerdefinierte Verarbeitung kann ...“)

Sie < Schlüsselwort verwenden können> „Text einzubetten zur Formatierung als Teil der Strömung des Themas Körper ", aber Sie sollten das nicht tun mit < Daten>.

Können Sie Ihren spezifischen Anwendungsfall beschreiben? (Welche Informationen möchten Sie markieren?)

+1

Ich habe die Spezifikation gelesen, ziemlich sorgfältig, und ich denke, dass ist, wo die Frage kommt, ich denke, es ist sehr vage über die Verwendung von Metadatenelementen. Ich kenne die offensichtlichen Unterschiede ihrer Datenmodelle und insbesondere die Verwendung von Schlüsselwörtern in einem Nicht-Metadaten-Kontext. Aber das Schlüsselwort kann auch als Metadatenelement verwendet werden, und ich beabsichtige ihre Unterschiede als Metadatentags, d. H. Als Schlüsselwort, wie es im Schlüsselwort-Tag in den Prolog-Metadatenelementen verwendet wird. Dies ist eine andere Verwendung verglichen mit der Verwendung in Fließtext, und die Spezifikation besagt, dass sie so behandelt wird, als ob sie mit dem Subject-Tag von Dublin Core vergleichbar wäre. – Anders