Tim Tepaße: Deklaration/Definiton=? Bezug: XML-Schema

Beitrag lesen

Hallo! (Minutenlanger Heulkrampf)

Hallo (Vorspulen),

Wir haben gerade ne Klausur u.a. über XML-Schema geschrieben. Dort wurde gefragt was der Unterschied zw. Deklaration/Definiton (Bezug: XML-Schema) ist. Kommilitone meinte dazu: Deklaration im Schema, Definition im xml-Dokument. Das ist mir noch zu ungenau - ich würde gern eine genauere Beschreibung dazu haben (eine genaue Begriffsdefinition wenn möglich).

Bei Professoren weiß man solche Definitionsgeschichten selten, was die nun genau meinen, verstanden und den Studenten gelehrt zu haben, deswegen kann man nichts mit häufiger Sicherheit sagen.

Ich würde bei so etwas immer in den grundlegenden Spezifikationen nachgucken. Zugegeben, die zwei (drei) Spezifikationen zu XML Schema sind sehr theoretisch gehalten aber praktischerweise haben solch abstrake Werke immer Terminologie-Erklärungen oder Definitionen am Anfang stehen. Aus XML Schema Part 1: Structures:

During ·validation·, [Definition:]  declaration components are associated by
  (qualified) name to information items being ·validated·.

On the other hand, [Definition:]  definition components define internal schema
  components that can be used in other schema components.

Tada, zwei Definitionen. Um nun genau rauszukriegen, was das bedeutet, schaue ich mir mal in der Spezifikatin Abschnitt 3 (»Schema Component Details«) an, nur für den groben Überblick. Deklarationen sind die XML Schema Dinger, die Elemente, Attribute oder Notationen (ein eher unbekanntes und ungenutztes XML-Feature). Definitionen sind dann die Datentypen, die einzelne Schema-Komponenten zusammenfassen, SimpleTypes, ComplexTypes, attributeGroups, etc. Wenn ich das dann flappsig in meiner eigenen Sprache und sicherlich inkorrekt verallgemeinere:

„Deklarationen sind die Schemata für XML-Elemente, die man in einem XML-
  Dokument gebrauchen kann. Definitionen sind die Elemente und Partikel aus
  denen man die Deklarationen aufbauen kann.“

Wenn Du mal XML Schema mit DTDs vergleichst: In letzteren gibt es nur Deklarationen. XML Schema Part 0: Primer scheint mir da im ersten Absatz von Abschnitt 2.2 recht zu geben:

... There is also a major distinction between definitions which create new
  types (both simple and complex), and declarations which enable elements and
  attributes with specific names and types (both simple and complex) to appear
  in document instances. ...

(Ein Primer ist eine Einführung, meist mit Beispielen in ein komplexeres Technologiefeld. Oft eine gute Möglichkeit, sich einen Überblick zu verschaffen.)

Ich weiß nun nicht, ob das ist, was Dein Prof in seiner Klausur meinte, man weiß ja nie. Einerseits ist es ja im Kontext von XML Schema eine recht abstrakter Unterscheidung, praktisch nur für Entwickler von Schema-Validatoren interessant. Andererseits hat es eine im XML Schema Kontext relevante Unterscheidung. Wie relevant es für das vom Prof gelehrte XML Schema ist: Das kannst nur Du beantworten, vermutlich erst nach Korrektur der Klausur oder Nachfrage. ;)

Tim