0
のxsdスキーマに対してxmlファイルを正常に検証する必要があります。 "ID"属性が宣言されていないというエラーが発生しました。 '学生'。xmlファイルとxsdスキーマファイルの両方を追加した後にコードを実行すると、C#
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Students>
<Student ID="101">
<Name>kamal</Name>
<Gender>Male</Gender>
<Marks>800</Marks>
</Student>
<Student ID="102">
<Name>Sapna</Name>
<Gender>Female</Gender>
<Marks>900</Marks>
</Student>
<Student ID="103">
<Name>Raju</Name>
<Gender>Male</Gender>
<Marks>870</Marks>
<Student ID="104">
<Name>Sushant</Name>
<Gender>Male</Gender>
<Marks>700</Marks>
</Student>
</Student>
</Students>
<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Students">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Student" minOccurs="1" maxOccurs="4">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Gender" minOccurs="1" maxOccurs="1"/>
<xsd:element name="Marks" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
そして最後にコードファイル:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using System.Xml.Schema;
namespace ClassLibrary1
{
class Class16
{
public static void Main()
{
XmlSchemaSet ss = new XmlSchemaSet();
ss.Add("", @"C:\Users\admin\documents\visual studio 2013\Projects\ClassLibrary1\ClassLibrary1\Students.xsd");
XDocument doc = XDocument.Load(@"C:\Users\admin\documents\visual studio 2013\Projects\ClassLibrary1\ClassLibrary1\sample1.xml");
bool validationerror = false;
doc.Validate(ss,(s,e)=>
{
Console.WriteLine(e.Message);
validationerror = true;
});
if(validationerror)
{
Console.WriteLine("Validation failed");
Console.ReadLine();
}
else
{
Console.WriteLine("Validation succeded");
Console.ReadLine();
}
}
}
}
あなたはここで変更何をしたか教えて! –
XSD –
で を追加しました。だから私はそれをしました。 XMLファイルの3番目の生徒要素を注意深く観察すると、終了タグが最後に移動したことがわかります。このため、エラーが発生しています」要素「Student」に無効な子要素「Student」があります。「 –