大家好,我的XML文件如下

XML名称XMLFile2.xml

<?xml version="1.0"?>
<Product ProductID="123"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Product.xsd">
<ProductName>XYZ</ProductName>
</Product>

我的XSD如下

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Product"
targetNamespace="http://tempuri.org/Product.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/Product.xsd"
xmlns:mstns="http://tempuri.org/Product.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Product">
<xs:complexType>
  <xs:sequence>
    <xs:element name="ProductName" type="xs:string"></xs:element>
  </xs:sequence>
  <xs:attribute name="ProductID" type="xs:int" use="required"/>
</xs:complexType>
 </xs:element>

这是我的代码

string strPath = Server.MapPath("XMLFile2.xml");
XmlTextReader r = new XmlTextReader(strPath);
XmlValidatingReader v = new XmlValidatingReader(r);
v.ValidationType = ValidationType.Schema;
v.ValidationEventHandler +=
new ValidationEventHandler(MyValidationEventHandler);
while (v.Read())
    {

    }
v.Close();

    if (isValid)
        Response.Write("Document is valid");
    else
        Response.Write("Document is invalid");

我收到以下错误

Validation event
The targetNamespace parameter '' should be the same value as the targetNamespace 'http://tempuri.org/Product.xsd' of the schema.Validation event
The 'Product' element is not declared.Validation event
Could not find schema information for the attribute 'ProductID'.Validation event
The 'ProductName' element is not declared.Document is invalid

谁能告诉我我出了错。

===============>>#1 票数:5 已采纳

您的XSD设置为验证"http://tempuri.org/Product.xsd"命名空间,但您的XML仅包含""命名空间中的元素。

您需要(a)更改XML文件以使用"http://tempuri.org/Product.xsd"名称空间,或(b)更改XSD文件以使用""名称空间,具体取决于您的用户要求。

  ask by Dorababu Meka translate from so

未解决问题?本站智能推荐:

1回复

使用Xsd2Code将PMML XML模式(xsd)转换为C#对象时出错

我试图使用Xsd2Code( Xsd2Code )从PMML 3.0架构( PMML 3.0架构 )创建C#对象,但是我得到的只是以下错误: 错误:元素'http://www.dmg.org/PMML-3_0:Array'的多个定义导致内容模型变得模棱两可。 必须形成内容模型,以便在
1回复

使用Schematron / XSD在C#中进行XML验证

我一直在寻找一种方法来对XML文档进行更高级的业务规则验证。 到目前为止,Schematron似乎能够做到,我需要什么。 我一直在环顾四周,我发现的少数几个图书馆已经很老了,似乎不再支持了。 Schematron在2002年只是“热门”吗? 有没有可以在C#中进行验证的库 - 或者我
2回复

在C#中使用XSD文件创建xml文件时出现问题

我需要通过一个类从XSD文件创建XML文件。 我是编程的新手,所以我按照本教程进行了第一个测试XML,并且效果很好: 使用XSD文件生成XML文件 但是现在我必须使用更大的XSD来做,创建一个更大的XML,如下所示: 我的问题是,该教程没有创建看起来像这样的XML文件。 它只会使用<
2回复

使用minOccurs =“0”的元素上的C#XSD验证失败

我正在验证针对此XSD的一些XML: 当我对它运行以下XML时: 我使用以下代码在C#/ .Net4.0中运行它: 我收到以下错误:命名空间'urn:xxx-au:index-types'中的元素'Component'具有不完整的内容。 期望的可能元素列表:命名空间中的
1回复

当验证规则的一部分在WSDL中时,如何使用XSD验证XML

我使用C#,.NET 4.5,控制台应用程序。 我在服务引用中添加了WSDL文件。 内部WSDL是验证规则,如: 还有XSD文件,验证规则的详细信息如下: 我在Reference.cs中自动生成了WSDL的属性,如: 我将xRequest对象序列化为XML,我想验证它
2回复

使用XSD.exe从多个XSD架构生成c#类

我有2个XSD文件。 一个XSD文件可以说ABC.xsd包含属于XML的元素。 另一个XSD文件让我们说XYZ.xsd包含这些元素的定义。 现在在ABC.XSD(包含元素)模式标记以及其他名称空间中,我们也提到了schemalocation 当我执行xsd.exe来生成我的
1回复

使用XSD.exe的多个版本的C#类/ XSD

我正在使用XSD.exe将相当复杂的XML架构(XSD文件)转换为C#类。 然后,我使用XmlSerializer将XML读取到内存中并使用数据。 将来,XSD将发生变化。 因此将有一个新版本。 我将不得不使用XSD.exe创建一个新的CS文件。 但是我仍然想支持XML文件的旧版本。 做到这一点
2回复

在没有XSD的情况下验证XML

我有一个XML文件,需要它有一些特定的标签,否则我将无法处理该文件。 我如何确定这些标签是否存在,我尝试使用XSD验证,但是文件格式不断变化,并且它们不断发送不需要处理文件的其他标签,但是拥有这些其他标签不会损害我的流程。 有没有一种方法可以编写XSD,使其仅查找几个标签而忽略其他标签?
1回复

在Win7上在dot net visual studio 2013上从C#中的xml文件加载xml文件时出错

我需要在Win7上从dot net visual studio 2013中的C#的xml文件中加载数据。 我的C#代码: 但是,该节点为“空”。 任何帮助,将不胜感激。 谢谢
2回复

如何使用XSD2CODE生成的C#类

我是XSD领域的新手,我使用过XML,但编程方式不多。 我已经成功地使用XSD2Code生成了C#类。有人可以指导我如何使用C#使用那些生成的类并使用XML进行验证。 代码片段将不胜感激。 谢谢并恭祝安康。