Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi IXMLDocument: Referenz auf Schema hinzufügen (https://www.delphipraxis.net/206048-ixmldocument-referenz-auf-schema-hinzufuegen.html)

Der schöne Günther 13. Nov 2020 10:16

Delphi-Version: 10.4 Sydney

IXMLDocument: Referenz auf Schema hinzufügen
 
Ich möchte ein XML-Dokument erstellen das ungefähr so aussehen soll:

myFile.xml
Code:
<?xml-model href="myFile.xsd"?>
<stuff>
   <message>Hello World</message>
</stuff>
Ich finde in IXMLDocument keine Methoden die mir irgendwie erlauben, die Schema-Referenz
Delphi-Quellcode:
<?xml-model href="myFile.xsd"?>
hinzuzufügen. Was muss ich tun?

TiGü 13. Nov 2020 12:22

AW: IXMLDocument: Referenz auf Schema hinzufügen
 
Ich bekomme nur das hier hin. Fragezeichen mag er gar nicht.
Code:
<xml-model href="myFile.xsd">
  <stuff>
    <message>Hello World</message>
  </stuff>
</xml-model>
Delphi-Quellcode:
unit Unit1;

interface

uses
  System.SysUtils, System.Variants, System.Classes,
  Vcl.Controls, Vcl.Forms, Vcl.StdCtrls,
  Xml.XMLDoc, Xml.XMLIntf;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
var
  XMLDoc: IXMLDocument;
  RootNode, StuffNode, MessageNode: IXMLNode;
begin
  Memo1.Clear;

  XMLDoc := NewXMLDocument('');

  RootNode := XMLDoc.AddChild('xml-model');
  RootNode.SetAttributeNS('href', '', 'myFile.xsd');

  StuffNode := RootNode.AddChild('stuff');

  MessageNode := StuffNode.AddChild('message');
  MessageNode.NodeValue := 'Hello World';

  // Memo1.Lines.Assign(XmlDoc.Xml);
  // oder:
  Memo1.Lines.Add(FormatXMLData(XMLDoc.Node.Xml));
end;

end.

Der schöne Günther 13. Nov 2020 12:29

AW: IXMLDocument: Referenz auf Schema hinzufügen
 
Das wäre auch so etwas tödlich, denn <xml-model> soll auch nicht schließen.

https://www.w3.org/XML/2010/01/xml-model/

Ich bin jetzt ernsthaft hingegangen, nehme das fertige XML als String und bastele da die Zeile manuell rein 🤷


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 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