www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenSonstigesxml namespaces
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Sonstiges" - xml namespaces
xml namespaces < Sonstiges < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

xml namespaces: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:19 Di 26.02.2008
Autor: Bastiane

Hallo zusammen!

Ich beschäftige mich gerade mal wieder mit xml und den "Namespaces". Kann mir jemand mal ganz simpel sagen, was das überhaupt ist? Man liest ja von "Namensraum", und []hier habe ich dann auch mal was gefunden, was mir einiges ein bisschen klarer macht, aber was eigentlich ein Namespace ist bzw. wofür dies gut ist, weiß ich immer noch nicht. Warum wird da eine URL angegeben? Was für eine URL ist das/muss das sein? (Alle, URLs in den Beispielen geben mir nur eine Fehlermeldung, wenn ich sie eingebe...) Und was steht dann in der URL?

Viele Grüße
Bastiane
[cap]

        
Bezug
xml namespaces: Namespace-Attribut
Status: (Frage) beantwortet Status 
Datum: 17:01 Di 26.02.2008
Autor: Bastiane

Hallo nochmal!

Ich hab' da gerade noch eine Frage, und zwar: Was ist ein Namespace-Attribut? Was ein Attribut ist, weiß ich ja mittlerweile, so eine Art weitere Eigenschaft eines Elements. Und wenn ich dann als weitere Eigenschaft ein Namespace dahin schreibe, ist das dann ein Namespace-Attribut? Und das andere ist die Namespace-Deklaration und was anderes gibt's nicht, oder wie ist das gedacht?

Viele Grüße
Bastiane
[cap]

Bezug
                
Bezug
xml namespaces: Antwort
Status: (Antwort) fertig Status 
Datum: 20:06 Di 26.02.2008
Autor: rainerS

Hallo Bastiane!

> Ich hab' da gerade noch eine Frage, und zwar: Was ist ein
> Namespace-Attribut? Was ein Attribut ist, weiß ich ja
> mittlerweile, so eine Art weitere Eigenschaft eines
> Elements. Und wenn ich dann als weitere Eigenschaft ein
> Namespace dahin schreibe, ist das dann ein
> Namespace-Attribut? Und das andere ist die
> Namespace-Deklaration und was anderes gibt's nicht, oder
> wie ist das gedacht?

Ich nehme an, es sind die Attribute mit Namen "xmlns" oder "xmlns:blabla" gemeint. Der []Standard nennt das "Namespace declaration attribute". Es handelt sich also um die Namespace-Deklaration für das aktuelle Element und seine Kinder.

Viele Grüße
   Rainer


Bezug
        
Bezug
xml namespaces: Antwort
Status: (Antwort) fertig Status 
Datum: 18:05 Di 26.02.2008
Autor: piet.t

Hallo Bastiane,
>  

> Ich beschäftige mich gerade mal wieder mit xml und den
> "Namespaces". Kann mir jemand mal ganz simpel sagen, was
> das überhaupt ist?

wenn jeder die Struktur seiner xml-Dokumente für sich alleine festelgen könnte, dann könnte man gut auf Namensräume verzichten, allerdings kann es in der Praxis leicht vorkommen, dass man z.B. xml-Schemata oder DTDs aus verschiedenen Quellen in einem xml-Dokument verheiraten will oder muss. Und da manche Begriffe als Elementnamen äusserst beliebt sind kommt es dabei auch leicht zu doppeldeutigen Elementnamen.
Beispiel: Du erstellst ein xml-Schema für mathematische Formeln und führst dabei ein Element "wurzel" ein. Unabhängig davon erstelle auch ich ein Schema mit einem Element "wurzel", verstehe darunter aber z.b. das Root-Element meines xml-files.
Wenn ich nun in meinem File Elemente aus deinem Schema unterbringen will, dann muss ja irgendwie unterschieden werden können, was ich nun meine, wenn ich "wurzel" schreibe - und genau dazu dienen Namensräume. Wenn ich mein "wurzel"-Wlement meine, dann schreibe ich z.B. "piet:wurzel", bei deinem "bastiane:wurzel" und schon sind alle Doppeldeutigkeiten aufgehoben.

> Warum wird da eine URL angegeben? Was für eine URL ist
> das/muss das sein? (Alle, URLs in den Beispielen geben mir
> nur eine Fehlermeldung, wenn ich sie eingebe...) Und was
> steht dann in der URL?

Namensräume machen nur dann Sinn, wenn sichergestellt ist, dass ich im ganzen Internet niemals auf zwei Namensräume mit gleichem Namen treffen kann (dann bräuchte man ja wieder Meta-Namensräume, um die Namensräume zu unterscheiden....). Daher wählt man als eindeutigen Bezeichner für einen Namensraum etwas, das wie eine URL aussieht - Dann kann man zumindest davon ausgehen, dass kein wildfremder den gleichen Domain-Namen verwendet. Hinterlegt ist unter dieser URL eigentlich gar nichts, wie gesagt dient sie nur als der weltweit eindeutige Bezeichner.

Jetzt haben wir aber zwei Arten der Benennung von Namensräumen gesehen: "bastiane" wie in "bastiane:wurzel" und irgendwelche URLs. Was stimmt denn nun? Die eigentliche Bezeichnung für den Namensraum ist die URL (z.B. https://matheraum.de/Bastiane), aber weil man die nicht in jedem Element komplett hinschreiben will führt man eine passende Abkürzung ein, indem man angibt:
xmlns:bastiane="https://matheraum.de/Bastiane"
was bedeutet: wenn ein Element das Präfix "bastiane" hat, dann gehört es zum Namensraum https://matheraum.de/Bastiane.
Das ist dann die Namespace-Deklaration. die kann in einem beliebigen Element stehen und gilt für das Element selbst und alle Kindelemente (ausser es ist in denen wieder etwas anderes angegeben). Nachdem das ganze als Attribut notiert wird ist mit "Namespace-Attribut" wohl ziemlich das gleiche gemeint, aber da bin ich mir nicht ganz sicher.

So, das war schon mal viel Text, vielleicht hilfts ein bisschen....

Gruß

piet

Bezug
                
Bezug
xml namespaces: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:42 Di 26.02.2008
Autor: Bastiane

Hallo piet.t!

Vielen Dank schon mal für deine Antwort, und auch an Rainer danke für die andere Antwort. :-)

> > Ich beschäftige mich gerade mal wieder mit xml und den
> > "Namespaces". Kann mir jemand mal ganz simpel sagen, was
> > das überhaupt ist?
>  wenn jeder die Struktur seiner xml-Dokumente für sich
> alleine festelgen könnte, dann könnte man gut auf
> Namensräume verzichten, allerdings kann es in der Praxis
> leicht vorkommen, dass man z.B. xml-Schemata oder DTDs aus
> verschiedenen Quellen in einem xml-Dokument verheiraten
> will oder muss. Und da manche Begriffe als Elementnamen
> äusserst beliebt sind kommt es dabei auch leicht zu
> doppeldeutigen Elementnamen.
>  Beispiel: Du erstellst ein xml-Schema für mathematische
> Formeln und führst dabei ein Element "wurzel" ein.
> Unabhängig davon erstelle auch ich ein Schema mit einem
> Element "wurzel", verstehe darunter aber z.b. das
> Root-Element meines xml-files.
>  Wenn ich nun in meinem File Elemente aus deinem Schema
> unterbringen will, dann muss ja irgendwie unterschieden
> werden können, was ich nun meine, wenn ich "wurzel"
> schreibe - und genau dazu dienen Namensräume. Wenn ich mein
> "wurzel"-Wlement meine, dann schreibe ich z.B.
> "piet:wurzel", bei deinem "bastiane:wurzel" und schon sind
> alle Doppeldeutigkeiten aufgehoben.

Danke für diese schöne Erklärung. So etwas ähnliches hatte ich mir schon gedacht, aber ich hätte es nicht in Worte fassen können. Dein Beispiel trägt sehr zum Verständnis bei. :-)
  

> > Warum wird da eine URL angegeben? Was für eine URL ist
> > das/muss das sein? (Alle, URLs in den Beispielen geben mir
> > nur eine Fehlermeldung, wenn ich sie eingebe...) Und was
> > steht dann in der URL?
>  Namensräume machen nur dann Sinn, wenn sichergestellt ist,
> dass ich im ganzen Internet niemals auf zwei Namensräume
> mit gleichem Namen treffen kann (dann bräuchte man ja
> wieder Meta-Namensräume, um die Namensräume zu
> unterscheiden....). Daher wählt man als eindeutigen
> Bezeichner für einen Namensraum etwas, das wie eine URL
> aussieht - Dann kann man zumindest davon ausgehen, dass
> kein wildfremder den gleichen Domain-Namen verwendet.
> Hinterlegt ist unter dieser URL eigentlich gar nichts, wie
> gesagt dient sie nur als der weltweit eindeutige
> Bezeichner.

Ich bin mir nicht ganz sicher, ob ich das jetzt verstehe. Also der "namespace" ist nur eine Bezeichnung? Das heißt, mit der angegebenen URL lege ich quasi nur fest, dass diese namespace jetzt reserviert ist oder wie? [kopfkratz] Ich glaub', ich versteh das doch noch nicht, vielleicht könntest du da noch etwas zu erzählen?

> Jetzt haben wir aber zwei Arten der Benennung von
> Namensräumen gesehen: "bastiane" wie in "bastiane:wurzel"
> und irgendwelche URLs. Was stimmt denn nun? Die eigentliche
> Bezeichnung für den Namensraum ist die URL (z.B.
> https://matheraum.de/Bastiane), aber weil man die nicht
> in jedem Element komplett hinschreiben will führt man eine
> passende Abkürzung ein, indem man angibt:
>  xmlns:bastiane="https://matheraum.de/Bastiane"
>  was bedeutet: wenn ein Element das Präfix "bastiane" hat,
> dann gehört es zum Namensraum
> https://matheraum.de/Bastiane.

Ja, das hatte ich mittlerweile auch verstanden. Nur kann ich mir bisher nicht merken, wo denn jetzt das "bastiane" steht, bei der Deklaration steht es ja erst als zweites, weil davon xmlns stehen muss, und wenn ich es dann "anwende", steht es als erstes, weil als zweites dann "wurzel" steht (nennt sich das dann Elementname?). Vielleicht merke ich mir jetzt dieses Beispiel, denn damit ist es klar. :-)

>  Das ist dann die Namespace-Deklaration. die kann in einem
> beliebigen Element stehen und gilt für das Element selbst
> und alle Kindelemente (ausser es ist in denen wieder etwas
> anderes angegeben). Nachdem das ganze als Attribut notiert
> wird ist mit "Namespace-Attribut" wohl ziemlich das gleiche
> gemeint, aber da bin ich mir nicht ganz sicher.

Ja, das stand auch in unseren Unterlagen. Und ich glaube, für andere Attribute gilt es auch nicht - aber auf die Feinheiten kommt es mir im Moment nicht an. Ich muss erst mal verstehen, worum es überhaupt geht...

Viele Grüße
Bastiane
[cap]

Bezug
                        
Bezug
xml namespaces: Antwort
Status: (Antwort) fertig Status 
Datum: 22:54 Di 26.02.2008
Autor: rainerS

Hallo Bastiane!

> Ich bin mir nicht ganz sicher, ob ich das jetzt verstehe.
> Also der "namespace" ist nur eine Bezeichnung? Das heißt,
> mit der angegebenen URL lege ich quasi nur fest, dass diese
> namespace jetzt reserviert ist oder wie? [kopfkratz] Ich
> glaub', ich versteh das doch noch nicht, vielleicht
> könntest du da noch etwas zu erzählen?

Der Namespace hat einen Namen, das ist das Ding, was bei der Deklaration hinter dem "xmlns:" steht und bei der Anwendung vor dem Doppelpunkt. Der Namen dient nur dazu, das Ding anzusprechen, so ähnlich wie eine Variable in einem Programm. Die URL dient dazu, festzustellen, ob zwei Namespaces gleich sind. Die Regel ist ganz einfach: zwei Namespaces sind identisch, wenn die zugehörigen URLs in der Namespace-Deklaration die gleichen Strings sind. Das ist das einzige Kriterium, das für die XML-Verarbeitung wichtig ist: der XML-Prozessor muss erkennen können, welcher Namespace wozu gehört, damit er die Elemente richtig zuordnen kann. Die URL selber hat keine Bedeutung für die XML-Verarbeitung.

Viele Grüße
   Rainer

Bezug
                                
Bezug
xml namespaces: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 09:12 Mi 27.02.2008
Autor: Bastiane

Hallo rainerS!

> Der Namespace hat einen Namen, das ist das Ding, was bei
> der Deklaration hinter dem "xmlns:" steht und bei der
> Anwendung vor dem Doppelpunkt. Der Namen dient nur dazu,
> das Ding anzusprechen, so ähnlich wie eine Variable in
> einem Programm. Die URL dient dazu, festzustellen, ob zwei
> Namespaces gleich sind. Die Regel ist ganz einfach: zwei
> Namespaces sind identisch, wenn die zugehörigen URLs in der
> Namespace-Deklaration die gleichen Strings sind. Das ist
> das einzige Kriterium, das für die XML-Verarbeitung wichtig
> ist: der XML-Prozessor muss erkennen können, welcher
> Namespace wozu gehört, damit er die Elemente richtig
> zuordnen kann. Die URL selber hat keine Bedeutung für die
> XML-Verarbeitung.

Das heißt, statt einer URL könnte ich da auch "Apfel" und "Birne" hinschreiben? Und wenn dann zwei Elemente zu Apfel gehören sind sie gleich?

Viele Grüße
Bastiane
[cap]

Bezug
                                        
Bezug
xml namespaces: Antwort
Status: (Antwort) fertig Status 
Datum: 10:27 Mi 27.02.2008
Autor: rainerS

Hallo Bastiane!

> Hallo rainerS!
>  
> > Der Namespace hat einen Namen, das ist das Ding, was bei
> > der Deklaration hinter dem "xmlns:" steht und bei der
> > Anwendung vor dem Doppelpunkt. Der Namen dient nur dazu,
> > das Ding anzusprechen, so ähnlich wie eine Variable in
> > einem Programm. Die URL dient dazu, festzustellen, ob zwei
> > Namespaces gleich sind. Die Regel ist ganz einfach: zwei
> > Namespaces sind identisch, wenn die zugehörigen URLs in der
> > Namespace-Deklaration die gleichen Strings sind. Das ist
> > das einzige Kriterium, das für die XML-Verarbeitung wichtig
> > ist: der XML-Prozessor muss erkennen können, welcher
> > Namespace wozu gehört, damit er die Elemente richtig
> > zuordnen kann. Die URL selber hat keine Bedeutung für die
> > XML-Verarbeitung.
>  
> Das heißt, statt einer URL könnte ich da auch "Apfel" und
> "Birne" hinschreiben?

Nein, du musst schon eine URL (genauer: URI) schreiben, das schreibt der Standard vor.

> Und wenn dann zwei Elemente zu Apfel
> gehören sind sie gleich?

Unpräzise formuliert, aber ich glaube, du meinst das Richtige. Du musst unterscheiden zwischen
a) dem Namen des Namespaces: die URI
b) das Namespace-Präfix: das ist das "xxx" im Elementnamen "xxx:element".
c) den lokalen Namen, das ist das "element" im Elementnamen "xxx:element"

Die Namespace-Deklaration stellt eine Beziehung zwischen a) und b) her.

Die Interpretation von "xxx:element" geht so:
Zunächst wird nachgeschaut, welcher Namespace zum Präfix "xxx" gehört, anhand der aktuell gültigen Namespace-Deklarationen, das ergibt eine URI (einen String)
Dann wird die Bedeutung des lokalen Namens "element" in dem durch diesen Namen (diese URI) eindeutig bestimmten Namespace nachgeschaut.

Das bedeutet: wenn du "xxx:element" und "yyy:element" hast, und sowohl "xxx" als auch "yyy" als Namespace mit dem Namen "http://bastiane.de/Apfel" deklariert wurden, dann bezeichnen "xxx:element" und "yyy:element" das Gleiche.

  Viele Grüße
    Rainer

Bezug
                                                
Bezug
xml namespaces: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:47 Do 28.02.2008
Autor: Bastiane

Hallo rainerS!

> > Und wenn dann zwei Elemente zu Apfel
> > gehören sind sie gleich?
>  
> Unpräzise formuliert, aber ich glaube, du meinst das
> Richtige. Du musst unterscheiden zwischen
>  a) dem Namen des Namespaces: die URI
>  b) das Namespace-Präfix: das ist das "xxx" im Elementnamen
> "xxx:element".
>  c) den lokalen Namen, das ist das "element" im
> Elementnamen "xxx:element"

Ja, ich dachte mir schon, dass das nicht korrekt formuliert ist, aber ich konnte mich nicht anders ausdrücken. :-)
  

> Die Namespace-Deklaration stellt eine Beziehung zwischen a)
> und b) her.
>
> Die Interpretation von "xxx:element" geht so:
>  Zunächst wird nachgeschaut, welcher Namespace zum Präfix
> "xxx" gehört, anhand der aktuell gültigen
> Namespace-Deklarationen, das ergibt eine URI (einen
> String)
>  Dann wird die Bedeutung des lokalen Namens "element" in
> dem durch diesen Namen (diese URI) eindeutig bestimmten
> Namespace nachgeschaut.
>  
> Das bedeutet: wenn du "xxx:element" und "yyy:element" hast,
> und sowohl "xxx" als auch "yyy" als Namespace mit dem Namen
> "http://bastiane.de/Apfel" deklariert wurden, dann
> bezeichnen "xxx:element" und "yyy:element" das Gleiche.

Danke für die schöne Erklärung. Werde es mir sicher noch mehrmals durchlesen, bis ich es wirklich weiß, weil ich es immer sehr schnell wieder vergesse... [kopfschuettel] Aber ich denke, ich habe es jetzt verstanden. [sunny]

Viele Grüße
Bastiane
[cap]

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Sonstiges"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]