Beginner - Fragen (XML/DTD)

sliceX

Mitglied
Hallo zusammen,

ich komme direkt auf den Punkt und bin über sämtliche Hilfestellungen äußerst dankbar.

1.

<!ELEMENT abschnitt (ab_ueberschrift,(fliesstext | aufzaehlung | grafik)+)>

<!ELEMENT inhaltsverzeichnis (ivz_ueberschrift,(ivz_kapiteleintrag | ivz_abschnittseintrag)*)>

Im ersten Beispiel kann über das Trennzeichen "|" ein Element ausgesucht werden, und das "+" bedeutet, dass das ausgewählte Element mindestens einmal vorkommen muss, richtig? Oder ist mit dem Plus gemeint, dass alle 3 Elemente mindestens einmal vorkommen müssen?

Beim zweiten Beispiel kann zwischen 2 Elementen entschieden werden. Worauf bezieht sich das * genau? Heißt es, dass nachdem das Element ausgesucht wurde es keinmal, einmal oder mehrere Male vorkommen kann? Was für einen Sinn macht es, ein Element auszusuchen und es dann "keinmal" hinzuschreiben? Wäre hier ein + nicht sinnvoller?

2.

<!ELEMENT text (#PCDATA | drohend | lachend | fragend | zynisch)*>
<!ELEMENT drohend (#PCDATA)>
<!ELEMENT lachend (#PCDATA | augenzwinkernd)*>
<!ELEMENT fragend (#PCDATA)>
<!ELEMENT augenzwinkernd (#PCDATA)>
<!ELEMENT zynisch (#PCDATA)>

Kann in diesem Beispiel zwischen drohend, lachend, fragend und zynisch frei entschieden werden, sprich es könnte zB. auch "drohend" einfach weggelassen werden? Die dritte Zeile bedeutet, dass innerhalb von "lachend" das Element "augenzwinkernd" vorkommen kann, aber nicht muss (aufgrund des "*")?

Vielen Dank!
 

L0oNY

Bekanntes Mitglied
Hi,

Im ersten Beispiel kann über das Trennzeichen "|" ein Element ausgesucht werden, und das "+" bedeutet, dass das ausgewählte Element mindestens einmal vorkommen muss, richtig? Oder ist mit dem Plus gemeint, dass alle 3 Elemente mindestens einmal vorkommen müssen?
Das "+" bezieht sich auf den Ausdruck, der in der Klammer steht. Und in der Klammer steht "fliesstext ODER aufzaehlung ODER grafik". Also muss einer der Elemente vorkommen, und nicht alle drei. Deine Annahme hier ist richtig.

Beim zweiten Beispiel kann zwischen 2 Elementen entschieden werden. Worauf bezieht sich das * genau? Heißt es, dass nachdem das Element ausgesucht wurde es keinmal, einmal oder mehrere Male vorkommen kann? Was für einen Sinn macht es, ein Element auszusuchen und es dann "keinmal" hinzuschreiben? Wäre hier ein + nicht sinnvoller?
Hier bezieht sich das "*" ebenfalls auf die innere Klammer. Du kannst damit den Fall abdecken, dass du eine Überschrift hast aber weder einen Kapiteleintrag noch Abschnittseintrag. Im Falle von "+" müsstest du immer Kapitel oder Abschnittseintrag haben

Zu zweitens:
Deine Annahmen sind bis auf eine Sache korrekt. Du kannst nicht drohend einfach weglassen, bei der ODER Verknüpfung kommt nur ein Element aus der Liste, die in Klammern steht, sprich du musst alle anderen weglassen. Z.B steht dann in der xml <drohend>huhu</drohend>. Wegen des * kannst du das aber wiederholen, also drohend huhu, lachend huhu usw oder lachend augenzwinkernd huhu
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T XML beginner XML & JSON 3
I Castor-Fragen XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben