Altova Mailing List Archives>Archive Index >microsoft.public.xml Archive Home >Recent entries >Thread Prev - extra xmlns >Thread Next - Re: extra xmlns Re: extra xmlnsTo: NULL Date: 2/1/2005 8:53:00 PM * stanley wrote in microsoft.public.xml:
>I have the following code in c++, when I run the code I get
>an extra xmlns="" attribute in the children elements
In the document object model, namespaces are only considered at the
creation time of elements and attributes, if you place them in the
tree later, other elements do not affect it. So if you want your
elements to be in a specific namespace, you need to specify the name-
space when calling createFoo(...). Think of elements as tuples of
the namespace and the local name,
{ "namespace", "local-name" }
>XMLRootElem= XMLEmpDoc->createNode(1, "employee",
>"x-schema:file:///E:\TK_SQL\EMPLOYEE-SCHEMA.XML" );
Here you create
{ "x-schema:file:///E:\TK_SQL\EMPLOYEE-SCHEMA.XML", "employee" }
>XMLChildElem= XMLEmpDoc->createElement("address");
And here
{ "", "address" }
>XMLEmpDoc->documentElement->appendChild(XMLElement);
There are multiple ways to represent this in XML, for example
<foo:employee xmlns:foo = 'x-schema:...'>
<address />
</foo:employee>
or
<foo:employee xmlns:foo = 'x-schema:...'>
<address xmlns="" />
</foo:employee>
or
<employee xmlns = 'x-schema:...'>
<address xmlns="" />
</employee>
these are all equivalent. In each case, the address element is in no
namespace. You want
<employee xmlns = 'x-schema:...'>
<address />
</employee>
which is equivalent to
<foo:employee xmlns:foo = 'x-schema:...'>
<foo:address />
</foo:employee>
In both cases, the address element is in the "x-schema:..." namespace.
So in order to get the code you want, you need to pass the namespace
to the createElement call; that's however not possible, you need to use
the createNode(...) method to create such elements, just as you do for
the employee element.
--
Björn Höhrmann · mailto:bjoern@h... · http://bjoern.hoehrmann.de
Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
