Nochmal Namensräume
Thomas Mell
- xml
Hallo,
ich habe noch mal ein paar Fragen zu Namensräumen.
Beispiele:
<x xmlns:edi='http://ecommerce.org/schema'/>
oder
<x xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'/>
x gehört zu keinen Namensraum (bzw. einem imaginären „root“-Namensraum)
<x xmlns="http://blablub.com"
xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'/>
x und alle Unterelemente (sofern nicht anderen Namensräumen zugewiesen) gehört zum Namensraum http://blablub.com
<xyz:x xmlns:xyz="http://blablub.com"
xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'/>
x gehört zum Namensraum xyz, jedoch nicht die Unterelemente wenn kein Namensraum vor dem Elementname geschrieben ist.
Oder erben die Kinder den Namensraum des Parent?
<xyz:x xmlns:xyz="http://blablub.com"
xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'>
<child/>
</x>
Besitzt ‘child’ nun den ‘root’-Namensraum oder ‘xyz’ ?
Grüße Thomas
Hi!
<xyz:x xmlns:xyz="http://blablub.com"
xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'>
<child/>
</x>
Besitzt ‘child’ nun den ‘root’-Namensraum oder ‘xyz’ ?
Du musst immer den Namensraum angeben wenn du ihn benutzt.
Dementprechend gehört "child" zum "root"-Namensraum.
cu
Marc Reichelt || http://www.marcreichelt.de/
Hi,
Du musst immer den Namensraum angeben wenn du ihn benutzt.
Dementprechend gehört "child" zum "root"-Namensraum.
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">
<item......
Dann gehört 'RDF' dem 'rdf'-Namensraum an und dem 'item'-Elemente der 'http://my.netscape.com/rdf/simple/0.9/'-Namensraum?
Oder gehört 'item' der 'root'-Namensraum? Wozu existiert dann noch das 'xmlns'-Attribut?
Grüße
Thomas
Hi!
Hi,
Du musst immer den Namensraum angeben wenn du ihn benutzt.
Dementprechend gehört "child" zum "root"-Namensraum.<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">
<item......Dann gehört 'RDF' dem 'rdf'-Namensraum an und dem 'item'-Elemente der 'http://my.netscape.com/rdf/simple/0.9/'-Namensraum?
Oder gehört 'item' der 'root'-Namensraum? Wozu existiert dann noch das 'xmlns'-Attribut?
Mmm, du machst mich grad ein wenig stutzig.
Am Besten du schaust mal beim W3C nach, dort stehts ganz bestimmt.
cu
Marc Reichelt || http://www.marcreichelt.de/
Hi
Mmm, du machst mich grad ein wenig stutzig.
Am Besten du schaust mal beim W3C nach, dort stehts ganz bestimmt.
Hab ich, werde daraus aber auch nicht schlau. Bei allem was man in deren Specs versteht, bleibt immer ein Nachgeschmack es vieleicht doch falsch verstanden zu haben.
Dank Dir trotzdem
Thomas
Hallo,
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">
<item......Dann gehört 'RDF' dem 'rdf'-Namensraum an und dem 'item'-Elemente der 'http://my.netscape.com/rdf/simple/0.9/'-Namensraum?
Korrekt.
Wozu existiert dann noch das 'xmlns'-Attribut?
Um den default Mamensraum für Elemente ohne Namensraumpräfix unterhalb rdf:RDF zu bestimen.
Grüße
Thomas
Hi Thomas,
alles klar soweit, dank Dir. Hab's mir schon so gedacht, alles andere währe unlogisch.
Eine Frage habe ich dann aber doch noch:
<x xmlns="bla">
<y xmlns="blub">
<!-- ist das erlaubt? -->
bla:z/
</y>
</x>
D.h. werden alle Namensräume nach "unten durchgereicht", so das in einem Blatt (im XML-Baum) alle umgebenden Namensräume erlaubt sind?
Oder wird in einen neuen Namensraum der Parent-Namensraum gekillt?
Grüße
Thomas
Hallo,
alles klar soweit, dank Dir. Hab's mir schon so gedacht, alles andere währe unlogisch.
Eine Frage habe ich dann aber doch noch:<x xmlns="bla">
<y xmlns="blub">
<!-- ist das erlaubt? -->
bla:z/
</y>
</x>
Ja.
D.h. werden alle Namensräume nach "unten durchgereicht", so das in einem Blatt (im XML-Baum) alle umgebenden Namensräume erlaubt sind?
Ja, _wenn_ du das ensprechende Namensraumpräfix benützt.
Oder wird in einen neuen Namensraum der Parent-Namensraum gekillt?
Ja, normalerweise. Es sei denn du verwendest das entsprechenden Namensraupräfix.
"Die Namensraum-Deklaration gilt für das Element, in dem sie angegeben ist, und für alle Elemente im Inhalt dieses Elements, es sei denn, sie wird durch eine andere Namensraum-Deklaration mit dem gleichen Namensraum-Atrtribut-Teil (d.i. endeweder xmlns="..." oder xmlns:x="...") überschrieben"
Grüße
Thomas
Hallo Thomas,
ich habe noch mal ein paar Fragen zu Namensräumen.
Beispiele:
<x xmlns:edi='http://ecommerce.org/schema'/>
oder
<x xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'/>x gehört zu keinen Namensraum (bzw. einem imaginären „root“-Namensraum)
x gehört zu den null-namespace, zum Null-Namensraum.
<x xmlns="http://blablub.com"
xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'/>x und alle Unterelemente (sofern nicht anderen Namensräumen zugewiesen) gehört zum Namensraum http://blablub.com
Korrekt. <x xmlns="http://blablub.com"> definiert den default Namensraum für seine Kindelemente.
<xyz:x xmlns:xyz="http://blablub.com"
xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'/>x gehört zum Namensraum xyz, jedoch nicht die Unterelemente wenn kein Namensraum vor dem Elementname geschrieben ist.
Unterelemente ohne Namnsraumangeben gören in diesem fall dem null-namespace
<xyz:x xmlns:xyz="http://blablub.com"
xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'>
<child/>
</x>
Besitzt ‘child’ nun den ‘root’-Namensraum oder ‘xyz’ ?
Richtig müsste es heissen:
<xyz:x xmlns:xyz="http://blablub.com"
xmlns:abc='http://ecommerce.org/schema'
xmlns:def='http://bla.com'>
<child/>
</xyz:x>
Child gehört in den null-namespace.
Grüße
Thomas