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

网页编程必看:XML文法分析

在进行XML文法分析之前,首先有必要懂得XML语法的基础规矩:词法特点:1)XML区分大小写,如元素名在打开和封闭标记中应保持大小写一致mytag/mytag,XML的保留词串应符合大小写请求

 在进行XML文法分析之前,首先有必要懂得XML语法的基础规矩:

 词法特点:1)XML区分大小写,如元素名在打开和封闭标记中应保持大小写一致,XML的保留词串应符合大小写请求 …。

 2)XML保留标记字符为:<> &,保留字符不答应呈现在元素名、元素文本、属性名、属性值中,<用户打开标记,>用于封闭标记,&用于转意,常见的转意为 <天生<,>天生>,&天生&,&apos天生’,"天生”

 3)元素名以下划线或字母开端,可包含字母、数字、句点、连字符、下划线、冒号和用于其他语言的扩大字符,元素名中不能有空格符(分格符、跳格符、换行符、回车符),元素名可以由名域前缀。如: 元素文本可以是除XML保留字符外的字符聚集,如 my money is $2000

 4)属性名的规矩同元素名,属性值由单引号或双引号括约其中,可由除XML保留字符以外的字符串组成,如:。属性名有xmlns前缀,表明该属性定义了一个名域,如:

 句法特点:1)XML文档由一个XML阐明、多个可选的文档阐明、多个可选的XML指令、多个可选的XML注释和一个根元素的数据体组成,此外还可以有嵌进语句中的CDATA段,如:

以下为引用的内容:
/*XML阐明*/
   /*XML文档阐明*/
   /*XML注释*/
   /*XML指令*/
   /*根数据元素*/
  
  …
  

  

 2)XML阐明由标封闭,其中包含版本、编码等可选阐明,如:

 3)XML文档阐明由封闭,如:

 4)XML指令由封闭,如:

 5)XML注释由封闭,如:

 6)XML元素由<元素名>打开,由/>,或封闭,元素的打开和封闭标记相互匹配,如…,XML的元素答应嵌套,应此还应保持层次上的匹配,如..

 7)CDTATA段由打开,由]]>封闭,用于使居于其中的语句规避XML解析规矩。如:

 根据以上的XML文法特点,可以结构出用于词法分析的正则式和用于句法分析的下推主动机结构。

 XML词法正则式:

 #define digit [1,2,…,9] /*数字字符*/
 #define letter [a,b,…,z,A,B,…,Z] /*字母字符*/
 #define signs [~, ! , @, #, %, ^, &,*,(, ), ?, :, ;, “, ‘, ,, ., /,-, _, , =, |, \] /*符号字符*/
 #define ascii2 [0x80,…,0xFF] /*ASCII chart2 扩大字符*/
 #define space [0x20, \t, \r, \n] /*空格符,跳格符,回车符,换行符*/
 #define reserve [<, >, &] /*XML保留字符*/

 1) 元素名的正则式:

 element_name -> (_ | letter | ascii2) (ε| _ | - | : | . | digit | letter | signs | ascii2)*

 2) 元素文本的正则式:

 element_text -> (ε| not reserve)*

 3) 属性名的正则式:

 proper_name -> (_ | letter | ascii2) (ε| _ | - | : | . | digit | letter | signs | ascii2)*

 4) 属性文本的正则式:

 proper_value -> (ε| not reserve)*




推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍了 Java 中 org.eclipse.jface.viewers.ViewerCell 类的 getBackground() 方法,并提供了多个实际代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文详细介绍了 org.jdesktop.swingx.JXTitledPanel 类中的 setUI() 方法,探讨其功能、使用场景,并提供了多个实际代码示例。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 探讨了小型企业在构建安全网络和软件时所面临的挑战和机遇。本文介绍了如何通过合理的方法和工具,确保小型企业能够有效提升其软件的安全性,从而保护客户数据并增强市场竞争力。 ... [详细]
  • 本文详细介绍了如何在 Windows 环境下使用 node-gyp 工具进行 Node.js 本地扩展的编译和配置,涵盖从环境搭建到代码实现的全过程。 ... [详细]
  • 提升Tumblr爬虫效率与功能
    本文介绍了对之前开发的Tumblr爬虫脚本进行升级,整合了两个脚本的功能,实现了自动分页爬取博客内容,并支持配置文件以下载多个博客的不同格式文件。此外,还优化了图片下载逻辑。 ... [详细]
  • 作为一名 Ember.js 新手,了解如何在路由和模型中正确加载 JSON 数据是至关重要的。本文将探讨两者之间的差异,并提供实用的建议。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.qpid.server.model.VirtualHost 类的 closeAsync() 方法,提供了具体的代码示例和应用场景。通过这些示例,读者可以更好地理解和使用该方法。 ... [详细]
author-avatar
平平您好
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有