Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在不提前知道目标名称空间的情况下加载模式?_C#_.net_Xml_Xsd_Xsd Validation - Fatal编程技术网

C# 如何在不提前知道目标名称空间的情况下加载模式?

C# 如何在不提前知道目标名称空间的情况下加载模式?,c#,.net,xml,xsd,xsd-validation,C#,.net,Xml,Xsd,Xsd Validation,下面是我从XSD和 从功能角度看,它似乎工作良好 var schemas = new XmlSchemaSet(); schemas.Add("http://microsoft.com/HealthCare/HL7/2X", xsdFilePath); Boolean result = true; xdocXml.Validate(schemas, (sender, e) => { result = false; }); 现在,正如您所看到的,我必须显式地指定模式名,即使这个信

下面是我从XSD和 从功能角度看,它似乎工作良好

var schemas = new XmlSchemaSet();
schemas.Add("http://microsoft.com/HealthCare/HL7/2X", xsdFilePath);

Boolean result = true;
xdocXml.Validate(schemas, (sender, e) =>
{
    result = false;
});

现在,正如您所看到的,我必须显式地指定模式名,即使这个信息在XSD本身中是自包含的。是否有任何方法可以从XSD中提取该信息,这样我就不必特别指定它?

只需为名称空间指定
null

var schemas = new XmlSchemaSet();
schemas.Add(null, xsdFilePath);
发件人:

targetNamespace
类型:System.String
架构
targetNamespace
属性,或null使用架构中指定的
targetNamespace


只需为命名空间指定
null

var schemas = new XmlSchemaSet();
schemas.Add(null, xsdFilePath);
发件人:

targetNamespace
类型:System.String
架构
targetNamespace
属性,或null使用架构中指定的
targetNamespace


对,我还要向OP指出,所需的不是“模式名”,而是目标名称空间;一般来说,它们不一样。对,我还要向OP指出,它不是请求的“模式名”,而是需要的目标名称空间;一般来说,它们不一样。