Wann Attribute, wann eigener Tag?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wann Attribute, wann eigener Tag?

    Hallo,

    ich bin auf der Suche nach einer sinnvollen Erklärung, wann man bei einer XML die Daten als Attribute schreibt und wann als eigenen Tag?

    Ich möchte Events in eine XML-Datei exportieren und habe bisher jede Eigenschaft als eigenen Tag verwendet:
    PHP-Code:
    <events>
        <
    event id="5">
            <
    datum>01.01.2009</datum>
            <
    beginn>20.00 Uhr</beginn>
            <
    ort>Berlin</ort>
            ...
            <
    bemerkung>Essen und Trinken im Preis enthalten</bemerkung>
        </
    event>
    </
    events
    Ich mein,s owas wie Beginn, Einlass, etc. könnte ich auch als Attribute des Tags z.B. <allgemeines> schreiben.

    Gibt es hierfür vielleicht irgendeine Richtlinie?
    Und: worauf sollte ich achten, wenn ich die XML-Datei später in Excel öffnen möchte und ein brauchbares Ergebnis erhalten möchte?

    vielen Dank.

    gruß
    Piremilok

  • #2
    Obwohl ich sehr viel mit (zugegebenermaßen recht einfachen) Xml's werkle, muss ich sagen dass ich mir diese Frage auch immer mal wieder selber stelle und ich hier immer eher "nach Gefühl" vorgehe - und dieses "Gefühl" sagt mir, dass du mit deiner momentanen Struktur schon richtig dran bist - also begin und datum nicht als Attribut notieren - hättest du für ein Event zum Beispiel 2 Termine, könntest du nicht zweimal das Attribut begin und datum in einem "Event"-Tag notieren, dagegen könnte es aber z.B. so aussehen

    <events>
    <event id="5">
    <termin>
    <datum>01.01.2009</datum>
    <beginn>20.00 Uhr</beginn>
    </termin>
    <termin>
    <datum>02.01.2009</datum>
    <beginn>20.00 Uhr</beginn>
    </termin>
    <ort>Berlin</ort>
    ...
    <bemerkung>Essen und Trinken im Preis enthalten</bemerkung>
    </event>
    </events>


    Zu Excel kann ich dir leider nix sagen.
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

    Kommentar


    • #3
      Hi,

      genau das wäre nämlich das Problem.
      Termine mit mehren Datums baue ich auch so auf, dass ich mehrere Datum-Tags verwende und die Terminspezifischen Daten dort reinpacke.

      Bei Eingaben mit Zeilenumbrüchen verwende ich sowieso immer einen eigenen Tag.

      Aber nehmen wir z.B. die Event-Nr.:
      Ich habe sie in diesem Beispiel als Attribut reingepackt.
      Aber derzeit schreibe ich sie als eigenen Tag in das Event.

      Theoretisch ist ja beides richtig, denn es kommt immer drauf an, wie man das in der DTD definiert.

      Aber gibt es einen "guten" Stil?

      Kommentar


      • #4
        Wenn ein Attribut eigene Attribute braucht, muss man ein Element draus machen. Das ist im Grunde die einzige Faustregel.
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          Also die id ist als Attribut IMHO an der richtigen Stelle. Warum? Die id ist ja lediglich der eindeutige Bezeichner des Datensatzes und hat ansonsten eigentlich gar nix mit dem "Objekt" Event zu tun - hat deine DB-Tabelle vielleicht auch noch einen Timestamp der einfach die letzte Änderung enthält, so würd ich den auch noch als Attribut in event notieren.
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            Original geschrieben von unset
            Wenn ein Attribut eigene Attribute braucht, muss man ein Element draus machen. Das ist im Grunde die einzige Faustregel.
            Hmm - IMHO müsste man noch ergänzen, dass man ein Element draus machen muss wenn ein Attribut mehrfach vorkommen kann, weil man nicht zwei- oder mehrmals das gleiche Attribut notieren kann.

            Obwohl man davon dann mal abgesehen ansonsten alles als Attribut in ein Tag packen könnte, wäre es IMHO dann doch irgendwie "schlechter Stil" dies wirklich zu tun.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              Abgesehen davon, dass du nicht alles als Attribut in ein Element packen kannst, sind deine Ergänzungen natürlich schon vorrausgesetzt!
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Original geschrieben von unset
                Abgesehen davon, dass du nicht alles als Attribut in ein Element packen kannst...
                och - irgendwie lässt sich bestimmt alles in ein Attribut "hineincodieren"...
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar

                Lädt...
                X