2009-04-15 52 views
1

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

我从下面的MSDN页面这个问题,

http://msdn.microsoft.com/en-us/library/1hh8b082.aspx

http://msdn.microsoft.com/en-us/library/system.xml.schema.xmlschemaset.aspx

更具体地说,我指的是XmlSchemaSetAdd方法的第一个参数。

EDIT1:我的当前混乱是,

  1. 在XML模式文件中,有在顶部的目标命名空间属性,并且在该XML模式文件中定义的所有元素均在目标命名空间中定义;
  2. 在XML文档文件中检查方案时,XML文档可能会使用XML模式文件的“目标名称空间”中定义的元素,也可能使用来自其他名称空间的元素,而不是其中定义的“目标名称空间” XML模式文件;
  3. 问题是,我们只需要将“目标命名空间”添加到XmlSchemaSet类的Add方法中,或者将XML文档将使用的所有命名空间添加到XmlSchemaSet类的Add方法中?
  4. 另一个问题是,我们是否可以在XML模式文件中定义多个“目标名称空间”?如果是,如何?

回答

2

如果您在XML文档中使用命名空间,则需要使用该参数 - 例如,如果你们中的一些标签的格式为<xx:TagName>。否则,您可以传入一个空字符串""

+0

要添加到您的答案,如果您希望XmlSchemaSet使用XmlSchema中定义的名称空间,则需要传入Null/Nothing作为targetNamespace。这样可以免除在Add方法中显式传递名称空间。 +1 – Cerebrus 2009-04-15 08:07:29