Mehrere xmlns mit verschiedenen Namen aber selber URL
MudGuard
- xml
Hi,
hab grade in einem XML-Dokument etwas gesehen, was mich etwas wundert.
Da würde ich gerne wissen, ob das zulässig bzw. sinnvoll ist.
Es wurden mehrere Namespaces definiert, 2 davon zeigen auf dieselbe URL, also sowas:
<root xmlns:bla ="http://example.com/foo"
xmlns:blubb="http://example.com/foo"
xmlns:bar ="http://example.com/bar">
Ist das zulässig, das 2mal auf dieselbe URL verwiesen wird?
Und falls ja, bedeutet das dann, daß bla:foobar und blubb:foobar dasselbe Element sind?
cu,
Andreas
Ist das zulässig, das 2mal auf dieselbe URL verwiesen wird?
Ja. Beispiel siehe [XMLNS §5.3]
Und falls ja, bedeutet das dann, daß bla:foobar und blubb:foobar dasselbe Element sind?
Dass es für Attibute gilt, siehst du ebenda. Ich denke, für Elemente wird es dann auch so sein.
Gunnar
Hallo,
Es wurden mehrere Namespaces definiert, 2 davon zeigen auf dieselbe URL, also sowas:
<root xmlns:bla ="http://example.com/foo"
xmlns:blubb="http://example.com/foo"
xmlns:bar ="http://example.com/bar">Ist das zulässig, das 2mal auf dieselbe URL verwiesen wird?
Und falls ja, bedeutet das dann, daß bla:foobar und blubb:foobar dasselbe Element sind?
Aus http://www.w3.org/TR/REC-xml-names/, speziell Punkt 5.3 lese ich nur heraus, dass etwas in dieser Art unzulaessig waere:
<blubb:foobar bla:abc="123" blubb:abc="456"/>
<blubb:foobar bla:abc="123" blubb:xyz="456"/> aber offenbar erlaubt sein sollte.
Zumindest diese Form
<root xmlns ="http://example.com/foo"
xmlns:blubb="http://example.com/foo"
xmlns:bar ="http://example.com/bar">
wird bei den Attributen als zulaessig erklaert:
<blubb:foobar abc="123" blubb:abc="456"/>
Von einer "Uniqueness of Elements" finde ich aaO nichts, wuerde die Verwendung solcher Schreibweisen aber eher vermeiden.
MfG, Thomas
Thomas,
Aus http://www.w3.org/TR/REC-xml-names/, speziell Punkt 5.3 lese ich nur heraus ...
Erster! :-P
Gunnar
PS. Hm, nach über drei Stunden fast gleich und gleichzeitig geantwortet. Sind wir Zwillinge?
Hallo,
PS. Hm, nach über drei Stunden fast gleich und gleichzeitig geantwortet. Sind wir Zwillinge?
Noe, dann haetten wir ja auch dieselben Dokumente zitiert -- ok, im Prinzip haben wir das ja doch gemacht ;-).
MfG, Thomas
Thomas,
Noe, dann haetten wir ja auch dieselben Dokumente zitiert -- ok, im Prinzip haben wir das ja doch gemacht ;-).
Im Prinzip schon, nur laut Cheatah nicht. ;-)
Gunnar
Hi,
Noe, dann haetten wir ja auch dieselben Dokumente zitiert -- ok, im Prinzip haben wir das ja doch gemacht ;-).
Im Prinzip schon, nur laut Cheatah nicht. ;-)
Also ich guck auch lieber ins Original (sofern das in Englisch oder Deutsch ist, bei anderen Sprachen wärs anders).
cu,
Andreas
Hi,
Aus http://www.w3.org/TR/REC-xml-names/, speziell Punkt 5.3 lese ich nur heraus, dass etwas in dieser Art unzulaessig waere:
Ok, danke, auch an Gunnar.
<blubb:foobar bla:abc="123" blubb:abc="456"/>
ja klar, zweimal dasselbe Attribut ...
<root xmlns ="http://example.com/foo"
xmlns:blubb="http://example.com/foo"
xmlns:bar ="http://example.com/bar">
wird bei den Attributen als zulaessig erklaert:
<blubb:foobar abc="123" blubb:abc="456"/>
Das ist jetzt aber seltsam - das wäre ja eigentlich auch zweimal dasselbe Attribut.
Ok, laut dem von Dir genannten Papier ist das abc-Attribut nicht aus dem Default-Namespace - aber aus welchem denn dann?
Von einer "Uniqueness of Elements" finde ich aaO nichts, wuerde die Verwendung solcher Schreibweisen aber eher vermeiden.
Ich würds auch nicht machen, ist mir halt so begegnet ...
cu,
Andreas
Hallo MudGuard,
<root xmlns ="http://example.com/foo"
xmlns:blubb="http://example.com/foo"
xmlns:bar ="http://example.com/bar">
wird bei den Attributen als zulaessig erklaert:<blubb:foobar abc="123" blubb:abc="456"/>
abc hat wohl gar keinen Namespace bzw den ""-Namespace.
Den Defaultnamespace für Attribute zu ist ja unpraktisch, weil man dann für jedes Attribut ein Prefix angeben müsste, wenn das Element nicht den Default-Namespace verwendet. Namespaces für Attribute braucht man sowieso fast nie, weil sie meist zusammen mit dem Element definiert werden.
Alternativ hätte man wohl auch festlegen können, dass ein Attribut den Namespace vom Element erbt.
Das hat aber den Nachteil, dass man in einem Namensraum keine "globalen" Attribute, die zu keinem bestimmten Element gehören definieren kann, wenn es schon ein gleichnamiges "elementlokales" Attribut gibt.
Vermutlich kann man in XSchema so etwas machen.
Grüße
Daniel
Ok, laut dem von Dir genannten Papier ist das abc-Attribut nicht aus dem Default-Namespace - aber aus welchem denn dann?
abc hat wohl gar keinen Namespace bzw den ""-Namespace.
Ja, es ist global. Dazu steht noch was in [XMLNS §A.1]
Gunnar
PS. Diesmal wieder nicht das englische Original. Ich denke, das geht in Ordnung. ;-)
Hallo Gunnar,
abc hat wohl gar keinen Namespace bzw den ""-Namespace.
Ja, es ist global.
Nein, global sind gerade die _mit_ Namespace, die ohne sind lokal, da ihre Bedeutung vom Element abhängt, zu dem sie gehören.
Grüße
Daniel
Nein, global sind gerade die _mit_ Namespace, die ohne sind lokal, da ihre Bedeutung vom Element abhängt, zu dem sie gehören.
Hi Daniel,
Wer lesen kann, ist im Vorteil.
Und wer verstehen kann, was er liest, um so mehr. ;-)
Danke,
Gunnar