Cześć
Dokonujemy walidacji plików XML przy pomocy schemy XSD. Pliki XSD mają odniesienia do zew. zasobów ze stron ministerstwa np. http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2020/03/11/eD/DefinicjeTypy/
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2021/06/08/eD/DefinicjeTypy/" xmlns:tns="http://crd.gov.pl/wzor/2021/12/27/11148/" targetNamespace="http://crd.gov.pl/wzor/2021/12/27/11148/" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" xml:lang="pl">
<xsd:import namespace="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2021/06/08/eD/DefinicjeTypy/" schemaLocation="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2021/06/08/eD/DefinicjeTypy/StrukturyDanych_v8-0E.xsd"/>
Od kilku dni dostęp do tych zasobów został ograniczony dla adresów spoza Polski.
Szukamy rozwiązania sieciowego ale także ew. opcji w kodzie jak uniknąć błędu walidacji w takim przypadku. Fragment kodu poniżej.
Czy ktoś przerabiał taki przypadek?
string err = "";
XmlDocument xml = new XmlDocument();
xml.Load(Request.Files[upload].InputStream);
xml.Schemas.Add(null, Server.MapPath("~/App_Data/schemat.xsd"));
try
{
xml.Validate(null);
}
catch (System.Xml.Schema.XmlSchemaValidationException e)
{
err = e.Message;
}