Julia: XML Information Set

Hallo Forum,

ich habe ein kurzes XML-Dokument gegeben und muss alle Information Items (Infoitem) des Dokuments angeben.

<? xml version ="1.0" encoding ="UTF -8"?>
<e1 xmlns ="http: //X.de" xmlns:n1 ="http: //Y.de">
  <n1:e2 a=" hello " n1:b =" world ">Uni</ n1:e2 >
</e1 >

Wir haben:

  1. 1 Dokument Infoitem
  2. 1 Element Infoitem mit default-Namespace ("http: //X.de")
  3. 1 Element Infoitem mit n1-Namespace ("http: //Y.de")
  4. 2 Namespace Infoterms
  5. 2 Attribute Infoitems für Namespace-Angaben
  6. 1 Attribut Infoitem ohne Namespace (a)
  7. 1 Attribut Infoitem mit n1-Namespace
  8. 3 Character Infoitems für Uni

Ist es korrekt? Ich bin mit v.a. bei Punkten 4 und 5 nicht ganz sicher.

Bei 4: wir haben explizit 2 Namespace angegeben und das default-Namespace ist hier (wenn ich es richtig verstehe) überschrieben, deswegen nicht mehr Teil von Infoset. Ist es richtig?

Bei 5: Wenn ich es richtig verstanden habe, müssen wir die Namespace nicht nur als Namespace Infoitem, sondern auch noch mal als Attribut angeben. Ist es korrekt?

Schönen Dank im Voraus!

Julia

  1. Hallo Julia,

    ich habe ein kurzes XML-Dokument gegeben und muss alle Information Items (Infoitem) des Dokuments angeben.

    Kurze Frage vorweg: Was sind Information Items?

    <? xml version ="1.0" encoding ="UTF -8"?>
    <e1 xmlns ="http: //X.de" xmlns:n1 ="http: //Y.de">
      <n1:e2 a=" hello " n1:b =" world ">Uni</ n1:e2 >
    </e1 >
    

    Zweite Frage vorweg: Wo kommen die ganzen Leerzeichen an ungewohnten Stellen her? Ich sehe in dem Beispiel, so wie es da steht, mehrere Probleme:

    • Leerzeichen zwischen <? und xml
    • Eine Kodierung namens UTF -8
    • Ein ungültiges Leerzeichen in der Namensraum-URL zwischen http: und //
    • Leerzeichen in schließenden Tags

    Wir haben:

    1. 1 Dokument Infoitem
    2. 1 Element Infoitem mit default-Namespace ("http: //X.de")
    3. 1 Element Infoitem mit n1-Namespace ("http: //Y.de")
    4. 2 Namespace Infoterms
    5. 2 Attribute Infoitems für Namespace-Angaben
    6. 1 Attribut Infoitem ohne Namespace (a)
    7. 1 Attribut Infoitem mit n1-Namespace
    8. 3 Character Infoitems für Uni

    Ist es korrekt? Ich bin mit v.a. bei Punkten 4 und 5 nicht ganz sicher.

    Keine Ahnung, siehe oben: Was sind Infoitems? Die Definition des Begriffs kann bei Beantwortung deiner Frage helfen.

    Bei 4: wir haben explizit 2 Namespace angegeben und das default-Namespace ist hier (wenn ich es richtig verstehe) überschrieben, deswegen nicht mehr Teil von Infoset. Ist es richtig?

    Nö, der Default-Namensraum ist angegeben. Wenn du das nicht machst, sind die Elemente im anonymen Namensraum.

    Bei 5: Wenn ich es richtig verstanden habe, müssen wir die Namespace nicht nur als Namespace Infoitem, sondern auch noch mal als Attribut angeben. Ist es korrekt?

    XML-Namensräume werden durch URLs repräsentiert. Folgendes ginge AFAIK nicht:

    <e1>
      <n1:e2 a="hello" n1:b="world">Uni</n1:e2>
    </e1>
    

    Viele Grüße
    Robert

    1. Hallo Robert,

      XML-Namensräume werden durch URLs repräsentiert. Folgendes ginge AFAIK nicht:

      <e1>
        <n1:e2 a="hello" n1:b="world">Uni</n1:e2>
      </e1>
      

      Namensräume müssen eindeutig sein, also Strings sind ok.

      <e1 xmlns:n1="blablub">
        <n1:e2 a="hello" n1:b="world">Uni</n1:e2>
      </e1>
      
      

      Sieht man z. B. bei solchen Angaben: urn:schemas-microsoft-com:office:spreadsheet (Workbook-Default-NS einer Excel-Kalkulationstabelle im XML-Format).

      Als Konvention werden allerdings häufig URIs verwendet, vor allem bei W3C-Standards.

      Grüße,
      Thomas

  2. Hallo Julia,

    Wir haben:

    1. 1 Dokument Infoitem
    2. 1 Element Infoitem mit default-Namespace ("http: //X.de")
    3. 1 Element Infoitem mit n1-Namespace ("http: //Y.de")
    4. 2 Namespace Infoterms
    5. 2 Attribute Infoitems für Namespace-Angaben
    6. 1 Attribut Infoitem ohne Namespace (a)
    7. 1 Attribut Infoitem mit n1-Namespace
    8. 3 Character Infoitems für Uni

    Ist es korrekt? Ich bin mit v.a. bei Punkten 4 und 5 nicht ganz sicher.

    Ja, nur bei 4. sind es drei, da der Default-NS http://www.w3.org/XML/1998/namespace dazu gehört. Die bereits bemängelten Leerzeichen sind natürlich nicht korrekt.

    Zum Weiterlesen.

    Grüße,
    Thomas

    1. Hallo Thomas,

      […] der Default-NS http://www.w3.org/XML/1998/namespace […]

      gut zu wissen, Danke!

      Viele Grüße
      Robert

    2. Hallo Thomas,

      vielen Dank für Deine Antwort!

      Die Leerzeichen sind bestimmt durch das Kopieren aus PDF entstanden, sorry.

      Ok, also muss der Default-Namespace doch rein, obwohl wir den überschrieben haben. Oder haben wir es gar nicht?

      Noch mal danke und viele Grüße

      Julia

      1. Hallo Julia,

        Ok, also muss der Default-Namespace doch rein, obwohl wir den überschrieben haben. Oder haben wir es gar nicht?

        Gemeint ist der Default-Namespace für xml:* (also xml:lang, xml:space, xml:base, xml:id).

        Grüße,
        Thomas