在.NET Framework中輕鬆處理XML資料(3-1)

黄舟
發布: 2016-12-20 14:09:09
原創
1166 人瀏覽過

??帶驗證的瀏覽器

??XmlValidatingReader類實現了XmlReader類,它供給了支撐多種類型的XML驗證:DTD,XML-Data Reduced(XDR)架構,以及XSD,DTD和XSD都是W3C官方推薦的。而XDR是Microsoft早期用於處理XML構架的一種格局。

??你可以用XmlVlidatingReader類別往來驗證XML文件和XML片段。 XmlValidatingReader類別工作在XML瀏覽器上面---是一個典範的XMLTextReader類別實例。 XMLTextReade用來讀取文件的節點,但XmlVlidatingReader依照需要的驗證類型往驗證每一個XML區塊。

??XmlVlidatingReader類別只實作了非常小的XML瀏覽器必備的一個功效子集。該類別總是工作在一個已存在的XML瀏覽器上面,它監督方法和屬性。假如你深進該類別的結構函數,你會發明它很明顯的依附一個已存在的文本瀏覽器。帶有驗證的XML瀏覽器不能直接的從一個檔案或一個URL序列化。此類別的結構函數清單如下:

public XmlValidatingReader(XmlReader);

public XmlValidatingReader(Stream, XmlNodeType, XmlParserContext)Node

public XmlValidatingReader(strion, XidatingReader(cminser);能分析任何的XML片段,XML片段透過一個string或一個stream供給,也可以分析任何瀏覽器供給的XML文件。

??XmlVlidatingReader類別中有重大轉變的方法非常少(相對其它reader類別來說),另外對 Read,它有Skip和ReadTypedValue方法。 Skip方法跳過目前節點所有的子節點(你不能跳過不良格局的XML文本,它是相當有用的演算法),Skip方法也驗證被跳過的內容。 ReadTypedValue方法傳回指定 XML 架構 (XSD) 類型對應的CLR類型。如果方法找到了XSD類型對應的CLR類型,則傳回CLR的類型名稱。如果找不到,則把該節點的值當作一個字串值傳回。

??帶驗證的XML瀏覽器如其名,它是一個基於節點的瀏覽器,它驗證目前節點的結構是否符合目前的schema。驗證是增量式的;它沒有方法傳回表現文檔是否有效的布林值。通常你都是用Read方法往讀輸進的XML文件。實際上,你也可以用有驗證的瀏覽器往讀XML文件。在每一步中,目前被拜訪的節點的結構是否與指定的schema符合,假如不符合,拋出一個異常。圖四是一個把持台利用程序,它有一個要輸進檔案名稱的命令列,最後輸出驗證成果。

Figure 4 Console App

using System;

using System.Xml;

using System.Xml.Schema;
App
fileName)

{

try {

Validate(fileName);

}

catch (Exception e) {

Console.WriteLine('Error:t{0}', e.Message); 0}',

e.GetType().ToString());

}

}



蜥;

XmlValidatingReader vreader = new XmlValidatingReader(xtr);

vreader.ValidationType = ValidationType.Auto;

vreader.ValidationEventHandler = .Read();

vreader.MoveToContent ();



while (vreader.Read()) {}



xtr.Close();

vreader.Cl建立); ender,

ValidationEventArgs args)

{

Console.Write('Validation error: ' args.Message 'rn');

}

MyXmlValidApp o = new MyXmlValidApp(args[0]);

return;

}

}



以上是在.NET Framework中輕鬆處理XML資料(3)請追蹤相關內容中文網(m.sbmmt.com)!



相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!