Was sollte ein Entwickler wissen, bevor er ein neues XML-basiertes Format oder eine Sprache erstellt?

8

Nehmen wir an, Sie müssen eine xml-basierte (keine Auswahl) Sprache schreiben, die am Ende eine Art "Standard" -Format sein wird, die von Milliarden von Anwendungen auf der ganzen Welt verwendet wird, oder zumindest, auf die Sie hoffen es. Diese Sprache wird wie HTML für das Internet sein, aber in einer anderen spezifischen Domäne. Etwas wirklich einfaches und beschreibendes, das von Werkzeugen und anderen Anwendungen interpretiert wird.

Nehmen wir an, Sie haben ein grundlegendes Verständnis davon, wie XML funktioniert (Sie wissen, wie Tags funktionieren, dass sie Attribute haben können und dass es Elemente in Elementen geben kann ...). Du verstehst die Domain wirklich gut, aber du hast nie zuvor eine Sprache oder xml-basierte Formatspezifikation geschrieben (abgesehen von einigen grundlegenden XML-Formaten für deine firmeninternen Tools).

Was müssen Sie noch wissen, um Ihre Arbeit richtig zu machen? Vielleicht einige XML-spezifische Funktionen? Vielleicht eine XSD-Datei als Spezifikationsdatei verwenden?

Um es zusammenzufassen: Was sind die besten Praktiken beim Entwerfen und Schreiben von Spezifikationen für diese Art von Sprache?

    
Klaim 10.02.2010, 22:57
quelle

9 Antworten

3

Zunächst müssen Sie Ihre Problemdomäne wirklich , wirklich kennen, um sicherzustellen, dass Ihr Markup alle Anforderungen für diese Milliarden von Anwendungen erfüllen kann. Alles andere ist zweitrangig. Es ist kein Technologie- oder Tool-Problem.

    
Trevor Tippins 10.02.2010 23:04
quelle
3

Der Blogpost XML verwenden und missbrauchen hat unter anderem einige gute Ratschläge:

>
  

Ein weiterer beliebter Missbrauch von XML beinhaltet   Einfaches Umhüllen beliebiger Daten mit XML   Tags ... wie die folgenden:

%Vor%
  

In einem besseren, maßgeschneiderten XML-Dateiformat würden wir erwarten, dass dieses Paar so etwas wie

ist
%Vor%     
hlovdal 10.02.2010 23:08
quelle
2

Tue zuerst etwas selbst, wenn es wirklich nichts anderes gibt, das stattdessen verwendet werden könnte.

Halten Sie Elementnamen kurz, aber beschreibend.

Wenn möglich, haben Sie ein sehr strenges Schema, das nicht mehrere Möglichkeiten zulässt, dasselbe zu tun. Dies verhindert mögliche Verwirrung über was möglich ist oder wie das Markup interpretiert werden kann.

Seien Sie sehr vorsichtig beim Erlauben von Erweiterbarkeit, da dies die Probleme ermöglichen kann, die ein strenges Schema zu verhindern versucht.

Stellen Sie sicher, dass Sie Ihr Schema versionieren, und versuchen Sie immer, Änderungen zu vermeiden, und / und Rückwärtskompatibilität mit neuen Versionen zuzulassen.

Stellen Sie sicher, dass Sie einen Validator und andere Tools zur Verfügung haben, um Ihre neue Sprache so einfach wie möglich zu nutzen.

    
Matt Lacey 10.02.2010 23:14
quelle
2
  1. Lerne XML-Schema
    • Versuchen Sie nicht, Ihr Schema zu vereinfachen, indem Sie Elemente in verschiedenen Ordnungen zulassen.
    • Machen Sie Ihr Schema über das Internet zugänglich. Sie müssen es nicht unter einer URL hosten, die zu Ihrem Namespace gehört, aber das kann nett sein.
  2. Lerne XML-Namespaces
  3. Lerne XPATH
  4. Verstehen Sie, was ein XML INFOSET ist, und erfahren Sie, was es bedeutet, eins zu initialisieren.
John Saunders 11.02.2010 00:11
quelle
1

Auf jeden Fall sollten Sie XPath zu einem bestimmten Zeitpunkt lernen. Es ist (denke ich) der beste Weg, um XML auszuwählen.

    
Avindra Goolcharan 10.02.2010 23:02
quelle
1

Definitiv verwende ein Schema, egal ob es ein XSD oder RELAX NG ist.

    
Jacob 10.02.2010 23:12
quelle
1

IBM hat eine Reihe von Prinzipien des XML-Designs die viele Wahrheiten enthält. Der beste Rat ist, dass es nie einen einzigen richtigen Weg gibt:

  • Seien Sie prägnant in Ihrer Designauswahl, wenn Sie Route A wählen, wählen Sie sie überall. d.h. Wenn Sie ein Wrapper-Element <books> verwenden, um <book> zu speichern, verwenden Sie überall ein Wrapper-Element für Sammlungen.

  • Seien Sie so knapp wie möglich, um Unordnung zu vermeiden. XML soll von uns Menschen lesbar sein.

  • Vermeiden Sie Namensräume so weit wie möglich
  • Es muss über ein Schema validierbar sein.
Martijn Laarman 10.02.2010 23:14
quelle
1

Zunächst stimme ich trevor zu, du musst die Gegend kennen, die du verdeckst, nichts Schlimmeres als ein gepatchtes Standard, das sieht es aus.

Zweitens müssen Sie zumindest ein wenig über xsd und xslt wissen. und etwas mehr über xpath / xquery, da Benutzer Ihres Standards diese wahrscheinlich verwenden werden, um ihren Inhalt zu handhaben.

Drittens möchte ich vorschlagen, dass Sie so tief wie möglich in andere XML-basierte Standards eintauchen, um zu sehen, wie sie erstellt wurden. Der XHTML-Standard eignet sich sehr gut zum Lernen, da es der älteste XML-Standard ist und seine Entwicklung von der tatsächlichen Nutzung über einen längeren Zeitraum bestimmt war. Außerdem sollten Sie vielleicht atom und rss, xsd (dieses Mal als Standrad, nicht eine Technologie) und microformats studieren

    
Nir Gavish 10.02.2010 23:18
quelle
1
  • Namespaces : Was sie sind, wann und wann sie nicht zu verwenden sind, wie sie das Parsen beeinflussen
  • Schema Validierung / XSD . Einer der Vorteile von XML ist, dass es leicht verifizierbar ist, also erwarte ich, dass ein Schema für alles, was sich selbst als Standard
  • bezeichnet, validiert wird
  • XPath und andere Suchmechanismen ( XQuery ist selten und verwandt mit XPath, aber immer noch ein Standard für sich selbst, um zumindest schnell zu sehen)
  • Allgemeines Wissen über Entweichungsmaterial , CDATA oder andere Möglichkeiten
  • Wann Attribute verwendet werden sollen und wann untergeordnete Elemente verwendet werden sollen
  • Mögliche verwandte Standards. Dies ist nicht unbedingt damit verbunden, aber wenn Sie beispielsweise Document Signing hinzufügen müssen, gibt es dafür bereits Standards (z. B. XML-Signatur ). Grundsätzlich sollten Sie jedes Mal, wenn Sie eine Funktion hinzufügen, schnell nachsehen, ob es bereits einen Standard gibt und entscheiden, ob es sich lohnt, sie stattdessen anzupassen. Das Rad neu zu erfinden ist in Ordnung, wenn Sie zumindest wissen, warum alle anderen Räder saugen.
Michael Stum 11.02.2010 00:14
quelle

Tags und Links