Michael: Grundsätzliches

Hallo

XML als Metasprache hat ja den Vorteil, daß man Anwendungen beschreiben kann. Bloß wie ist es mit der Verarbeitung? Beschreibt man beispielsweise HTML als XML Anwendung und man verwendet den Browser als Darstellungsprogramm, dann ist die Sachlage ja klar. Der Browser weiß, was die HTML-Befehle bedeuten und setzt es dementsprechend um. Aber ein XML-Viewer der völlig andere XML-Daten bekommt, woher "weiß" der, wie die Darzustellen sind? Oder ist IMMER spezielle Anwendungssoftware für die jeweilig definierte Sprache notwendig?

Gruß
   Michael

  1. Moin,

    ich wühle mich u.a. gerade hier durch, um den Anfang zu finden http://www.teamone.de/selfaktuell/links/xml_.htm.

    Soweit ich es (man möge mich korrigieren) verstanden habe, ist XML nicht unbedingt für den Client interessant, der wird eher auch in Zukunft via XML/XSL von Server generiertes (X)HTML zu sehen bekommen. IE 5.x und Mozilla können jedoch auch XML verstehen, was im Moment also nur für Intranetlösungen ggf. von Interesse sein könnte.

    Viele Grüße

    Swen

    1. Hallo

      ..der wird eher auch in Zukunft via XML/XSL von
      Server generiertes (X)HTML

      Das ist mir klar bzw. das kenne ich. Und ich meinte das auch nicht unbedingt auf Browser beschränkt.

      IE 5.x und Mozilla können jedoch auch
      XML verstehen, ...

      Ok, nehmen wir mal an, ich definiere mir eigene Tags. Woher weiß dann der IE, wie er sie darstellen soll? Irgendwo muss ich doch eine Semantik hinterlegen? Die DTD beispielsweise definiert lediglich die Syntax. Aber woher weiß die Software, daß z.B. der Tag <Artknr> als Artikelnummer zu behandeln ist?

      Gruß
         Michael

      1. Hi Michael,

        Ok, nehmen wir mal an, ich definiere mir eigene Tags. Woher weiß dann der IE, wie er sie darstellen soll? Irgendwo muss ich doch eine Semantik hinterlegen? Die DTD beispielsweise definiert lediglich die Syntax. Aber woher weiß die Software, daß z.B. der Tag <Artknr> als Artikelnummer zu behandeln ist?

        IE stellt sie defaultmäßig als Treeview dar, NS6/Mozilla als Fließtext. Wenn Dir das nicht gefällt (und dafür lege ich meinen Hund ins Feuer!), definierst Du über ein Stylesheet, wie die Tags dargestellt werden sollen. IE5 und NS6/Mozilla akzeptieren dafür CSS, IE5 außerdem noch einen XSL-T-Dialekt. Angeblich ist für NS6/Mozilla ein XSL(-T)-Modul so gut wie fertig )oder vielleicht auch im letzten Milestone schon drin?).

        Der bessere Weg ist aber: auf dem Server wendest Du ein XSL-T-Stylesheet auf eine XML-Datei an, als Ergebnis kommt eine herkömmliche HTML Datei, die dann jeder Browser darstellen kann.

        Grüße,

        Utz

      2. auch hallo

        Ok, nehmen wir mal an, ich definiere mir eigene Tags. Woher weiß dann der IE, wie er sie darstellen soll? Irgendwo muss ich doch eine Semantik hinterlegen? Die DTD beispielsweise definiert lediglich die Syntax. Aber woher weiß die Software, daß z.B. der Tag <Artknr> als Artikelnummer zu behandeln ist?

        die Darstellungsart entnimmt der brauser dem XSL-Sytlesheet
        die Software, die Artnr als Artikelnummer interpretiert, sollte das schon selber wissen - oder seh ich das falsch? - man moege mich berichtigen :-)

        cua

        n.d.p.

      3. Hallo Michael!

        »»XML als Metasprache hat ja den Vorteil, daß man Anwendungen beschreiben kann.
        »»

        Was meinst du mit damit? Welche Anwendung sollte /könnte XML beschreiben?

        »»Beschreibt man beispielsweise HTML als XML Anwendung und man verwendet den Browser als Darstellungsprogramm, dann ist die Sachlage ja klar.
        »»

        Nein, die Sache ist nicht klar. Weder HTML noch XML sind irgendwelche "Anwendungen". Es gibt auf XML basierende Sprachen eben z.B. SMIL oder RDF, bei HTML wäre dies XHML. Da aber all diese Sprachen Klartextsprachen sind, kann ich nicht nachvollziehen was du mit Anwendung meinst.

        »»Aber ein XML-Viewer der völlig andere XML-Daten bekommt, woher "weiß" der, wie die Darzustellen sind?»»

        Wurde schon gesagt: XSL/XSLT. (Ein XML Prozessor stellt nur den Baumstruktur der XML Datei dar, mehr nicht.)

        Ok, nehmen wir mal an, ich definiere mir eigene Tags. Woher weiß dann der IE, wie er sie darstellen soll? Irgendwo muss ich doch eine Semantik hinterlegen? Die DTD beispielsweise definiert lediglich die Syntax. Aber woher weiß die Software, daß z.B. der Tag <Artknr> als Artikelnummer zu behandeln ist?

        Du definierst deine eigene Tags, XML dient eben dazu, dir ein Werkzeug in die Hand zu geben wie du deine Tags defineren musst: XML gibt dir die morphologische Grundlage wonach du in der Lage bist deine eigene Tags richtig zu finieren. Also ist XML nur die Formenlehre.

        DTD ist die nächste Schritt: in der DTD legst du die Syntax (Satzbau) fest; also wo wann welche Elemente und unter welchen Umsänden vorkommen können / dürfen / sollen.

        Die Semantik (Bedeutung[slehre]) wird erst durch ein Sytle Sheet hinzugefüg: im Fall von XML ist es XSL/XSLT. Mit XSL wärst du in der Lage zu sagen "was" '<Artknr>' bedeuztet und wie diese Bedeutung ausgedrückt werden sollte.

  2. Hallo!

    XML als Metasprache hat ja den Vorteil, daß man Anwendungen beschreiben kann. Bloß wie ist es mit der Verarbeitung? Beschreibt man beispielsweise HTML als XML Anwendung und man verwendet den Browser als Darstellungsprogramm, dann ist die Sachlage ja klar. Der Browser weiß, was die HTML-Befehle bedeuten und setzt es dementsprechend um. Aber ein XML-Viewer der völlig andere XML-Daten bekommt, woher "weiß" der, wie die Darzustellen sind? Oder ist IMMER spezielle Anwendungssoftware für die jeweilig definierte Sprache notwendig?

    XML ist nicht prinzipiell dazu bestimmt, irgendwie dargestellt zu werden, sondern soll einfach nur Daten halten. Vergleiche ein XML-Dokument einfach mit einer Datenbank. Schaust Du Dir eine Datenbank mit dem Browser an? Ich nicht. Allerdings koennen diese Daten z.B. von einer Online-Shop-Applikation interpretiert werden, welche dann im Endeffekt irgendwas sichtbares an einen Browser schickt. Das ist aber lediglich ein spezieller Anwendungs-Fall.

    Ich habe XML z.B. fuer ein Kommunikationsprotokoll zwischen mehreren Anwendungen auf verschiedenen Webservern verwendet. D.h. eine Client-App, die auf einem Rechner laeuft (in diesem Fall auch ein Webserver) schickt ueber HTTP ein XML-Dok an die Server-App, welche dieses Dokument als Batch von auszufuehrenden Aktionen (Befehlen) interpretiert. Dass dieses Dokument genau so interpretiert werden soll, dass hat aber schon nichts mehr mit XML zu tun. Dafuer musste eigens eine Spezifikation entwickelt werden (aehnlich einem API). Und diese Dokumente, die da hin- und hergeschickt, die erreichen niemals (ausser in der Entwicklungsphase) das Auge eines Betrachters, schon gar nicht ueber einen Browser. Was der Inhalt eines Dokuments *bedeutet*, das ist also immer von der verarbeitenden Applikation abhaengig. XHTML kann nur deshalb in einer ganz bestimmten Weise dargestellt werden, weil das in http://www.w3.org/TR/REC-html40 beschrieben wurde.

    Warum jetzt ploetzlich alle Browser unbedingt XML-Doks darstellen muessen, ist mir ohnehin ein Raetsel. XHTML ist klar, dann wird hoffentlich endlich mal sauberes HTML geschrieben. Aber ein beliebiges XML-Dokument, wozu?

    So long

    1. 'Hallo Calocybe

      ja, das ist mir klar, daß XML nicht dazu bestimmt ist, dargestellt zu werden. Ich habe das mit dem Browser lediglich als Beispiel benutzt.
      Aber ich hoffe, ich habe Dich jetzt richtig verstanden:
      Ein Programm, welches XML-Daten verarbeitet, muss die Semantik der darin vorkommenden Tags kennen und es gibt keine irgendwo abgelegte Grundlage dafür (z.B. für SMIL braucht man einen speziellen "Browser", ein universellen "Browser" gibt es nicht).
      Klingt logisch. So dachte ich es mir auch. Wollte nur sicher gehen.

      Dank und Gruß
         Michael

      1. Hi Michael,

        Aber ich hoffe, ich habe Dich jetzt richtig verstanden:
        Ein Programm, welches XML-Daten verarbeitet, muss die Semantik der darin vorkommenden Tags kennen und es gibt keine irgendwo abgelegte Grundlage dafür (z.B. für SMIL braucht man einen speziellen "Browser", ein universellen "Browser" gibt es nicht).

        Nein, _so_ leicht ist es nicht. Es gibt schon ein Regelwerk für XML-Dateien (zu finden auf http://www.w3.org/), das auch einzuhalten ist. Dieses Regelwerk ist notwendig, damit:
        a) ein XML-Parser in der Lage ist, das Dokument zu lesen, und
        b) dieses durch eine interne Struktur zu repräsentieren (z.B. DOM oder SAX), was notwendig ist, um es durch die Applikation editierbar zu machen.

        Hältst Du Dich nicht an das w3c-Regelwerk für XML-Dateien, fliegt der Parser aber sofort aus der Kurve, und die Datei ist völlig unbrauchbar.

        Was am Anfang verwirrt ist, dass das Regelwerk nur sehr wenig vorschreibt. Der Knackpunkt ist: "XML" hast Du dicke in 10 Minuten erlernt. Aber das bringt Dir rein gar nichts - es ist nur die Basis für andere Dinge (und die können sehr vielfältig und kompliziert sein). Wenn Du Dich aber nicht an die XML-Semantik hältst, geht gar nichts.

        Grüße,

        Utz