xml是常用的一種數據文件格式,它的定義文件為Xml schema definition(XSD),那么怎么驗證一個xml是否符合它的schema定義呢?
成都創新互聯是專業的富源網站建設公司,富源接單;提供成都網站建設、成都做網站,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行富源網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
本文給出C#的代碼實現。
存儲在xml.xml文件中
<?xml version="1.0" encoding="utf-8" ?>
<xml>
<age>10</age>
<date>2018-01-01</date>
<regex>111</regex>
<gMonth>---10--</gMonth>
<language>english</language>
<anyURI>./news.html</anyURI>
</xml>
存儲在xsd.xsd文件中
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="xml">
<xs:complexType>
<xs:sequence>
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:decimal">
<xs:enumeration value="10"/>
<xs:enumeration value="20"/>
<xs:enumeration value="30"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="date">
<xs:simpleType>
<xs:restriction base="xs:date">
<xs:enumeration value="2018-01-01Z"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="regex">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="gMonth" type="xs:gMonth"/>
<xs:element name="language" type="xs:language"/>
<xs:element name="anyURI" type="xs:anyURI"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
下面代碼在Console Project中實現
class Program
{
static void Main(string[] args)
{
string xmlFile = "xml.xml";
string xsdFile = "xsd.xsd";
var exceptionMessage = string.Empty;
VerifyXML(xsdFile, xmlFile, ref exceptionMessage);
Console.WriteLine(exceptionMessage);
Console.ReadKey();
}
private static void VerifyXML(string xsdFile, string xmlFile, ref string exceptionMessage)
{
XmlDocument doc = LoadXML(xmlFile);
doc.Schemas = LoadXMLSchmeaFromXSDFile(xsdFile);
string errorMessage = string.Empty;
ValidationEventHandler eventHandler = new ValidationEventHandler(delegate (object sender, ValidationEventArgs e)
{
switch (e.Severity)
{
case XmlSeverityType.Error:
errorMessage += e.Message;
break;
case XmlSeverityType.Warning:
break;
}
});
doc.Validate(eventHandler);
exceptionMessage = errorMessage;
}
private static XmlDocument LoadXML(string xmlFile)
{
XmlDocument doc = new XmlDocument();
doc.Load(xmlFile);
return doc;
}
private static XmlSchemaSet LoadXMLSchmeaFromXSDFile(string path)
{
var schemas = new XmlSchemaSet();
schemas.Add("", XmlReader.Create(path));
return schemas;
}
}
分享文章:驗證xml是否符合指定xsd
標題URL:http://m.newbst.com/article8/gdcjop.html
成都網站建設公司_創新互聯,為您提供云服務器、手機網站建設、、動態網站、網站改版、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯