XML系列篇之dtd约束

??Welcome Huihui's Code World ! !??

接下来看看由辉辉所写的关于xml的相关操作吧

目录

??Welcome Huihui's Code World ! !??

一.XML

是什么

?辉辉小贴士:json和xml都能够进行数据交互,那么有什么不一样呢?

为什么要用

怎么用➡良好的xml格式是怎么样的

二.dtd约束

是什么

?辉辉小贴士:xml有两种约束,那么这两种约束有什么不一样呢?

为什么要使用dtd约束

怎么用

元素

属性

代码示例 


一.XML

是什么

  • XML(Extensible Markup Language),中文为可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言
  • XML可以用来标记数据、定义数据类型,可以允许用户对自己标记语言进行定义,是对人和机器都比较友好的数据承载方式
  • 也可以用来进行数据交互

?辉辉小贴士:json和xml都能够进行数据交互,那么有什么不一样呢?

        XML 和 JSON 是现今互联网中最常用的两种数据交换格式

        xml和json格式的区别

  • XML天生有很好的扩展性;XML有丰富的编码工具,
  • JSON是一种轻量级的数据交互格式,具有简单直观的格式;可以直接与JavaScript、Python等语言中的对象兼容;作为数据包格式传输的时候具有更高的效率(因为JSON不像XML有闭合标签,节省很多字节)

为什么要用

因为它是框架的重要组成部分,而框架能够提升效率,满足企业需求 

怎么用➡良好的xml格式是怎么样的

  1.         有且只有一个根节点
  2.         标签区分大小写
  3.         嵌套关系要正确
  4.         标签必须是合法的
  5.         定义有效属性

        有且只有一个根节点

    标签区分大小写

    嵌套关系要正确

标签必须是合法的

 定义有效属性

二.dtd约束

是什么

DTD (Document Type Definition,文档类型定义),主要是用来约束 XML 文件的一种方式。 它是标准通用标记语言和可扩展标记语言1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则

?辉辉小贴士:xml有两种约束,那么这两种约束有什么不一样呢?

        XML 可以使用 DTD (Document Type Definition) 和 XSD (XML Schema Definition) 来定义文档的结构和约束条件

        联系:

  • DTD (Document Type Definition) 约束和 Schema (XML Schema Definition) 约束都是用来定义 XML 文档的结构和内容的,但是它们之间存在一些区别

        区别:

  • 1. 语法差异
    • DTD 使用文本格式来定义 XML 结构,而 Schema 使用 XML 格式来定义 XML 结构。因此,DTD 的语法比较简单,易于学习和理解,但是不够灵活,而 Schema 的语法则更加复杂,但是更加灵活,可以支持数据类型、命名空间等特性。
  • 2. 数据类型验证
    • DTD 不支持数据类型验证,只能验证元素和属性是否符合规定的结构;而 Schema 支持数据类型验证,可以定义元素和属性的数据类型,例如字符串,日期格式等。数据类型验证可以帮助我们更好地检测数据的合法性。
  • 3. 命名空间支持
    • DTD 不支持命名空间,而 Schema 支持命名空间。通过命名空间的定义,我们可以为一个 XML 文档定义一个独立的标识符,并且使得不同应用程序中的 XML 文档之间可以进行独立的开发和解析。
  • 4. 束条件的复杂性
    • Schema 的约束条件可以定义更复杂的规则,例如元素的出现次数、元素之间的先后顺序等。此外,Schema 还支持代码重用,可定义自定义类型和元素(复杂类型)以帮助构建更复杂的文档。

        综上所述,DTD 约束和 Schema 约束都是用于定义 XML 结构和内容的,但 Schema 更加灵活、可扩展性更高。同时,使用 Schema 约束可以更好的支持数据类型验证和命名空间定义等功能,也可以定义更复杂的约束条件,支持数据格式验证

为什么要使用dtd约束

 如果没有约束的话,那么用户不知道你的规则究竟是什么,从而达不到好的体验感

怎么用

 格式:<!DOCTYPE root[]>

元素

	<!ELEMENT root()>
  • 元素的分类
    • 空(EMPTY)
    •  文本(#PCDATA)
    • 混合(a,b)   
  • 元素的限制  
    • 并且关系 用 ' , '
    •  或者关系 |
    • 次数 
      • 0次或者一次
      • 一次或者多次
      • 0次或者多次
         

属性

<!ATTLIST root 属性 约束>
  • 属性类型
    •         ID
    •         ( | )选择
    •         CDATA:文本
    •         IDREF:id的引用,相当于外键
    •         #REQUIRED:必填
    •         #IMPLIED:非必填

代码示例 

<?xml version="1.0" encoding="UTF-8"?>
	<!DOCTYPE persons[
	<!ELEMENT persons (person*)>
	<!ELEMENT person (name,age,contact,br?)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)>
	<!ELEMENT contact (phone|email)>	
	<!ATTLIST person 
	pid ID #REQUIRED
	sex (男|女) '女'
	qq CDATA #IMPLIED
	parent IDREF #IMPLIED
	>
				
]>

<persons>
	<person pid="p1" sex="男" qq="aaa" parent="p2">
		<name>张小明</name>
		<age>10</age>
		<contact>
			<phone>1234567</phone>
		</contact>
		<br/>
	</person>
	<person pid="p2">
		<name>张大明</name>
		<age>35</age>
		<contact>
			<email>123@qq.com</email>
		</contact>
	</person>
</persons>

        

              好啦,今天的分享就到这了,希望能够帮到你呢!??               文章来源地址https://uudwc.com/A/a2Bz4

原文地址:https://blog.csdn.net/m0_74315688/article/details/131259866

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年06月25日 06:04
git图形化提交报错“error: cannot spawn C:\Program Files (x86)\Git\bin\ssh.exe: ”
下一篇 2023年06月25日 06:06