热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

在.NETFramework中轻松处理XML数据(3-1)

??带验证的浏览器??XmlValidatingReader类实现了XmlReader类,它供给了支撑多种类型的XML验证:DTD,XML-DataReduced(XDR)架构,以及XSD,DTD和XSD都是W3C官方推荐的。而XDR是Microsoft早期用于处
??带验证的浏览器

??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;

}

}



推荐阅读
  • 如何在Oracle ASM_Diskgroup中重命名现有磁盘
    如何在Oracle ASM_Diskgroup中重命名现有磁盘 ... [详细]
  • 在 HihoCoder 1505 中,题目要求从给定的 n 个数中选取两对数,使这两对数的和相等。如果直接对所有可能的组合进行遍历,时间复杂度将达到 O(n^4),因此需要考虑优化选择过程。通过使用哈希表或其他高效的数据结构,可以显著降低时间复杂度,从而提高算法的效率。具体实现中,可以通过预处理和存储中间结果来减少重复计算,进一步提升性能。 ... [详细]
  • BZOJ4240 Gym 102082G:贪心算法与树状数组的综合应用
    BZOJ4240 Gym 102082G 题目 "有趣的家庭菜园" 结合了贪心算法和树状数组的应用,旨在解决在有限时间和内存限制下高效处理复杂数据结构的问题。通过巧妙地运用贪心策略和树状数组,该题目能够在 10 秒的时间限制和 256MB 的内存限制内,有效处理大量输入数据,实现高性能的解决方案。提交次数为 756 次,成功解决次数为 349 次,体现了该题目的挑战性和实际应用价值。 ... [详细]
  • 题目描述非常吸引人。每颗星星可以通过其在窗口的左下角和右上角位置构建两条扫描线,从而将问题转化为区间增减和求最大值的操作。需要注意的是,位于边界的星星不应计入结果,因此在处理时应分别对左右边界进行适当的增减调整。此外,利用线段树和离散化技术可以显著提高算法效率,确保在大规模数据下的性能表现。 ... [详细]
  • 本文介绍了一种使用C语言实现三角形绘制的方法。通过在主函数中调用多个`printf`语句,分别输出不同数量的星号,从而构建出一个简单的直角三角形。该方法简单直观,适用于初学者理解和掌握基本的C语言输出操作。此外,还可以通过调整`printf`语句中的星号数量和行数,来绘制不同大小和形状的三角形。 ... [详细]
  • 本文深入探讨了算法进阶中的多个核心主题,包括最大似然估计在统计建模中的应用、赔率计算在风险评估中的重要性、FuzzyWuzzy库在字符串相似度匹配中的高效使用、主成分分析(PCA)在数据降维与特征提取中的关键作用,以及One-Hot编码在处理分类变量时的技术细节。通过这些内容,读者将获得对算法应用的全面理解。 ... [详细]
  • 本文介绍了如何利用Python的`os.path`模块来获取当前脚本文件的绝对路径,实现对文件位置的精准定位。通过示例代码展示了在复杂目录结构下(如 `C:\Users\songlihui\PycharmProjects\test001keshanchu\test\test1\test2\test3\test`)中准确获取文件路径的方法,帮助开发者在实际项目中更高效地管理文件资源。 ... [详细]
  • RK算法通过比较两个字符串的哈希值来实现快速匹配,但即使哈希值相同,也不能确保两字符串完全一致,仍需进行逐字符对比以确认。此过程的时间复杂度为O(n)。此外,RK算法在文本搜索、模式识别等领域有广泛应用,并可通过多种优化策略提高其效率和准确性。 ... [详细]
  • 深入解析JWT的实现与应用
    本文深入探讨了JSON Web Token (JWT) 的实现机制及其应用场景。JWT 是一种基于 RFC 7519 标准的开放性认证协议,用于在各方之间安全地传输信息。文章详细分析了 JWT 的结构、生成和验证过程,并讨论了其在现代 Web 应用中的实际应用案例,为开发者提供了全面的理解和实践指导。 ... [详细]
  • 为了有效保护U盘免受病毒侵扰,我决定为一位经常受到学校电脑病毒困扰的专业课老师的U盘提供全面的安全防护。本文将详细介绍几种有效的防病毒措施,包括使用右键菜单安全打开U盘、安装可靠的杀毒软件以及定期更新系统和驱动程序,确保数据安全无忧。 ... [详细]
  • 探索Matlab中的高效数据存储方法与技术
    在MATLAB中,虽然其丰富的算法库和用户友好的编程环境为科研人员带来了极大的便利,但在处理大规模数据或复杂计算任务时,仍存在执行效率较低的问题。为了提升数据处理速度和优化资源利用,本文探讨了多种高效的存储技术和方法,旨在通过改进数据管理策略来显著提高MATLAB的性能表现。 ... [详细]
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • 微信支付授权目录配置详解及操作步骤
    在使用微信支付时,若通过WeixinJSBridge.invoke方法调用支付功能,可能会遇到“当前页面URL未注册”的错误提示,导致get_brand_wcpay_request:fail调用微信JSAPI支付失败。为解决这一问题,需要正确配置微信支付授权目录,确保支付页面的URL已成功注册。本文将详细介绍微信支付授权目录的配置步骤和注意事项,帮助开发者顺利完成支付功能的集成与调试。 ... [详细]
  • 深入解析 Vue 中通过 $route.params 实现参数传递的方法与技巧
    本文深入探讨了在 Vue 框架中利用 `$route.params` 进行参数传递的方法和技巧。通过详细解析 `$route.params` 的工作机制及其与 `$route.query` 的区别,帮助开发者更好地理解和应用这一功能。文章不仅涵盖了基本的使用方法,还提供了实际案例和最佳实践,以便读者能够灵活运用这些技术,提升开发效率和代码质量。 ... [详细]
  • 本文深入探讨了 MXOTDLL.dll 在 C# 环境中的应用与优化策略。针对近期公司从某生物技术供应商采购的指纹识别设备,该设备提供的 DLL 文件是用 C 语言编写的。为了更好地集成到现有的 C# 系统中,我们对原生的 C 语言 DLL 进行了封装,并利用 C# 的互操作性功能实现了高效调用。此外,文章还详细分析了在实际应用中可能遇到的性能瓶颈,并提出了一系列优化措施,以确保系统的稳定性和高效运行。 ... [详细]
author-avatar
karenwang05
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有