C# 模式的目标命名空间

C# 模式的目标命名空间,c#,xml,schema,namespaces,target,C#,Xml,Schema,Namespaces,Target,我想进行XML验证,以验证输入XML文件是否符合模式文件(.xsd)。我的问题是什么时候需要指定目标名称空间参数,目标名称空间参数的功能是什么 我从以下MSDN页面中得到了这个问题 更具体地说,我指的是XmlSchemaSet类的Add方法的第一个参数 EDIT1:我目前的困惑是 在XML模式文件中,顶部有一个目标名称空间属性,在该XML模式文件中定义的所有元素都在目标名称空间中定义 在要对照方案进行检查的XML文档文件中,XML文档可以使用在XML模式文件的“目标命名空间”中定义的元素,也

我想进行XML验证,以验证输入XML文件是否符合模式文件(.xsd)。我的问题是什么时候需要指定目标名称空间参数,目标名称空间参数的功能是什么

我从以下MSDN页面中得到了这个问题

更具体地说,我指的是
XmlSchemaSet
类的
Add
方法的第一个参数

EDIT1:我目前的困惑是

  • 在XML模式文件中,顶部有一个目标名称空间属性,在该XML模式文件中定义的所有元素都在目标名称空间中定义
  • 在要对照方案进行检查的XML文档文件中,XML文档可以使用在XML模式文件的“目标命名空间”中定义的元素,也可以使用来自XML模式文件中定义的“目标命名空间”之外的其他命名空间的元素
  • 问题是,我们应该将“目标命名空间”添加到
    XmlSchemaSet
    类的add方法中,还是将XML文档将使用的所有命名空间添加到
    XmlSchemaSet
    类的
    add
    方法中
  • 另一个问题是,我们是否可以在XML模式文件中定义多个“目标命名空间”?如果是,如何进行

  • 如果在XML文档中使用名称空间,则需要使用该参数,例如,如果某些标记的形式为
    。否则,您可以只传入一个空字符串

    来添加到您的答案中,如果您希望XmlSchemaSet使用XmlSchema中定义的名称空间,则需要传入Null/Nothing作为targetNamespace。这使您无需在Add方法中显式传递名称空间+1@dommer,“在文档中使用名称空间”,您的意思是在XML文档或架构文档中使用名称空间?@Cerburus,“使用在XmlSchema中定义的名称空间”,什么意思是在XML Schame文件或其他文件中定义的名称空间?您能通过这里的示例(关于books.xml和books.xsd sampl)来说明您的观点吗@乔治:你猜对了。。。它表示在Xml架构文件中定义的名称空间。@dommer,要检查的Xml文档可能使用了各种名称空间。但我似乎只能从方法XmlSchemaSet.Add中分配一个名称空间?您能否解释XmlSchemaSet.Add方法分配的命名空间与要检查的XML文档使用的命名空间之间的关系?