DTD Vorbesetzung Attribute je nach Element

Ich möchte eine DTD erstellen. Je nach Fahrzeugtyp soll das Attribut „autotyp“ mit einem unterschiedlichen Wert vorbesetzt werden. Kann mir jemand die untenstehende DTD so abwandeln, daß das funktioniert?

Vielen Dank

autotyp #PCDATA)

>

autotyp #PCDATA)

Mal langsam. Beispiele?
Hi,

ich sehe hier leider keine Attribute. Dein DTD-Fragment beschreibt nur Elemente (und enthält Syntaxfehler).

Kannst Du beispielhaft mal ein paar XML-Schnipsel angeben, die das von Dir gewünschte Aussehen haben?

Mit Gruß
KHK

Ich möchte das Element „autotyp“ durch ein Attribut ersetzen, das je nach Element (Sportwagen oder Omnibus) einen unterschiedlichen Wert in der DTD zugewiesen bekommt.
… ja klar, durch den Kommentar ist die Syntax nicht ganz eingehalten… sollte aber trotzdem klar werden, was ich meine.

Dank Wolfram

*rumrat*

… sollte aber trotzdem klar werden, was ich meine.

Mal überlegen… warum habe ich nachgefragt?
[  ]  mir ist langweilig
[  ]  mir ist nicht klar, was Du meinst

Soll ‚autotyp‘ ein Attribut von sein (dann ist Deine Anforderung mit einer DTD nicht erfüllbar) oder ein Attribut von bzw. (dann geht’s)?

Falls letzteres:

Soll das Attribut frei sein und nur als default den angegebenen Wert haben:

Oder soll das Attribut einen festen Wertebereich haben und als default den angegebenen Wert:

Oder soll das Attribut keinen anderen als den gewünschten Wert haben können:

Was für eine Struktur willst Du denn letztlich darstellen? Die von Dir gewünschte Redundanz lässt vermuten, dass das Design noch Schwächen hat. Warum benötigst Du die Information Sportwagen/Omnibus zweimal?

Gruß KHK

DTD Vorbesetzung Attribute je nach Element
Yep, sollte ein Attribut von „auto“ sein. Mit unterschiedlicher Wertzuweisung je nach „autotyp“. O.k., geht anscheinend nicht.

Dein #FIXED Vorschlag kommt der Idee nun am nächsten.
Kann ich denn Attribut „autotyp“ sowohl für „Sportwagen“ als auch für „Omnibus“ verwenden? In anderen Worten: muß der Name „autotyp“ innerhalb der DTD nicht unique sein?

Hintergrund: Ich möchte ein „auto“ beschreiben. Das hat zwei (alternative) Ausprägungen: „Sportwagen“ oder „Omnibus“. Genau diese Ausprägung sollte im Wert des Attributes „autotyp“ ausgedrückt sein.

Dank fürs Mitraten,
Wolfram

Yep, sollte ein Attribut von „auto“ sein. Mit
unterschiedlicher Wertzuweisung je nach „autotyp“. O.k., geht
anscheinend nicht.

Nicht mit einer DTD, nein. Andererseits kannst Du eigentlich mit allen XML-Werkzeugen genausogut eine Abfrage „Hat Attribut x den Wert y?“ wie „hat der Knoten einen Kindknoten x?“ machen. So gesehen ist beides vielleicht gar nicht notwendig?

Kann ich denn Attribut „autotyp“ sowohl für „Sportwagen“ als
auch für „Omnibus“ verwenden? In anderen Worten: muß der Name
„autotyp“ innerhalb der DTD nicht unique sein?

Nein, ein Attributname darf an jedem Element vorkommen. Das Attribut darf sogar an jedem Element anders definiert werden. Ob das sinnvoll ist, steht auf einem anderen Blatt.

Hintergrund: Ich möchte ein „auto“ beschreiben. Das hat zwei
(alternative) Ausprägungen: „Sportwagen“ oder „Omnibus“. Genau
diese Ausprägung sollte im Wert des Attributes „autotyp“
ausgedrückt sein.

Wenn Sportwagen und Omnibus gleiche Inhaltsmodelle haben, könntest Du auf die Elemente und verzichten und dich auf beschränken.

Andererseits könntest Du vielleicht auch auf verzichten und dort, wo stehen soll, unmittelbar oder erlauben.

Dank fürs Mitraten,

:smile:

Gruß KHK

Nicht mit einer DTD, nein. Andererseits kannst Du eigentlich
mit allen XML-Werkzeugen genausogut eine Abfrage „Hat Attribut
x den Wert y?“ wie „hat der Knoten einen Kindknoten x?“
machen. So gesehen ist beides vielleicht gar nicht notwendig?

Ja, muß ich mal in Erwägung ziehen, könnte gehen… die andere Variante wäre mir z.Zt. noch lieber.

Wenn Sportwagen und Omnibus gleiche Inhaltsmodelle haben,
könntest Du auf die Elemente und
verzichten und dich auf beschränken.

Ganz so einfach ist es dann doch nicht, da Sportwagen und Omnibus noch eine ganze Reihe zusätzliche Elemente bekommen, die typ-spezifisch sind.

Andererseits könntest Du vielleicht auch auf verzichten
und dort, wo stehen soll, unmittelbar oder
erlauben.

In dem Beispiel-Fall sicher. Aber der Schnipsel ist halt in was Größeres eingebettet.

… und ich verzichte so ungern auf mein Auto… :smile:

Dank vielmals.
Wolfram