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

XML轻松学习手册(4)XML的术语之二

二.DTD的有关术语什么是DTD,我们上面已经简略提到。DTD是一种保证XML文档格局准确的有效方法,可以比拟XML文档和DTD文件来看文档是否符合规范,元素和标签应用是否准确。一个DTD文档
二.DTD的有关术语

什么是DTD,我们上面已经简略提到。DTD是一种保证XML文档格局准确的有效方法,可以比拟XML文档和DTD文件来看文档是否符合规范,元素和标签应用是否准确。一个DTD文档包含:元素的定义规矩,元素间关系的定义规矩,元素可应用的属性,可应用的实体或符号规矩。

DTD文件也是一个ASCII的文本文件,后缀名为.dtd。例如:myfile.dtd。

为什么要用DTD文件呢?我的懂得是它满足了网络共享和数据交互,应用DTD最大的利益在于DTD文件的共享。(就是上文DTD阐明语句中的PUBLIC属性)。比如,两个雷同行业不同地区的人应用同一个DTD文件来作为文档创立规范,那么他们的数据就很轻易交换和共享。网上有其他人想补充数据,也只需要根据公用的DTD规范来建立文档,就立即可以参加。

目前,已经有数目众多的写好的DTD文件可以利用。针对不同的行业和利用,这些DTD文件已经建立了通用的元素和标签规矩。你不需要自己重新创立,只要在他们的基础上参加你需要的新标识。

当然,假如愿意,你可以创立自己的DTD,它可能和你的文档配合的更加完善。建立自己的DTD也是很简略的一件事,一般只需要定义4-5个元素就可以了。

调用DTD文件的方法有两种:

1.直接包含在XML文档内的DTD

你只要在DOCTYPE声明中插进一些特别的阐明就可以了,象这样:

我们有一个XML文档:







ajie



我们在第一行后面插进下面代码就可以:








]>


2.调用独立的DTD文件

将DTD文档存为.dtd的文件,然后在DOCTYPE声明行中调用,例如,将下面的代码存为myfile.dtd






然后在XML文档中调用,在第一行后插进:


我们可以看到DTD文档和HTML中js的调用是差未几的,关于DTD文档具体如何写,我们将在下一章和XML文档的语法一起先容。


下面我们来懂得DTD有关的术语:


1.Schema(计划)

schema是数据规矩的描写。schema做两件事:

a.它定义元素数据类型和元素之间的关系;

b.它定义元素所能包含的内容类型。

DTD就是关于XML文档的一个schema。


2.Document Tree(文档树)

'文档树'在前面第二章我们已经提到过,它是文档元素分级结构的象表现。一个文档结构树包含根元素,根元素是最顶级的元素,(就是紧接着XML声明语句后的第一个元素)。看例子:









...





上面的例子分三级结构排列成'树'状,其中的就是根元素。在XML和DTD文件中,第一个定义的都是根元素。


3.Parent Element(父元素)/Child Element(子元素)

父元素是指包含有其它元素的元素,被包含的元素称为它的子元素。看上面的'结构树',其中是父元素,,是它的子元素,而又是的子元素。象这样没有包含任何子元素的最后一级元素我们也称之为'页元素'。


4.Parser(解析软件)

Parser是一种检查XML文档是否遵守DTD规范的工具软件。

XML的parser发展为两类:一种是'非确认类paeser',只检测文档是否遵照XML语法规矩,是否用元素标识建立了文档树。另一种是'确认类paeser',它不但检测文档语法,结构树,而且比拟解析你应用的元素标识是否遵照了相应DTD文件的规范。

Parser能独立应用,也可以成为编纂软件或浏览器的一部分。在后面的相干资源列表里,我列出了当前比拟风行的一些parsers。


  好了,通过第三章的学习,我们已经懂得了一些XML和DTD的基础术语,但是我们还不知道怎样来写这些文件,需要遵守什么样的语法,在下一章,将重点先容有关撰写XML和DTD文档的语法。请持续浏览,谢谢!




推荐阅读
  • 通过自定义 `TextView`,实现了在用户点击或焦点变化时动态调整字体颜色的效果。该方法利用了 `ColorStateList` 和 `Selector` 资源文件,确保了界面交互的流畅性和视觉效果的提升。具体实现中,通过重写 `onTouchEvent` 和 `onFocusChanged` 方法,精确控制了颜色变化的时机和状态。此外,还对性能进行了优化,确保在高频率操作下依然保持高效响应。 ... [详细]
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 深入解析Gradle中的Project核心组件
    在Gradle构建系统中,`Project` 是一个核心组件,扮演着至关重要的角色。通过使用 `./gradlew projects` 命令,可以清晰地列出当前项目结构中包含的所有子项目,这有助于开发者更好地理解和管理复杂的多模块项目。此外,`Project` 对象还提供了丰富的配置选项和生命周期管理功能,使得构建过程更加灵活高效。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 在处理大规模并发请求时,传统的多线程或多进程模型往往无法有效解决性能瓶颈问题。尽管它们在处理小规模任务时能提升效率,但在高并发场景下,系统资源的过度消耗和上下文切换的开销会显著降低整体性能。相比之下,Python 的 `asyncio` 模块通过协程提供了一种轻量级且高效的并发解决方案。本文将深入解析 `asyncio` 模块的原理及其在实际应用中的优化技巧,帮助开发者更好地利用协程技术提升程序性能。 ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • 如何构建基于Spring MVC框架的Java Web应用项目
    在构建基于Spring MVC框架的Java Web应用项目时,首先应创建一个新的动态Web项目。接着,需将必要的JAR包导入至WebContent/WEB-INF/lib目录下,确保包括Spring核心库及相关依赖。如遇缺失的JAR包,可向社区求助或通过Maven等工具自动下载。正确配置后,即可开始搭建应用结构与功能模块。 ... [详细]
  • 在第六章中,我们将深入探讨MySQL中的多表查询技术,包括联结查询和子查询。联结查询通过将两个或多个表进行连接,基于连接条件生成结果集。常见的联结类型有内联结、外联结和全外联结。交叉联结(CROSS JOIN)虽然使用较少,但其原理是生成所有可能的组合,类似于笛卡尔积的概念。此外,子查询则是在一个查询语句中嵌套另一个查询,用于获取更复杂的数据集。本章将通过实例详细讲解这些查询方法的应用和优化技巧。 ... [详细]
  • Vue项目上线后遇到的问题及解决方案 ... [详细]
  • 如何在PHP中提取数字的特定位数值
    本文将详细介绍如何在PHP中提取数字的特定位置的数值。这一技巧对于数据处理和算法实现具有重要意义,通过实例代码和详细解析,帮助读者掌握该方法的应用场景和实现方式。 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
author-avatar
Hongquan_Yang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有