在.NET Framework中轻松处理XML数据(3-1)
??带验证的浏览器
??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);
public XmlValidatingReader(string, XmlNodeType, XmlParserContext);
??带验证的XML浏览器能分析任何的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;
class MyXmlValidApp
{
public MyXmlValidApp(String fileName)
{
try {
Validate(fileName);
}
catch (Exception e) {
Console.WriteLine('Error:\t{0}', e.Message);
Console.WriteLine('Exception raised: {0}',
e.GetType().ToString());
}
}
private void Validate(String fileName)
{
XmlTextReader xtr = new XmlTextReader(fileName);
XmlValidatingReader vreader = new XmlValidatingReader(xtr);
vreader.ValidationType = ValidationType.Auto;
vreader.ValidationEventHandler = new
ValidationEventHandler(this.ValidationEventHandle);
vreader.Read();
vreader.MoveToContent();
while (vreader.Read()) {}
xtr.Close();
vreader.Close();
}
public void ValidationEventHandle(Object sender,
ValidationEventArgs args)
{
Console.Write('Validation error: ' args.Message '\r\n');
}
public static void Main(String[] args)
{
MyXmlValidApp o = new MyXmlValidApp(args[0]);
return;
}
}
以上就是在.NET Framework中轻松处理XML数据(3-1) 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

.NETFramework4是开发人员和最终用户在Windows上运行最新版本的应用程序所必需的。但是,在下载安装.NETFramework4时,许多用户抱怨安装程序在中途停止,显示以下错误消息-“ .NETFramework4hasnotbeeninstalledbecauseDownloadfailedwitherrorcode0x800c0006 ”。在您的设备上安装.NETFramework4时,如果您也在体验它,那么您就来对了地方

每当您的Windows11或Windows10PC出现升级或更新问题时,您通常会看到一个错误代码,指示故障背后的实际原因。但是,有时,升级或更新失败可能不会显示错误代码,这时就会出现混淆。有了方便的错误代码,您就可以确切地知道问题出在哪里,因此您可以尝试修复。但是由于没有出现错误代码,因此识别问题并解决它变得极具挑战性。这会占用您大量时间来简单地找出错误背后的原因。在这种情况下,您可以尝试使用Microsoft提供的名为SetupDiag的专用工具,该工具可帮助您轻松识别错误背后的真
![SCNotification 已停止工作 [修复它的 5 个步骤]](https://img.php.cn/upload/article/000/887/227/168433050522031.png?x-oss-process=image/resize,m_fill,h_207,w_330)
作为Windows用户,您很可能会在每次启动计算机时遇到SCNotification已停止工作错误。SCNotification.exe是一个微软系统通知文件,由于权限错误和点网故障等原因,每次启动PC时都会崩溃。此错误也以其问题事件名称而闻名。因此,您可能不会将其视为SCNotification已停止工作,而是将其视为错误clr20r3。在本文中,我们将探讨您需要采取的所有步骤来修复SCNotification已停止工作,以免它再次困扰您。什么是SCNotification.e

Python实现XML数据的过滤和筛选XML(eXtensibleMarkupLanguage)是一种用于存储和传输数据的标记语言,它具有灵活性和可扩展性,常被用于在不同系统之间进行数据交换。在处理XML数据时,我们经常需要对其进行过滤和筛选,以提取出我们所需的信息。本文将介绍如何使用Python来实现XML数据的过滤和筛选。导入所需模块在开始之前,我们

当今人工智能(AI)技术的发展如火如荼,它们在各个领域都展现出了巨大的潜力和影响力。今天大姚给大家分享4个.NET开源的AI模型LLM相关的项目框架,希望能为大家提供一些参考。https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel是一种开源的软件开发工具包(SDK),旨在将大型语言模型(LLM)如OpenAI、Azure

已安装Microsoft.NET版本4.5.2、4.6或4.6.1的MicrosoftWindows用户如果希望Microsoft将来通过产品更新支持该框架,则必须安装较新版本的Microsoft框架。据微软称,这三个框架都将在2022年4月26日停止支持。支持日期结束后,产品将不会收到“安全修复或技术支持”。大多数家庭设备通过Windows更新保持最新。这些设备已经安装了较新版本的框架,例如.NETFramework4.8。未自动更新的设备可能

自我们谈论影响安装KB5012643forWindows11的用户的新安全模式错误以来已经过去了一周。这个讨厌的问题并没有出现在微软在发布当天发布的已知问题列表中,因此让所有人都感到意外。好吧,就在您认为情况不会变得更糟的时候,微软为安装此累积更新的用户投下了另一颗炸弹。Windows11Build22000.652导致更多问题因此,这家科技公司警告Windows11用户,他们在启动和使用某些.NETFramework3.5应用程序时可能会遇到问题。听起来很熟悉?不过请不要惊
