AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Verhindern des leeren xmlns Attributes

Verhindern des leeren xmlns Attributes

Ein Thema von GuenterS · begonnen am 6. Mär 2008 · letzter Beitrag vom 6. Mär 2008
Antwort Antwort
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#1

Verhindern des leeren xmlns Attributes

  Alt 6. Mär 2008, 10:00
Hallo,

ich weiß nicht warum, aber beim Erstellen eines XML Files, bekomme ich in manchen Nodes das leere Attribut "xmlns" angegeben, hätte die Nodes aber gerne ohne diesem Attribut.

Ich habe bei den Options alle Attribute, außer "doNodeAutoIntent" auf false gesetzt.


Zur Verdeutlichung hier ein Auszug aus der erstellten XML Datei.
<ResourceLinkPool xmlns=""> Wie kann man dies verhindern?

P.S.: Ich verwende Delphi7 Enterprise dafür.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: Verhindern des leeren xmlns Attributes

  Alt 6. Mär 2008, 10:25
Das ist ulkig, genau dasselbe Problem hatte ich auch gestern bei meinen XSLTs und bin mehr zu einem Workaround als zu einer eleganten Lösung gekommen. Das Problem ist, dass du ein Element generierst, das in einem Namespace liegt, und jetzt hier Elemente hineinkopierst (z.B. mit copy-of), die im Default-Namespace (also "") liegen. Der XSL-Transformer verhält sich korrekt. Anscheinend kann man jedoch beim copy-of keinen Namespace angeben. Die Elemente landen also immer in dem Namespace, in dem sie ursprünglich deklariert wurden. Ich habe das Problem umgangen, indem ich die Elemente mit for-each, element und copy-of select="@*" kopiert habe. Nicht schön, funktioniert aber.

Oh, und wenn du gar kein XSL verwendest, ist dein Problem vermutlich dasselbe: Du erstellst Elemente, die im Default-Namespace liegen, innerhalb von Elementen, die in einem anderen Namespace liegen. In dem Fall hast du es vielleicht einfacher als ich, denn du kannst diesen inneren Elementen einfach denselben Namespace geben wie den übergeordneten. Wenn der XML-Generator halbwegs vernünftig ist, wird er die Namespace-Angabe dann weglassen.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Verhindern des leeren xmlns Attributes

  Alt 6. Mär 2008, 12:39
Hallo Günter,

vielleicht hilft dir dieser Beitrag weiter: klick

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Verhindern des leeren xmlns Attributes

  Alt 6. Mär 2008, 13:12
Hm, ich verwende keine CoDom, Dom irgendwas dinge.

Delphi-Quellcode:
var
   lXMLDoc: IXMLDocument;
   lRootNode, lChildNode: IXMLNode;
begin
   lXMLDoc := TXMLDocument.Create(nil);
   try
     lXMLDoc.Options := [doNodeAutoIndent];
     lXMLDoc.ParseOptions := [];

     lRootNode := lXMLDoc.AddChild('root');
     
     lChildNode := lRootNode.AddChild('child', -1);

     lXMLDoc.SaveToFile('C:\testfile.xml');
   finally
      lXMLDoc := nil;
   end;
end;
So ungefähr erzeuge ich mein XMLDokument und die entsprechenden Nodes...


Mich irritiert ja nur, dass es bei manchen passiert und nicht bei allen. Das wäre wenigstens konsequent gewesen.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Verhindern des leeren xmlns Attributes

  Alt 6. Mär 2008, 19:06
Welchen DOMVendor hast du denn im Einsatz?

Kannst du Code zeigen, mit dem ich dein Problem nachstellen kann?
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Verhindern des leeren xmlns Attributes

  Alt 6. Mär 2008, 22:42
Ich verwende den von Microsoft. Müßte Version 4 sein, wenn ich mich nicht irre.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz