Altova Mailing List Archives>Archive Index >microsoft.public.xml Archive Home >Recent entries >Thread Prev - Re: extra xmlns >Thread Next - Re: extra xmlns Re: extra xmlnsTo: NULL Date: 2/2/2005 2:01:00 AM "Bjoern Hoehrmann" wrote:
> * 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/
>
hi bjoren-thanks for your explanations,
i still didn't find the way implement it so the output xml will be exactlly
as i described earlyer - my code should create exactlly the same xml!!!this
is the demand in this case
the problem is still-how can i add the "address" element with no namespace
(the xmlns namespace) ?
when i am using the 'CreateNode' method as you advised me i get the address
elenemt with the same namespce as it's parent(the 'employee')
if you can send me the correct code it will be helpfull
thanks again
stanley
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
