在c#XmlSchema中查找schemaLocation

时间:2010-10-19 12:18:25

标签: c# xsd

我将以下架构加载到xmlSchema中:

...
<xs:import schemaLocation="\_1.xsd" namespace="http://tempuri.org/" />
...

我想要检索字符串“_1.xsd”

如何从XmlSchema API获取schemaLocation值? schemaSet能更好地工作吗?

由于

2 个答案:

答案 0 :(得分:1)

我终于使用了这个:

schema.Includes[0] as XmlSchemaImport;
var wsdlId = schemaImport.SchemaLocation;

答案 1 :(得分:0)

using System.Xml.Schema;
using System.IO;
using System.Reflection;

这应该可以工作,可能会抛出一些错误,因为我没有在IDE中编译它,因为我不在Dev机器上。

string xsd = "example.xsd";

FileStream fs;
XmlSchema schema;

fs = new FileStream(xsd, FileMode.Open);
schema = XmlSchema.Read(fs, new ValidationEventHandler(ShowCompileError));

foreach (XmlSchemaObject externalSchema in schema.Includes)
{
    string schemaLoc = (XmlSchemaExternal)externalSchema.SchemaLocation.ToString();
}