xml - 如何创建xmlns :xsi and xsd information in an XML document

标签 xml delphi delphi-xe

我有一个 Delphi XE 应用程序,它读取经过验证的 XML 文件,修改它,然后保存它。可以验证保存的版本。我使用 SML Spy 创建文件并验证它。

现在我需要在内存中创建一个文档并保存它。问题是我无法弄清楚如何为文档生成 xmlns 和 xsd 信息属性,以便对其进行验证。

最佳答案

实际上,尽管我在上面发表了评论,但我发现最简单的方法不是使用 DeclareNamespace

这是一个甚至不在表单上使用 TXMLDocument 的示例。只需将 xmldomXMLIntfXMLDoc 添加到您的实现 uses 子句 (Xml.xmldom , Xml .XMLIntf,以及 XE2 的 Xml.XMLDoc),然后就可以了:

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 - 如何创建xmlns :xsi and xsd information in an XML document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075366/

相关文章:

xml - contains() 内的 XPath translate() 与动态变量

delphi - TDateTimePicker 的 BoldDays?

delphi - 如何将 TreeView 的一部分复制到菜单

Delphi XE 32 位有符号表示

java - 如何在 Horizo​​ntalview 中将 imageview 显示为 slider ,它将显示为列表但仅关注一个项目

xml - 使用Powershell检索xml值

c# - 生成数字签名但具有特定的命名空间前缀 ("ds:")

Delphi - 任意颜色的 "sepia"例程的实现

string - Delphi:调用名称存储在字符串中的函数

Delphi DataSnap 授权不尊重 TRoleAuth 属性