E-Book Startseite Karteikarten-Programm
0

Wiederholung von Elementen

Mit den Elementtypdeklarationen die Sie bereits gelernt haben, ist Ihr Dokument noch nicht dynamisch, da jedes Element einmal vorkommen muss und auch genau in dieser Reihenfolge. Nun gibt es jedoch die Möglichkeit Wiederholungen zu erlauben. Um Wiederholungen von Elementen zu erlauben, gibt es 2 verschiedene Möglichkeiten. Die 1. Variante ist die Verwendung eines Pluszeichens. Das Pluszeichen gibt an, dass dieses Element mindestens einmal vorkommen muss, es darf aber auch genauso gut öfters vorkommen. Die 2. Variante ist ein Sternchen, welches angibt, dass die Anzahl des Vorkommens eines Elements völlig unbegrenzt ist. Das Element muss also auch nicht einmal vorkommen, wie es beim Pluszeichen der Fall ist. Als Beispiel eine Ergänzung des Beispiels vom Unterthema Grundaufbau:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 
<!DOCTYPE kontaktbuch [
    <!ELEMENT kontaktbuch (kontakt)*>
    <!ELEMENT kontakt (name, anschrift, telefon)>
    <!ELEMENT name (vorname, nachname)>
    <!ELEMENT vorname (#PCDATA)>
    <!ELEMENT nachname (#PCDATA)>
    <!ELEMENT anschrift (plz, ort)>
    <!ELEMENT plz (#PCDATA)>
    <!ELEMENT ort (#PCDATA)>
    <!ELEMENT telefon (#PCDATA)>
]>
 
<kontaktbuch>
  <kontakt>
    <name>
      <vorname>Max</vorname>
      <nachname>Mustermann</nachname>
    </name>
    <anschrift>
      <plz>12345</plz>
      <ort>Musterstadt</ort>
    </anschrift>
    <telefon>01234 - 56789</telefon>
  </kontakt>
  <kontakt>
    <name>
      <vorname>Maria</vorname>
      <nachname>Musterfrau</nachname>
    </name>
    <anschrift>
      <plz>54321</plz>
      <ort>Musterdorf</ort>
    </anschrift>
    <telefon>09876 - 54321</telefon>
  </kontakt>
</kontaktbuch>
Anzeigebeispiel
Anzeigebeispiel



alternative Elemente

Eine weitere Möglichkeit ein Dokument dynamisch zu machen, ist die Verwendung von alternativen Elementen. Alternative Elemente werden innerhalb einer Klammer nicht mit dem üblichen Komma, sondern mit dem Senkrechtstrich gekennzeichnet (|). Die Anzahl der alternativen Elemente ist unbegrenzt. Im XML-Dokument darf jedoch nur eines davon vorkommen, unabhängig davon ob 2, 3, 4 oder mehr Elemente in der DTD angegeben sind. Als Beispiel wird das Beispiel von oben ein wenig verändert. Innerhalb eines Kontakts unter Anschrift muss nun nicht mehr Postleitzahl (plz) und Ort (ort) angegeben werden, sondern darf nur noch eines davon angegeben werden. Im ersten Kontakt wird nur der Ort angegeben, im zweiten Kontakt nur die Postleitzahl.

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 
<!DOCTYPE kontaktbuch [
    <!ELEMENT kontaktbuch (kontakt)*>
    <!ELEMENT kontakt (name, anschrift, telefon)>
    <!ELEMENT name (vorname, nachname)>
    <!ELEMENT vorname (#PCDATA)>
    <!ELEMENT nachname (#PCDATA)>
    <!ELEMENT anschrift (plz | ort)>
    <!ELEMENT plz (#PCDATA)>
    <!ELEMENT ort (#PCDATA)>
    <!ELEMENT telefon (#PCDATA)>
]>
 
<kontaktbuch>
  <kontakt>
    <name>
      <vorname>Max</vorname>
      <nachname>Mustermann</nachname>
    </name>
    <anschrift>
      <ort>Musterstadt</ort>
    </anschrift>
    <telefon>01234 - 56789</telefon>
  </kontakt>
  <kontakt>
    <name>
      <vorname>Maria</vorname>
      <nachname>Musterfrau</nachname>
    </name>
    <anschrift>
      <plz>54321</plz>
    </anschrift>
    <telefon>09876 - 54321</telefon>
  </kontakt>
</kontaktbuch>
Anzeigebeispiel
Anzeigebeispiel



optionale Elemente

Die 3. Möglichkeit ein Dokument dynamischer zu machen, ist die Verwendung von optionalen Elementen, d. h. das Element, welches entsprechend gekennzeichnet ist, darf einmal oder gar nicht vorkommen. Optionale Elemente werden mit einem Fragezeichen gekennzeichnet. Im Beispiel-Code ist die Angabe von der Anrede keine Pflicht, sondern optional. Beim ersten Kontakt wurde keine Anrede angegeben, beim zweiten schon. Hier der vollständige Code dazu:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
 
<!DOCTYPE kontaktbuch [
    <!ELEMENT kontaktbuch (kontakt)*>
    <!ELEMENT kontakt (name, anschrift, telefon)>
    <!ELEMENT name (anrede?, vorname, nachname)>
    <!ELEMENT anrede (#PCDATA)>
    <!ELEMENT vorname (#PCDATA)>
    <!ELEMENT nachname (#PCDATA)>
    <!ELEMENT anschrift (plz | ort)>
    <!ELEMENT plz (#PCDATA)>
    <!ELEMENT ort (#PCDATA)>
    <!ELEMENT telefon (#PCDATA)>
]>
 
<kontaktbuch>
  <kontakt>
    <name>
      <vorname>Max</vorname>
      <nachname>Mustermann</nachname>
    </name>
    <anschrift>
      <ort>Musterstadt</ort>
    </anschrift>
    <telefon>01234 - 56789</telefon>
  </kontakt>
  <kontakt>
    <name>
      <anrede>Frau</anrede>
      <vorname>Maria</vorname>
      <nachname>Musterfrau</nachname>
    </name>
    <anschrift>
      <plz>54321</plz>
    </anschrift>
    <telefon>09876 - 54321</telefon>
  </kontakt>
</kontaktbuch>
Anzeigebeispiel
Anzeigebeispiel



Design:
 


Logo
Benjamin Jung
Krummstr. 9/3
73054 Eislingen

E-Mail: info@homepage-webhilfe.de
Webseite: www.homepage-webhilfe.de