<div dir="ltr"><div><div>Thanks for all the replies. I agree that this should probably be clarified as the current explanation is not as clear as it should be.<br></div>It looks as if you'd need to use the "stream:" prefix for "features" but you shouldn't/mustn't use it for "error". More examples or writing it in a better way would help, I assume. <br><br></div>Best,<br>Michael<br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-02-03 10:53 GMT+01:00 Hund, Johannes <span dir="ltr"><<a href="mailto:johannes.hund@siemens.com" target="_blank">johannes.hund@siemens.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> I called this out in 7395 because both stream features and errors<br>
> traditionally use the 'stream' prefix while relying on the opening <stream><br>
> tag to define to define the prefix. But for WebSocket there is no parent<br>
> <stream> tag providing those declarations, and it seemed like an easy item for<br>
> implementors to either miss entirely or do incorrectly like so:<br>
><br>
> // Not define the namespace or prefix at all <stream:features /> <stream:error<br>
> /><br>
><br>
> // Define the namespace without a prefix, while still using a prefix<br>
> <stream:features xmlns="<a href="http://etherx.jabber.org/streams" target="_blank">http://etherx.jabber.org/streams</a>" /> <stream:error<br>
> xmlns="<a href="http://etherx.jabber.org/streams" target="_blank">http://etherx.jabber.org/streams</a>" /><br>
><br>
> // Stamp 'jabber:client' as the namespace because it has no xmlns attribute<br>
> <stream:error xmlns="jabber:client" /> <stream:features xmlns="jabber:client"<br>
> /><br>
><br>
> — Lance<br>
<br>
<br>
Yes, there we saw there is a statement somewhere in the RFC that you should use the prefix "stream" ...if you use a prefix.<br>
I think this confuses many developers, as we have seen implementations that refuse fragments as invalid xml if it does not have a prefix (but declares the ns for the element) or uses a prefix differently to stream.<br>
<br>
This gives us problems when using EXI, as it will normally just produce valid xml. Therefore, it is up to the codec to just assign a namespace to any prefix (if necessary). There are flags/codec options defined in the EXI standard for exactly this (namespace preservation), but it reduces performance (as you have to communicate every use prefix), does not work when you build it from a memory representation and is a quirks mode IMHO.<br>
<br>
Maybe it would be good to give some more implementation notes/advice to clarify what is valid and what is not?<br>
<br>
/Johannes<br>
_______________________________________________<br>
JDev mailing list<br>
Info: <a href="http://mail.jabber.org/mailman/listinfo/jdev" target="_blank">http://mail.jabber.org/mailman/listinfo/jdev</a><br>
Unsubscribe: <a href="mailto:JDev-unsubscribe@jabber.org">JDev-unsubscribe@jabber.org</a><br>
_______________________________________________<br>
</blockquote></div><br></div>