Aufbau einer XML-Datei
Dani
- xml
0 Thomas Meinike0 Dani0 Thomas Meinike0 Dani
0 MudGuard
TT-Mittel TT-Max TT-Min
01.01.2005 2,5 4,2 1,5
02.01.2005 2,0 6,3 -0,9
...
Hallo,
ich habe obige Daten in tabellenform und würde diese nun gerne in einer XML-Datei speichern. Mein Vorschlag:
<Daten>
<Datum>
<TT-Mittel> </TT-Mittel>
<TT-Max> </TT-Max>
<TT-Mmin> </TT-Min>
</Datum>
<Datum>
<TT-Mittel> </TT-Mittel>
<TT-Max> </TT-Max>
<TT-Mmin> </TT-Min>
</Datum>
...
</Daten>
das wärs doch, ist es so okay, oder fehlt da noch was?
MfG Dani
Hallo,
<Daten>
...
<Datum>
<TT-Mittel> </TT-Mittel>
<TT-Max> </TT-Max>
<TT-Mmin> </TT-Min>
</Datum>
...
</Daten>das wärs doch, ist es so okay, oder fehlt da noch was?
Formal ok waere das schon, sofern der XML-Code wohlgeformt ist und das Datenmodell fuer die weitere Verarbeitung (XSLT & Co.) brauchbar ist.
Ich wuerde einen Datensatz aber nicht ausgehend vom Datum abbilden, sondern so darstellen:
<Datensatz>
<Datum>...</Datum>
<TT-Mittel>...</TT-Mittel>
<TT-Max>...</TT-Max>
<TT-Mmin>...</TT-Min>
</Datensatz>
Ggf. auch so:
<Datensatz Datum="...">
<TT-Mittel>...</TT-Mittel>
<TT-Max>...</TT-Max>
<TT-Mmin>...</TT-Min>
</Datensatz>
MfG, Thomas
Ja genau, hab das selbe gerade auch noch mal nachgelesen. Der Datensatz bekommt ne Bezeichnung und so werd ich dass dann machen.
Wenn ich die XML-Datei nun weitergeben möchte, wäre es ev. sinnvoll eine DTD zu machen:
<!ELEMENT wetterwerte (wetterwert)>
<!ELEMENT wetterwert (standort, datum, temperaturMax, temperaturMin, temperaturMittel)>
<!ELEMENT standort (#PCDATA)>
<!ELEMENT datum (#PCDATA)>
<!ELEMENT temperaturMax (#PCDATA)>
<!ELEMENT temperaturMin (#PCDATA)>
<!ELEMENT temperaturMittel) (#PCDATA)>
auch so okay? Jetzt natürlich etwas abgewandelt.
Hallo,
<!ELEMENT wetterwerte (wetterwert)>
Da vermutlich nicht nur ein wetterwert-Element abgelegt werden soll, waere also wetterwert+ (= 1 bis n ) oder wetterwert* (= 0 bis n) sinnvoll.
<!ELEMENT temperaturMittel) (#PCDATA)>
^
Klammer zuviel
MfG, Thomas
Hallo Thomas,
danke für die bisherige Hilfe. Vielleicht kannste ja noch das folgende kurz in ne xml-datei kopieren und in nem browser checken, ob alles passt. Die dtd hab ich etwas abgeändert und das + reingemacht und ebendazu ein kleines beispiel gemacht. Danke für deine Hilfe!
<!ELEMENT wetterdaten (wetterstation, wetterwerte)>
<!ELEMENT wetterstation (einheit, hoehe, land, name, datum, uhrzeit)>
<!ELEMENT einheit (#PCDATA)>
<!ELEMENT hoehe (#PCDATA)>
<!ELEMENT land (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT datum (#PCDATA)>
<!ELEMENT uhrzeit (#PCDATA)>
<!ELEMENT wetterwerte (wetterwert)>
<!ELEMENT wetterwert (standort, datum, temperaturMax, temperaturMin, temperaturMittel)+>
<!ELEMENT standort (#PCDATA)>
<!ELEMENT datum (#PCDATA)>
<!ELEMENT temperaturMax (#PCDATA)>
<!ELEMENT temperaturMin (#PCDATA)>
<!ELEMENT temperaturMittel (#PCDATA)>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE wetterdaten SYSTEM "wetterdaten.dtd">
<wetterdaten>
<wetterstation>
<einheit> grad </einheit>
<hoehe> 1m </hoehe>
<land> deutschland </land>
<name> name </name>
<datum> 17.10.2005 </datum>
<uhrzeit> 10:00 </uhrzeit>
</wetterstation>
<wetterwerte>
<wetterwert>
<standort> muenchen </standort>
<datum> 16.10.2005 </datum>
<temperaturMax> 15 </temperaturMax>
<temperaturMin> 2 </temperaturMin>
<temperaturMittel> 10 </temperaturMittel>
</wetterwert>
<wetterwert>
<standort> stuttgart </standort>
<datum> 16.10.2005 </datum>
<temperaturMax> 12 </temperaturMax>
<temperaturMin> 3 </temperaturMin>
<temperaturMittel> 8 </temperaturMittel>
</wetterwert>
</wetterwerte>
</wetterdaten>
Hallo,
danke für die bisherige Hilfe. Vielleicht kannste ja noch das folgende kurz in ne xml-datei kopieren und in nem browser checken, ob alles passt.
Naja, validieren solltest Du schon selbst!
Die dtd hab ich etwas abgeändert und das + reingemacht und ebendazu ein kleines beispiel gemacht.
Das Element datum wird doppelt deklariert. Vorschlag: wsdatum und wwdatum verwenden oder Namensraeume deklarieren und darauf basierend ws:datum bzw. ww:datum verwenden.
Bezogen auf wsdatum und wwdatum waere diese DTD geeignet:
<!ELEMENT wetterdaten (wetterstation, wetterwerte)>
<!ELEMENT wetterstation (einheit, hoehe, land, name, wsdatum, uhrzeit)>
<!ELEMENT einheit (#PCDATA)>
<!ELEMENT hoehe (#PCDATA)>
<!ELEMENT land (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT wsdatum (#PCDATA)>
<!ELEMENT uhrzeit (#PCDATA)>
<!ELEMENT wetterwerte (wetterwert+)>
<!ELEMENT wetterwert (standort, wwdatum, temperaturMax, temperaturMin, temperaturMittel)>
<!ELEMENT standort (#PCDATA)>
<!ELEMENT wwdatum (#PCDATA)>
<!ELEMENT temperaturMax (#PCDATA)>
<!ELEMENT temperaturMin (#PCDATA)>
<!ELEMENT temperaturMittel (#PCDATA)>
MfG, Thomas
Danke für die Hilfe Thomas!
MFG
Das Element datum wird doppelt deklariert.
<!ELEMENT datum (#PCDATA)>
darf natürlich nur einmal in der DTD stehen …
Vorschlag: wsdatum und wwdatum verwenden
… aber datum
kann auch durchaus als Kind von wetterstation
und als Kind von wetterwert
auftreten.
oder Namensraeume deklarieren und darauf basierend ws:datum bzw. ww:datum verwenden.
Ach, wenn schon Namensräume ins Spiel kommen, kann man ja gleich schon existierende nutzen: das date
-Element aus dem Dublin-Core-Namensraum http://purl.org/dc/elements/1.1/
Ich würd auch Datum und Uhrzeit nicht trennen, da ja beides zusammengehört und den Zeitpunkt angibt. Lässt sich im W3C DateTime Format (internationales Datumsformat, ISO 8601) angeben:
<dc:date>2005-10-17T18:55</dc:date>
bzw. mit Zeitzone
<dc:date>2005-10-17T18:55+02:00</dc:date>
Vielleicht wäre das Ganze auch eine Anwendung für RDF. (Dann gibt’s natürlich keine DTD.)
Live long and prosper,
Gunnar
Hallo,
… aber
datum
kann auch durchaus als Kind vonwetterstation
und als Kind vonwetterwert
auftreten.
So gesehen, ACK.
Ach, wenn schon Namensräume ins Spiel kommen, kann man ja gleich schon existierende nutzen: das
date
-Element aus dem Dublin-Core-Namensraum http://purl.org/dc/elements/1.1/
Kann man natuerlich alles machen, was aber schon etwas Erfahrung im XML-Universum voraussetzt.
MfG, Thomas
Hi,
eine Überlegung wäre noch, ggf. die Temperaturen zusammenzufassen:
<temperaturen>
<min></min>
<mittel></mittel>
<max></max>
</temperaturen>
cu,
Andreas