На самом деле, несмотря на мой комментарий выше, я обнаружил, что самый простой способ сделать это был не с DeclareNamespace
.
Вот пример, который даже не использует TXMLDocument
на форме. Просто добавьте xmldom
, XMLIntf
и XMLDoc
для вашей реализации использует пункт (Xml.xmldom
, Xml.XMLIntf
и Xml.XMLDoc
для XE2), а затем это работает:
procedure TForm1.Button1Click(Sender: TObject);
var
TheDoc: IXmlDocument;
iNode: IXmlNode;
xmlText: DOMString;
begin
TheDoc := NewXMLDocument;
TheDoc.Version := '1.0';
TheDoc.Encoding := 'UTF-16';
iNode := TheDoc.AddChild('test:test_file');
iNode.SetAttributeNS('xmlns:test', '', 'http://www.foo.com');
iNode.SetAttributeNS('xmlns:xsi', '', 'http://www.w3.org/2001/XMLSchema');
TheDoc.SaveToXML(xmlText);
Memo1.Lines.Text := xmlText;
end;
Вышеуказанные результаты в этой продукции в TMemo
:
<?xml version="1.0" encoding="UTF-16"?>
<test:test_file xmlns:test="http://www.foo.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema"/>
Какую библиотеку XML вы используете? Они различаются по дизайну. –
Я использую TXMLDocument, который является частью Delphi XE. –