[Scilab-Dev] problem/bug with xmlNs
Stéphane Mottelet
stephane.mottelet at utc.fr
Tue Jul 8 14:50:54 CEST 2014
Hello,
xmlNS is not able to create an XML namespace without a prefix, although
this is completely correct in XML, as it allows inheritance of it. Example:
<a xmlns="http://name.space">
<b>1</b>
</a>
here the "b" element is in the "http://name.space" namespace. The only
workaround I have found is the following :
s = "<root><a xmlns=""http://name.space""/><b/></root>"
doc = xmlReadStr(s)
ns=xmlGetNsByHref(doc.root.children(1), "http://name.space")
xmlAddNs(doc.root.children(2),ns);
xmlDump(doc)
Scilab (correct) output is :
ans =
!<?xml version="1.0"?> !
! !
!<root> !
! !
! <a xmlns="http://name.space"/> !
! !
! <b xmlns="http://name.space"/> !
! !
!</root> !
But if I use xmlNS, Scilab (incorrect) output is :
s = "<root><a/><b/></root>"
doc = xmlReadStr(s)
ns=xmlNs(doc.root,"","http://name.space");
xmlAddNs(doc.root.children(1),ns);
xmlAddNs(doc.root.children(2),ns);
xmlDump(doc)
ans =
!<?xml version="1.0"?> !
! !
!<root xmlns:="http://name.space"> !
! !
! <a xmlns:="http://name.space"/> !
! !
! <b xmlns:="http://name.space"/> !
! !
!</root>
xmlNs should interpret and empty string as prefix, as no prefix for the
namespace.
S.
More information about the dev
mailing list