Kein xmlns, trotzdem Namespace enthalten

Hallo,
in der Arbeit habe ich seit kurzem mit XML-Dateien zu tun und arbeite mich nun in die Auswertung mit Hilfe von JDOM ein. Nach den ersten Gehversuchen hab ich meine erste Frage :wink:

In der XML-Datei gibt es keinerlei Namespace-Deklarationen, sprich kein xmlns="…"-Attribut. Wenn ich jedoch das Root-Element herausziehe (in ein org.jdom.Element) und dieses auf der Console ausprinte erhalte ich so etwas:

[Element:]

Woher kommt die Namespace-Information, wenn in der XML nichts dergleichen drinsteht?

Viele Grüße,
Andreas

Hallo,

In der XML-Datei gibt es keinerlei Namespace-Deklarationen,
sprich kein xmlns="…"-Attribut. Wenn ich jedoch das
Root-Element herausziehe (in ein org.jdom.Element) und dieses
auf der Console ausprinte erhalte ich so etwas:

[Element:]

Kann ich nicht nachvollziehen, folgendes Beispiel

SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File("/tmp/test.xml"));
Element root = doc.getRootElement();
System.out.println("Root: " + root);

mit /tmp/test.xml

<?xml version="1.0" encoding="UTF-8"?>Value

erzeugt bei mir folgende Ausgabe:

Root: [Element:]

Bist du sicher, dass der Namespace nirgends definiert wurde?

Gruß
Heavy

Hallo Heavy,

Bist du sicher, dass der Namespace nirgends definiert wurde?

Ja, absolut. Ich hab in der XML nach der URI gesucht und auch nur nach einem „http“. Nichts.
Diese Deklaration am Anfang …

<?xml version="1.0" encoding="UTF-8"?>

… fehlt auch komplett.
Ansonsten hat das Root-Element noch einige Attribute. Datumswerte und Nummern, die vermutlich von der erzeugenden Software stammen. Aber es gibt kein xmlns-Attribut.

Hatte mich irritiert, da es in org.jdom.Element getter-Methoden gibt, die neben dem String-Parameter auch noch den Namespace-Parameter benötigen.
Die getChildren()-Methode liefert aus meiner ominösen XML z.B. nur Ergebnisse, wenn ich die Variante mit String und Namespace verwende. Mit String alleine kommt null, obwohl kein Namespace definiert ist. Sehr seltsam.

Aber morgen gehts eh wieder in die Arbeit, dann frag ich mal nach.

Gruß,
Andreas

Ok, hab’s nun gefunden.
Wenn ich die XML in einem beliebigen Texteditor anschaue, hat sie ein xmlns-Attribut. Der Browser allerdings zeigt das nicht an. Warum auch immer…

Gruß,
Andreas