Einzelnen Beitrag anzeigen

WiPhi

Registriert seit: 19. Feb 2015
90 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Unterknoten ohne Namespace wird nicht gefunden

  Alt 17. Feb 2021, 07:19
Hi Zusammen,

ja x2 macht das hier scheinbar besser.
Musste nur Jedi aus dem Source rauswerfen, da ich in der Firma kein Jedi installiert habe
(und auch nicht einfach installieren darf)
Dafür darfst du gerne einen PR machen, das war von mir damals ein Schnellschuss um andere Drittanbieter-Komponenten zu entfernen.
Ich hätte es gerne auch in Plain Delphi VCL

Was ich nicht verstanden hatte: Es gibt in der erzeugten XML einen Standard-Namespace (finde den in der kompletten
PAS-Datei nicht, wo der gesetzt werden soll), der hier gesetzt werden muss.
Delphi-Quellcode:
var
  node : IXmlNode;
const
  sCurrNodeName = 'Person';
  sNamespaceURI = 'http://www.test.de/versteckter/namespace/v.1.1';
begin
  node := ChildNodes.FindNode(sCurrNodeName, sNamespaceURI);
  if (node = nil) then
  begin
    //node := InternalAddChild(nil, sCurrNodeName, sNamespaceURI, -1);
    node := AddChild(sCurrNodeName, sNamespaceURI);
  end;
  Result := TXMLPerson.CreateHosted(node as TXmlNode);
end;
Damit ginge es dann auch bei mir.
Das müsste man sich im Detail anschauen, wie deine XSD(s) aussehen und wie die zu erwartende XML Datei auszusehen hat.
Ggf. stimmt auch das Schema nicht 100%ig. Aber ein bisschen Detailarbeit im Nachhinein hat man immer.
Wer sucht, der findet. Wer länger sucht, findet mehr.
  Mit Zitat antworten Zitat