Habe gerade das Vorrecht mir XML selbst beibringen zu dürfen und hätte daher eine Frage bezüglich XML Schemas.
Wenn ich nun beispielsweise folgendes Element habe:
Titel1
… lässt sich dann mit Hilfe eines Schemas festlegen, dass in diesem Fall bei style immer „color:red“ stehen soll. Oder sollte das in dem Dokument, auf das das Schema angewandt wird bereits vordefiniert sein? Bezieht sich dann das Schema nur auf den Eigentlichen Inhalt (also im Bsp. „Titel1“) (quasi: es ist muss zB ein string sein, etc.)?
Hallo EV*A,
gegen das Schema wird die XML Datei nur verifiziert. Ergebnis: bestanden oder nicht.
Somit kann man im Schema festschreiben, ob der tag „title“ das Attribute „style“ haben darf, haben muss, nicht haben darf oder nicht haben muss. Und welche Werte das Attribut annehmen darf.
Grüße
Niklas
Ein Schema (XSD) dient der Validierung einer XML-Datei. Darin kann man genau festlegen, welche Elemente welche Unterelemente oder Attribute haben. Mögliche Werte lassen sich in Enumerationen vorgeben oder auch nur deren Datentyp festlegen (z.B. xs:string). Der XML-Spy von Altova kann beim Erstellen einer neuen XML basierend auf einem Schema gleich die ganze als required definierte Struktur erzeugen und bietet darüber hinaus Intellisense. Umgekehrt kann man sich aus einer XML ein Schema ableiten lassen.
Du bringst da mehrere Sachen durcheinander. Was du als Beispiel angibst, das ist HTML. Für die Vorgängerversionen HTML 4.01 und XHTML 1.0 (1.1) gibt es eine SGML-DTD und eine XML-DTD (Document Type Definition), aber kein Schema.
Das Attribut, welches du nennst, ist style. Das ist ein spezielles HTML-Attribut zur Festlegung von Style-Definitionen. Wenn du in das Attribut style schaust, siehst du auch die enthaltene Style-Festlegung aus Style-Attribut (color) und Wert (red). Das ist also wiederum selbst ein Attribut-Wert Paar.
Als Beispiel für einen vorbelegten Wert in einer DTD könnte das Attribut sort mit der Angabe FIXED dienen:
In einem Schema sieht das anders aus. Suche nach Angabe fixed:
Die Angabe required legt fest, daß dieses Attribut auch immer vorhanden sein muß.
Wenn du nur Styles für ein HTML-Dokument festlegen willst, empfehle ich ausgelagerte Stylesheets. Dann wird es nur einmal im Stylesheet (extra Datei) festgelegt und jedes Element title wird dann gleich dargestellt, wenn du dieses Stylesheet einbindest.
Gruß, Thomas
ja, das kannst du so machen. Bedenke aber, daß du dann bei Verwendung dieses Schemas niemals in dieses Attribut einen anderen Wert eintragen kannst. D.h. um korrekt zu sein, das kannst du schon, nur ist das Dokument dann nicht valide. Jede Prüfung gegen das Schema wird einen Fehler anzeigen.
Gruß, Thomas
PS: Können wir uns mal bitte privat kontaktieren? Ich habe eine Frage bzgl. Wien. thomas ät th-o Punkt de
ja, den Wert eines Attributes kann man auf einen fixen Wert festlegen:
Die beiden anderen Frage verstehe ich nicht ganz, Man kann den Inhalt des title Elementes als String definieren, die Definition incl. Einschränkung des Attributes würde dann so aussehen:
ja, das Dokument ist dann valide.
Ich nehme meinen XML-Editor zum Prüfen gegen das Schema.
Ich habe dir ja einen Auszug aus einer XML-Datei geschickt, diese ist valide.
Ich möchte eventuell im August den Donauradweg von Passau nach Wien fahren. Evtl. bleibe ich 2 oder 3 Tage dort. Ich brauch dann eine günstige Unterkunft. Kennst du jemand? Oder vll. auch airbnb oder Couchsurfing?