??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格式是怎么样的
- 有且只有一个根节点
- 标签区分大小写
- 嵌套关系要正确
- 标签必须是合法的
- 定义有效属性
有且只有一个根节点
标签区分大小写
嵌套关系要正确
标签必须是合法的
定义有效属性
二.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://uudwc.com/A/a2Bz4