XML Schema - Attributeigenschaften definieren

Hallo!

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.)?

Danke schon mal im Voraus!

LG,
EV*A

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.

Hallo EV*A,

wie davor schon geschrieben, dient ein Schema (XSD oder auch DTD) zur Validierung eines XML-Dokuments.

Zum „Reinkommen“ kannst du ja hier lesen:
https://de.wikipedia.org/wiki/XML_Schema

Ansonsten gibt es wohl genügend Quellen über XSD.

Gruß Markus

Hallo,

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

Hallo,
bin mir nicht ganz sicher, ob ich die Frage richtig verstanden habe.

Aber hier ein Beispiel, welches eventuell die Frage löst.

einfaches Element wie im Beispiel (oben):

Wenn das Attribut style immer gleich sein soll, dann fixed benutzen:

Falls nur bestimmte Farben (z.B. rot, grün, lila und braun), dann kann man
das über xs:enumeration realisieren.

Viele Grüße

Sebastian_

Hi, EV*A

schau mal bei http://www.w3schools.com/schema/schema_facets.asp

ob dir das hilft.

Gruß

Rolf

Hallo!

Danke für die Antwort! Das trifft eigentlich so ziemlich den Kern meiner Frage! :smile:

LG,
EV*A

Hallo!

Danke für die ausführliche Antwort!
Das mit dem Verwechseln ist gut möglich … hab mich früher schon mit HTML beschäftigt gehabt.

Daher ein konkretes Bsp:

Kann ich jetzt hier mit einem Schema folgendes tun:

… und so festlegen, dass das Attribut root immer den selben Wert hat?

Danke nochmal im Voraus!

LG,
EV*A

Hallo Eva,

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

Hallo EV*A,

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:

HTH
Heavy

Hi, kann Dir leider nicht weiterhelfen.
Sorry
C.

Hallo!

Wenn im Dokument das Attribut aber diesen Wert hat, dann ist es schon valide oder? Ohne Fehler…?

LG

P.S. Vll. Kannst du ja nur so ungefähr sagen, was du fragen möchtest … vll kann ichs auch so schon beantworten :smile:

Hallo,

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?

Gruß, Thomas

Hey!

Jetzt ist mir alles klar :smiley: Danke!

Kenne einen Typen für Couchsurfing, hab den gefragt - der kann aber im August nicht … Ansonsten bin ich da ziemlich ahnungslos -sorry!

LG,
EV*A

Hallo!

Etwas zu spät, aber dennoch:  Danke für die zahlreichen Antworten! :smiley:

Es war einiges dabei, das mir weiter geholfen hat!

LG,
EV*A