I have created a bug report[1] with an example of malformed file. [1] http://bugs.freepascal.org/view.php?id=22299
On Thu, Jun 21, 2012 at 3:51 PM, Daniel Gaspary <dgasp...@gmail.com> wrote: > On Tue, Jun 19, 2012 at 10:11 AM, Torsten Bonde Christiansen > <t...@epidata.info> wrote: >> How can i get the "xmlns:a="ddi:archive:3_0" without the additional >> attribute AND maintain the namespace + prefix in later elements? > > Hi. > > It's hard to test without a (small please) comlete XML example because > the NS attribute is added when it's needed. So, you need to add an > attribute or a child element that uses the Namespace. > > The XML below is created with the modfied program ahead. But I believe > a method to create a namespace attribute would be useful. > > > <?xml version="1.0" encoding="utf-8"?> > <ns1:DDIInstance xmlns:ns1="ddi:instance:3_0"> > <a:AnAELement xmlns:a="ddi:archive:3_0"> > <a:AnotherAELement a:MyAtt="A value"/> > </a:AnAELement> > </ns1:DDIInstance> > > > > program project1; > {$mode objfpc}{$H+} > > uses > Classes, DOM, XMLWrite; > > const > cArchive = 'ddi:archive:3_0'; > var > XMLDoc: TXMLDocument; > DDIInstance: TDOMElement; > AnAElement, AnotherAElement: TDOMElement; > > begin > XMLDoc := TXMLDocument.Create; > DDIInstance := XMLDoc.CreateElementNS('ddi:instance:3_0', 'DDIInstance'); > DDIInstance.Prefix := 'ns1'; // this gives me: > <ns1:DDIInstance xmlns:ns1="ddi:instance:3_0"> which is great. > > //Here a New element using the Namespace that will be created. > AnAElement:=XMLDoc.CreateElementNS(cArchive, 'a:AnAELement'); > DDIInstance.AppendChild(AnAElement); > > //Another element of the same namespace, child of the prior, no > Namespace creation > //needed > AnotherAElement:=XMLDoc.CreateElementNS(cArchive, 'a:AnotherAELement'); > AnAElement.AppendChild(AnotherAElement); > > //The same as above, but with an Attribute > AnotherAElement.SetAttributeNS(cArchive, 'a:MyAtt', 'A value'); > > Xmldoc.AppendChild(DDIInstance); > > WriteXMLFile(XMLDOc, '/tmp/test.xml'); > end. _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal