J'ai un service Web C# qui renvoie un code XML comme résultat qui sera consommé par une application Delphi 7. Normalement, je retournerais une classe .Net XmlDocument si j'avais un client .Net, mais, pour Delphi, je retourne une chaîne. Ci-dessous le code C# Service Web:Validez le schéma XML dans Delphi reçu par le service Web C# en tant que paramètre
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;
}
Dans Delphi, je suis le code ci-dessous d'une autre question here à StachOverflow, et il fonctionne parfaitement si je devais charger le XML et XSD à partir du disque, mais je dois chargez-le de la mémoire. Voici mon code Delphi maintenant:
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;
Quel serait le code Delphi pour charger le XSD et XML à partir de variables WideString, et l'ont travaillé comme le code qui les charge à partir du fichier, la validation du XML sur un fixe Schéma XSD codé dans l'application? Existe-t-il un meilleur moyen de renvoyer le code XML de C# afin qu'il soit lu plus facilement dans Delphi?
Tks pour votre temps!
Tks man! Travaillé comme un charme. Et tks pour les liens aussi bien! – Pascal