XSD模式验证

XSD模式验证,xsd,xsd-validation,Xsd,Xsd Validation,我有一个关于如何使用XSD模式验证XML格式的问题 我已经成功地编写了使用XSD模式验证XML格式的程序。但是,我需要将xx.xsd放在当前项目的主位置。是否有必要将xsd模式嵌入程序集,这样我就不必总是将xxx.xsd放在可执行程序集的同一位置。我曾尝试将其嵌入到项目的资源中,但在使用像resgen xxx.XSD这样的VS命令提示符时,似乎无法重新生成XSD文件。它表示此命令不支持扩展 有没有其他办法来解决这个问题 任何建议都将不胜感激。步骤1:像往常一样将XSD添加到类库项目中 步骤2:右

我有一个关于如何使用XSD模式验证XML格式的问题

我已经成功地编写了使用XSD模式验证XML格式的程序。但是,我需要将xx.xsd放在当前项目的主位置。是否有必要将xsd模式嵌入程序集,这样我就不必总是将xxx.xsd放在可执行程序集的同一位置。我曾尝试将其嵌入到项目的资源中,但在使用像resgen xxx.XSD这样的VS命令提示符时,似乎无法重新生成XSD文件。它表示此命令不支持扩展

有没有其他办法来解决这个问题


任何建议都将不胜感激。

步骤1:像往常一样将XSD添加到类库项目中

步骤2:右键单击XSD文件上的属性,并在Build Action下选择“Embedded Resource”

步骤3:修改代码,如下所示

XmlSchemaSet schemaSet = new XmlSchemaSet() ;
schemaSet.Add("", XmlReader.Create(xmlSchema));


步骤1:像平常一样将XSD添加到类库项目中

步骤2:右键单击XSD文件上的属性,并在Build Action下选择“Embedded Resource”

步骤3:修改代码,如下所示

XmlSchemaSet schemaSet = new XmlSchemaSet() ;
schemaSet.Add("", XmlReader.Create(xmlSchema));


如果您只处理一个XSD(没有外部引用),那么@Romil的答案就是您所需要的。但是,如果您转而使用组件化xsd(通过xsd:include/import/redefine链接的xsd集),那么解决方案将无法工作。向您展示如何正确解决它;您需要构建并使用自己的解析器,它将能够从嵌入的资源中提供这些引用,而且,非常重要的是,在创建第一个读卡器时,您需要提供一个基本URI(通常是使用某些专有方案制作的URL)。

如果您只处理一个XSD(没有外部引用),那么@Romil的答案就是你所需要的。但是,如果您转而使用组件化xsd(通过xsd:include/import/redefine链接的xsd集),那么解决方案将无法工作。向您展示如何正确解决它;您需要构建并使用自己的解析器,它将能够从嵌入的资源中提供这些引用,而且非常重要的是,在创建第一个读卡器时,您需要提供一个基本URI(通常是一个使用某些专有方案的虚构URL)。

谢谢Petru。我的项目中只有一个XSD,所以Romil的解决方案适合我。谢谢你的建议。这对我将来会有用的。谢谢佩特罗。我的项目中只有一个XSD,所以Romil的解决方案适合我。谢谢你的建议。这对我将来会有用的。