Michael Kaufmann: Was ist ein XML Infoset?

Hallo,

Was ist ein XML Informational Set/InfoSet ? Bzw. Wie sieht es aus? Ich habe leider nirgends ein Beispiel gefunden (das ich verstehe). Ich muss das aber dummerweise für eine Klausur wissen. Kann mir das jemand bitte anhand dieses Beispiels erklären, wie ein XML InfoSet erstellt wird?

1: <?xml version = „1.0“ ?>
2: <order xmlns:meta=”http://example.org/meta”
3:        xmlns:bock=”http://example.org/book”>
4:    <book meta:price = „8.90“ meta:currency = „EUR“>
5:      book:titleDer Dativ ist dem Genitiv sein Tod</book:title>
6:      book:authorBastian Sick</book:author>
7:    </book>
8: </order>

Soweit ich weiss, ist ein XML InfoSet eine "komprimierte" Form eines XML Dokuments, das nur die Information erhält, ohne aber das ganze "blabla" von XML, also vielleicht sieht ein XML InfoSet dieses Beispiels so aus:
8,90;EUR,Der Dativ ist dem Genitiv sein Tod;Bastian Sick;

Ich weiss es nicht :-( Hat ein XML InfoSet überhaupt eine festgelegte Gestalt, oder muss sich aus dem InfoSet nur der Baum rekonstruieren lassen?

Ich weiss nicht, ob selfHTML der richtige Ort für diese Frage ist, aber immerhin hat es ja was mit XML zu tun.

Vielen Dank,
Michael

  1. moin Michael :)

    das w3c gibt dir über das XML-Infoset sehr genaue Auskunft.
    Mittlerweile gibt es dieses Dokument sogar auf deutsch.

    liebe Grüße und viel Spass beim lesen ;)
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. Hallo Lina,

      dieses Dokument habe ich schon gelesen - auf enlisch, auf deutsch, Wikipedia und Google habe ich befragt, aber ich werde nicht schlau daraus. Es fehlt mir einfach ein gutes Beispiel an dem ich erkennen kann, wie genau ich aus einem XML Dokument ein InfoSet baue.

      Grüße, Michael

      moin Michael :)

      das w3c gibt dir über das XML-Infoset sehr genaue Auskunft.
      Mittlerweile gibt es dieses Dokument sogar auf deutsch.

      liebe Grüße und viel Spass beim lesen ;)
      lina-

      1. Hallo,

        dieses Dokument habe ich schon gelesen - auf enlisch, auf deutsch, Wikipedia und Google habe ich befragt, aber ich werde nicht schlau daraus. Es fehlt mir einfach ein gutes Beispiel an dem ich erkennen kann, wie genau ich aus einem XML Dokument ein InfoSet baue.

        Entschuldige die Anmerkung, aber dann muss du nochmal und nochmal das Dokument lesen.
        Das sagt nämlich folgende Dinge eindeutig: "Diese Spezifikation definiert eine abstrakte Datenzusammenstellung, ... "

        Abstrakt, d.h. eben nicht konkret.
        Das Beispiel http://www.schumacher-netz.de/TR/2001/REC-xml-infoset-20011024-de.html#example1 erklärt aber recht gut (meine ich) was die versch. Informationseinheiten bedeuten.

        du kannst es ja an deinem Beispiel nachvollziehen (bzw. könntest wenn das Beispiel wohlgeformtes XML wäre xmlns=bock != book:)

        1: <?xml version = „1.0“ ?>
        2: <order xmlns:meta=”http://example.org/meta”
        3:        xmlns:bock=”http://example.org/book”>
        4:    <book meta:price = „8.90“ meta:currency = „EUR“>
        5:      book:titleDer Dativ ist dem Genitiv sein Tod</book:title>
        6:      book:authorBastian Sick</book:author>
        7:    </book>
        8: </order>

        Die (eine!) Informationseinheit für Dokumentelemente

        Zwei Informationseinheiten für Elemente ohne Namensraum (bzw. im Default-Namensraum) (wäre order und book)

        Zwei Informationseinheiten für Elemente mit dem Namensraumnamen "http://example.org/book", dem lokalem Teil "title" bzw. "author" und dem Präfix "book".

        Drei Informationseinheiten für Namensräume für den Namensraum http://www.w3.org/XML/1998/ (das ist quasi der Default-Namensraum für XML-Dokumente bei XML 1.0) und die Namensräume http://example.org/meta und http://example.org/book.

        Zwei Informationseinheit für Attribute mit dem Namensraumnamen "http://example.org/meta", dem lokalen Teil "price" bzw. "currency" und dem Präfix "meta" und dem normalisierten Werten "8.90" bzw. "EUR".

        Zwei Informationseinheiten für Attribute für die Namensraumattribute (xmlns und xmlns)

        Informationseinheiten für Zeichendaten für die vorhandenen Zeichendaten
        (ich habe jetzt nicht gezählt wie viele Zeichen "Der Dativ ist dem Genitiv sein Tod" und "Bastian Sick" ergeben)

        Und wenn ich mich nicht verzählt habe, stimmt das alles.

        Grüße
        Thomas

        1. Hallo Thomas,

          danke für die Antwort.

          Entschuldige die Anmerkung, aber dann muss du nochmal und nochmal das Dokument lesen.
          Das sagt nämlich folgende Dinge eindeutig: "Diese Spezifikation definiert eine abstrakte Datenzusammenstellung, ... "

          Ja ok, das ist mir schon klar.

          Abstrakt, d.h. eben nicht konkret.
          Das Beispiel http://www.schumacher-netz.de/TR/2001/REC-xml-infoset-20011024-de.html#example1 erklärt aber recht gut (meine ich) was die versch. Informationseinheiten bedeuten.

          du kannst es ja an deinem Beispiel nachvollziehen (bzw. könntest wenn das Beispiel wohlgeformtes XML wäre xmlns=bock != book:)

          Das stammt direkt aus der Feder meines Professors. Leider ist in dem Script nahezu nichts korrekt (was nicht heisst der Prof ist schlecht, im Gegenteil, aber er nimmt's nicht wirklich genau mit der Korrektheit bzw. Wohlgeformtheit).

          Und wenn ich mich nicht verzählt habe, stimmt das alles.

          Hm....ja, das glaube ich dir, aber meiner Meinung nach wäre es, nicht die Lösung für "Wandeln Sie diese XML Datei in ein XML InfoSet um". Darunter stelle ich mir eher das vor, was Lina gepostet hat.
          Nuja...ich hab's jetzt kapiert - das ist das wichtigste.

          Danke! Michael

          1. Hallo,

            du kannst es ja an deinem Beispiel nachvollziehen (bzw. könntest wenn das Beispiel wohlgeformtes XML wäre xmlns=bock != book:)
            Das stammt direkt aus der Feder meines Professors. Leider ist in dem Script nahezu nichts korrekt (was nicht heisst der Prof ist schlecht, im Gegenteil, aber er nimmt's nicht wirklich genau mit der Korrektheit bzw. Wohlgeformtheit).

            no comment.

            aber meiner Meinung nach wäre es, nicht die Lösung für "Wandeln Sie diese XML Datei in ein XML InfoSet um".

            Hmm... jein  "ein XML InfoSet erstellt wird" gibts ja in dem Sinne nicht, weil es ja nur ein abstraktes Konzept ist.

            »»Darunter stelle ich mir eher das vor, was Lina gepostet hat.

            Ja, sie hat deine Frage besser verstanden als ich. :-)

            Nuja...ich hab's jetzt kapiert - das ist das wichtigste.

            Kein wiederspruch ;-)

            Grüße
            Thomas

            1. moin Thomas  :)

              Hmm... jein  "ein XML InfoSet erstellt wird" gibts ja in dem Sinne nicht, weil es ja nur ein abstraktes Konzept ist.

              Und trotzdem musste ich sowas in meinem Studium auch erstellen *G*
              Allerdings ging es bei uns noch härter zur Sache mit korrekter UML-Syntax (also die Items als Klassen etc...)

              Nuja...ich hab's jetzt kapiert - das ist das wichtigste.

              @ Michael: Das freut mich!

              liebe Grüße aus Berlin
              lina-

              --
              Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
              1. Hallo,

                Hmm... jein  "ein XML InfoSet erstellt wird" gibts ja in dem Sinne nicht, weil es ja nur ein abstraktes Konzept ist.

                Und trotzdem musste ich sowas in meinem Studium auch erstellen *G*
                Allerdings ging es bei uns noch härter zur Sache mit korrekter UML-Syntax (also die Items als Klassen etc...)

                Auch nett ;-)

                Nuja...ich hab's jetzt kapiert - das ist das wichtigste.
                @ Michael: Das freut mich!

                Da fällt mir ein bzw. auf:
                 DIE
                (name)
                  |
                  |
                 CII
                (Beate)

                müsste genaugenommen so dargestellt werden:
                 DIE
                (name)
                   |
                  ------------------
                  |        |       |
                  |        |       |
                 CII      CII     CII
                (B)       (e)     (a)  ... etc.

                Grüße
                Thomas

                1. moin Thomas :)

                  Da fällt mir ein bzw. auf:
                  DIE
                  (name)
                    |
                    |
                  CII
                  (Beate)

                  müsste genaugenommen so dargestellt werden:
                  DIE
                  (name)
                     |
                    ------------------
                    |        |       |
                    |        |       |
                  CII      CII     CII
                  (B)       (e)     (a)  ... etc.

                  Vollkommen richtig!
                  War ich ehrlich gesagt einfach nur zu faul ;) und meine Ascii-Art-Künste lassen ja auch sehr zu wünschen übrig ;)

                  liebe Grüße (und ein wunderschönes langes WE) aus Berlin
                  lina-

                  --
                  Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
                  1. liebe Grüße (und ein wunderschönes langes WE) aus Berlin

                    lina-,
                    Haben denn Thomas und all die anderen Österreicher auch Feiertag? ;-)

                    Live long and prosper,
                    Gunnar

                    --
                    „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
                    1. moin Gunnar :)

                      Haben denn Thomas und all die anderen Österreicher auch Feiertag? ;-)

                      öööhm ... ich wollt ja nur mal angeben mit meinem freien Tag (der im süden so dermaßen ins Wasser gefallen ist...)
                      *g*

                      liebe Grüße aus Berlin
                      lina-

                      --
                      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
                  2. Hallo,

                    Vollkommen richtig!
                    War ich ehrlich gesagt einfach nur zu faul ;) und meine Ascii-Art-Künste lassen ja auch sehr zu wünschen übrig ;)

                    nein, es ist schon OK, das zusammen zu schreiben:

                    "Jedes Zeichen ist logisch betrachtet eine allein stehende Informationseinheit. Es steht XML-Anwendungen jedoch frei, Zeichen in größeren Gruppen zusammenzufassen, wenn dies notwendig oder wünschenswert ist." (http://www.schumacher-netz.de/TR/2001/REC-xml-infoset-20011024-de.html#dt-infoitem-character)

                    Grüsse, Michael

                    1. Hallo,

                      Vollkommen richtig!
                      War ich ehrlich gesagt einfach nur zu faul ;) und meine Ascii-Art-Künste lassen ja auch sehr zu wünschen übrig ;)

                      nein, es ist schon OK, das zusammen zu schreiben:

                      Da dein Prof. ja sowieso keinen Wert auf korrekte Formulierung legt: ja, sonst nein.

                      "Jedes Zeichen ist logisch betrachtet eine allein stehende Informationseinheit. Es steht XML-Anwendungen jedoch frei, Zeichen in größeren Gruppen zusammenzufassen, wenn dies notwendig oder wünschenswert ist." (http://www.schumacher-netz.de/TR/2001/REC-xml-infoset-20011024-de.html#dt-infoitem-character)

                      Das ist natürlich korrekt, aber du bist keine XML-Anwendung ;-)

                      Grüße
                      Thomas

      2. moin Michael Kaufmann :)

        dieses Dokument habe ich schon gelesen - auf enlisch, auf deutsch, Wikipedia und Google habe ich befragt, aber ich werde nicht schlau daraus.

        Gut .. dann baue ich auf Vorwissen auf...

        Es fehlt mir einfach ein gutes Beispiel an dem ich erkennen kann, wie genau ich aus einem XML Dokument ein InfoSet baue.

        Ich bin nich soo gut im erklären - aber ich versuchs mal:

        nehmen wir dieses Beispiel:
         <?xml version="1.0" encoding="ISO-8859-15" standalone="yes"?>
         <SelfhtmlForum>
         <Frage thema="XML">Was ist ein XML InfoSet?</Frage>
          <Antwort>
           <von status="keine Lehrerin">
             <name>Beate</name>
           </von>
           <an>
              <name>Michael</name>
              <nachname>Kaufmann</nachname>
             </an>
         </Antwort>
        </SelfhtmlForum>

        Du weisst ja bereits, dass ein Information set aus verschiedenen Items besteht (und bestehen muss um wohlgeformt zu sein)

        Das Document Information Item ist Zeile 1.
        Das Document Information Item muss ein Document Element Item enthalten (in unserem Beispiel Zeile 2).
        Das Document Element Item enthält ein Child, das wiederrum ein Attribut Information Item enthält (thema). Ausserdem enthält es wiederum ein Document Element Items (Antwort), welches in sich ebenfalls zwei Document Element Items (von und an) enthält.
        Zusätzlich enthalten die beiden zuletzt genannten Items sogenannte Character Information Items

        In unserem Beispiel haben wir also ein (rudimentäres) Information Set von
        DIE =Document Information Element
        DII =Document Information Item
        CII =Character Information Item
        AII =Atttibute Information Item

        DII(zeile1)
                                        |
                                       DIE
                                  (SelfhtmlForum)
                                        |
                          | ------------|----------|
                          |                        |
                         DIE                      DIE
                       (Frage)                  (Antwort)
                          |                        |
            | ------------|----------|   (...)-----|---------|
            |                        |                       |
           CII                      AII                     DIE
        (Was ist...)              (Thema)                  (von)
                                                             |
                                               | ------------|----------|
                                               |                        |
                                              DIE                      AII
                                             (name)                  (status)
                                               |
                                               |
                                              CII
                                            (Beate)

        Dieser Baum erhelbt keinen Anspruch auf Vollständigkeit ;)
        Kannst du das machen? *breitgrins*
        Was fehlt? Wie muss der entsprechende Teilbaum ausschaun?

        liebe Grüße aus Berlin
        lina-

        --
        Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
        1. Hi Lina,

          genau das habe ich gebraucht! Danke! Fleissig wie ich bin, hab ich's auch verfollständigt, jetzt da ich's (hoffentlich) kapiert habe :-)

          DII-1
                                          |
                                        DIE-1
                                   (SelfhtmlForum)
                                          |
                            | ------------|-------------|
                            |                           |
                          DIE-2                       DIE-3
                         (Frage)                    (Antwort)
                            |                           |
              | ------------|----------|       |--------|--------|
              |                        |       |                 |
            CII-1                    AII-1   DIE-6             DIE-4
          (Was ist...)              (Thema)  (an)              (von)
                                                                 |
                                                    | -----------|----------|
                                                    |                       |
                                                  DIE-5                   AII-2
                                                 (name)                  (status)
                                                    |
                                                    |
                                                  CII-2
                                                 (Beate)

          DIE-6
                           (an)
                             |
                  |----------|----------|
                  |                     |
                DIE-7                DIE-8
                (name)             (nachname)
                  |                     |
                  |                     |
                CII-3                 CII-4
               (Michael)           (Kaufmann)

          Und nochmal mit allen "Attributen":

          DII: DII-1
          standalone=yes
          version=1.0
          character encoding scheme=ISO-8859-15
          document element=SelfhtmlForum

          DIE: DIE-1
          local name=SelfhtmlForum
          children=Frage, Antwort

          DIE: DIE-2
          local name=Frage
          attributes=thema
          children=CII-1
          parent=SelfhtmlForum

          CII: CII-1
          parent=Frage
          character code=Was ist ein XML InfoSet?

          AII: AII-1
          local name=thema
          normalized value=XML
          owner element=Frage

          DIE: DIE-3
          local name=Antwort
          children=von, an
          parent=SelfhtmlForum

          DIE: DIE-4
          local name=von
          children=name
          attribues=status
          parent=Antwort

          AII: AII-2
          local name=status
          owner element=von
          normalized value=keine Lehrerin

          DIE: DIE-5
          local name=name
          children=CII-2
          parent=von

          CII: CII-2
          parent=name
          character code=Beate

          DIE: DIE-6
          local name=an
          children=name, nachname
          parent=Antwort

          DIE: DIE-7
          local name=name
          parent=an
          children=CII-3

          DIE: DIE-8
          local name=nachname
          parent=an
          children=CII-4

          CII: CII-3
          parent=name
          character code=Michael

          CII: CII-4
          parent=nachname
          character code=Kaufmann

          So, ich hoffe wirklich, dass das alles so korrekt ist. Vielen Dank nochmal :-)

          Grüße aus Stuttgart,
          Michael

          1. moin Michael :)

            So, ich hoffe wirklich, dass das alles so korrekt ist. Vielen Dank nochmal :-)

            hab jedenfalls keinen Fehler gesehen :)

            Drücke dir ganz fest die Daumen für die Klausur oder die Hausaufgabe oder was immer du damit machen musst :)

            liebe Grüße aus Berlin
            lina-

            --
            Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)