博客
关于我
【PHP XML与dtd概述【完整版】】
阅读量:441 次
发布时间:2019-03-06

本文共 1772 字,大约阅读时间需要 5 分钟。

XML文件简介

对于XML,这是一个不陌生的话题。HTML→xhtml→XML,这是HTML发展的历史轨迹。XML不仅仅是简单的标记语言,它还可以作为配置文件或小型数据库来使用。这使得它在各种应用场景中都有其独特的价值。

XML文档的基本特性

  • 版本:文档必须符合XML1.0规范。
  • 编码:默认使用UTF-8编码。
  • standalone:可以选择standalone="yes",表示文档独立使用DTD约束。
  • 根元素:每个XML文档必须有且仅有一个根元素。
    • 根元素的标签必须放在所有其他元素的标签之前。
    • 根元素的结束标签必须放在所有其他元素的结束标签之后。

XML文件的命名规范

  • 标签区分大小写。
  • 元素名称不能以数字或下划线开头。
  • 元素名称中不能包含空格或冒号。
  • 元素名称中不能包含特殊字符,除非使用实体引用。

XML文件的注释和属性值

  • XML文件使用HTML文件的注释方式。
  • 属性值必须用双引号包裹。

DTD文件概述

DTD的概念

DTD(Document Type Definition,文档类型定义)是XML技术中用来约束XML文档书写规范的一种机制。它可以确保XML文档的结构和内容符合预期。

DTD在PHP中的应用

在编程中,DTD可以提供以下约束:

  • 元素的存在性和顺序。
  • 元素的内容类型(如是否可以包含子元素、文本或其他内容)。
  • 属性的定义和约束。

DTD的必要性

举例:如果XML文件中定义了<person>元素,里面包含<name><age>等元素,但还包含<除毛净重><面积>,这显然不合理。DTD可以帮助避免这样的错误。

DTD文档的语法

元素定义
  • NAME是元素名称。
  • CONTENT表示元素的内容类型,可能包括:
    • EMPTY:该元素不能包含子元素或文本。
    • ANY:该元素可以包含任何定义的元素内容。
    • #PCDATA:允许包含任何字符数据,但不能包含子元素。
简单DTD示例
组合示例
  • ?表示该元素可以出现0次或1次。
  • *表示该元素可以出现0次或多次。
  • +表示该元素必须出现至少一次。
通配符
  • +:表示1-n个(必须至少出现一次)。
  • *:表示0-n个(可以出现0次或多次)。
  • ?:表示0或1次。
属性定义
属性类型
  • CDATA:属性值可以是任意字符。
  • ID:属性值必须是唯一的,且以字母开头。
  • IDREF/IDREFS:属性值必须在XML文档中有定义。
  • Emumerated:属性值来自预定义的枚举列表。
  • ENTITY/ENTITIES:属性值可以引用已定义的实体。
属性特点
  • #REQUIRED:属性必须存在。
  • #IMPLIED:属性可以存在或不存在。
  • #FIXED value:属性值是固定的。
  • DEFAULT value:属性值的默认值。

引入DTD约束

内部DTD和外部DTD

  • 内部DTD:将DTD定义写在XML文件中。
  • 外部DTD:将DTD单独写在一个文件中,并通过引用方式引入XML文件。

引入DTD的语法

  • 内部DTD示例:
  • 外部DTD示例:

内外部DTD结合使用


JS验证XML规范性的案例

DTD控制.dtd文件内容

Person.xml文件内容

张三
16
张燕
17
赵六
20

JS验证代码


XML与DTD的实际应用

产品目录DTD示例


总结

通过上述内容,我们可以看到XML与DTD的重要性。DTD为XML文件提供了结构和内容上的约束,从而确保XML文档的规范性和一致性。在实际开发中,合理设计DTD可以显著提升项目的可维护性和稳定性。虽然对于普通开发人员来说,编写DTD可能不是每天都需要的事情,但理解其原理和用法是非常有帮助的。

转载地址:http://vwcyz.baihongyu.com/

你可能感兴趣的文章
PCA和自动编码器:每个人都能理解的算法
查看>>
pca算法
查看>>
PCA降维demo
查看>>
SharePoint 2013 图文开发系列之定义站点模板
查看>>
PCB生产流程详解-ChatGPT4o作答
查看>>
PCB设计十条黄金法则
查看>>
SpringSecurity框架介绍
查看>>
PCI Express学习篇:Power Management(二)
查看>>
pcie握手机制_【博文连载】PCIe扫盲——Ack/Nak 机制详解(一)
查看>>
pcm转wav的方法及代码示例
查看>>
PC史上最悲剧的16次失败
查看>>
PC端恶意代码分析Lab1.1-5.1,从零基础到精通,收藏这篇就够了!
查看>>
PC端稳定性测试探索
查看>>
PC端编辑 但能在PC端模拟移动端预览的富文本编辑器
查看>>
PDB文件:每个开发人员都必须知道的
查看>>
springMVC学习(二)
查看>>
Pdfkit页眉和页脚
查看>>
PDF中的Pandoc语法突出显示不起作用
查看>>
pdf从结构新建书签_在PDF文件中怎样创建书签
查看>>
pdf做成翻页电子书_第一弹:常见BOOX电子书阅读器问题解答,这些技能你都会吗?...
查看>>