J'ai examiné de nombreux exemples pour valider un fichier XML par rapport à une DTD, mais je n'en ai pas trouvé un qui me permette d'utiliser un proxy. J'ai un fichier CXML comme suit (en abrégé pour l'affichage) que je souhaite valider:Valide un fichier Xml par rapport à une DTD avec un proxy. C# 2.0
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE cXML SYSTEM "http://xml.cxml.org/schemas/cXML/1.2.018/InvoiceDetail.dtd">
<cXML payloadID="123456" timestamp="2009-12-10T10:05:30-06:00">
<!-- content snipped -->
</cXML>
Je suis en train de créer un programme simple C# pour valider le xml contre la DTD. J'ai essayé un code tel que le suivant, mais ne peut pas comprendre comment l'obtenir pour utiliser un proxy:
private static bool isValid = false;
static void Main(string[] args)
{
try
{
XmlTextReader r = new XmlTextReader(args[0]);
XmlReaderSettings settings = new XmlReaderSettings();
XmlDocument doc = new XmlDocument();
settings.ProhibitDtd = false;
settings.ValidationType = ValidationType.DTD;
settings.ValidationEventHandler += new ValidationEventHandler(v_ValidationEventHandler);
XmlReader validator = XmlReader.Create(r, settings);
while (validator.Read()) ;
validator.Close();
// Check whether the document is valid or invalid.
if (isValid)
Console.WriteLine("Document is valid");
else
Console.WriteLine("Document is invalid");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
static void v_ValidationEventHandler(object sender, ValidationEventArgs e)
{
isValid = false;
Console.WriteLine("Validation event\n" + e.Message);
}
L'exception que je reçois est
System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required.
qui se produit sur la ligne while (validator.Read()) ;
Je sais que je peux valider par rapport à une DTD localement, mais je ne veux pas changer le DOCTYPE xml puisque c'est ce que le formulaire final doit être (cette application est uniquement à des fins de diagnostic). Pour plus d'informations sur les spécifications cXML, vous pouvez aller au cxml.org.
J'apprécie toute aide.
Merci