我有一個C#Web服務,它返回一個XML,結果將會被Delphi 7應用程序使用。通常,如果我有.Net客戶端,我會返回一個.Net XmlDocument類,但是,對於Delphi,我返回一個字符串。下面是C#Web服務代碼:將Delphi中的XML Schema驗證爲C#web服務作爲參數
public String ReturnXML()
{
XmlDocument xmlDoc = GenerateXmlMethod();
String sXmlResult = String.Empty;
if (xmlDoc != null)
{
using (StringWriter oXml = new StringWriter())
{
xmlDoc.Save(oXml);
sXmlResult = oXml.ToString();
}
}
return sXmlResult;
}
在Delphi中,我得到了另一個問題here下面的代碼在StachOverflow,和它完美的作品,如果我不得不從磁盤加載XML和XSD,但我需要從內存加載它。下面是我的Delphi代碼現在:
procedure TfrmTestador.Button3Click(Sender: TObject);
var
XML, XSDL, XSDLDom: Variant;
begin
XSDLDom := CreateOLEObject('MSXML2.DOMDocument.6.0');
try
XSDLDom.async := false;
XSDLDom.load('C:\Temp\XsdFile.xsd');
XSDL := CreateOLEObject('MSXML2.XMLSchemaCache.6.0');
try
XSDL.add('',XSDLDom);
XML := CreateOLEObject('Msxml2.DOMDocument.6.0');
try
XML.validateOnParse := True;
XML.resolveExternals := True;
XML.schemas := XSDL;
XML.load('C:\Temp\XmlFile.xml');
ShowMessage(XML.parseError.reason);
finally
XML := Unassigned;
end;
finally
XSDL := Unassigned;
end;
finally
XSDLDom := Unassigned;
end;
end;
會是什麼Delphi代碼加載XSD和WideString的變量的XML,並且有工作作爲加載它們從文件中的代碼,驗證一個固定的XML已編碼到應用程序中的XSD架構?有沒有更好的方式從C#返回XML,以便更容易地讀入Delphi?
Tks爲您的時間!
Tks man!像魅力一樣工作。以及鏈接以及! – Pascal 2010-09-13 13:22:00