我指的是来自XSD和来自a的XML验证的以下代码 从功能上看它似乎工作得很好。
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中提取该信息,以便我不必具体指定?
答案 0 :(得分:4)
只需为命名空间指定null
:
var schemas = new XmlSchemaSet();
schemas.Add(null, xsdFilePath);
来自XmlSchemaSet.Add Method (String, String):
的targetNamespace
类型:System.String
架构targetNamespace
属性或 null 以使用架构中指定的targetNamespace
。