什么是XSD?

  • 前言
  • 一、你是不是和我一样?
  • 二、什么是DTD?
    • 那么没有DTD行不行?
  • 三、所以XSD是什么?
    • 我们查看一个pom.xml

前言

当我第一次看到xsd,我同样以联蒙蔽,但它其实无处不在,通过百度,我能看到的最多的就是,这个东西它类似dtd,那么dtd又是什么鬼东西,我怎么知道呢?气得吐血,所以本文带你更快地了解什么是xsd

一、你是不是和我一样?

曾经我也一脸蒙蔽,百度

二、什么是DTD?

DTD document type definition 文档类型定义
举个例子
大家多少都知道html吧
那么dtd文件就是可以规定html里的标签可以有哪些字标签,每个标签可以有哪些属性,我们知道html标签字标签headbodybody 下面可以有 table
如果你比较嚣张想在html 标签下直接写个 table标签,那肯定报错了。
所以我们可以理解为,DTD是规定我们在html文件中标签之间的关系,且每个标签有哪一些属性。
当然这个可能也是有一些抽象的,但是不再举更深入的例子。因为我们在xsd会用一个实例去解释,同样就能够明白这是什么了。

那么没有DTD行不行?

是可以的,写完删掉DTD,它不影响文件运行,它只不过用来告诉你,你写的对不对。

三、所以XSD是什么?

既然XSD是DTD的替代品,所以xsd也是用来描述文档结构的。只不过语法不通,规则不同罢了。好比DTD是奥拓,XSD是奥迪,都能开,奥迪开的爽点。为了更好地理解,必须用实例来解释

我们查看一个pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.antry</groupId><artifactId>tttest</artifactId><version>1.0-SNAPSHOT</version>
</project>

我们可以到xsi:schemalocation这个属性找到这个文档引入的xsd文件的位置,随后去下载下来看。

我们直接就可以这样看到这个xsd文件

我把每个标签都收起来

<xs:element name="project" type="Model">...</xs:element>
<xs:complexType name="Model">...</xs:complexType>
<xs:complexType name="License">...</xs:complexType>
<xs:complexType name="CiManagement">...</xs:complexType>
<xs:complexType name="Notifier">...</xs:complexType>
<xs:complexType name="Scm">...</xs:complexType>
<xs:complexType name="IssueManagement">...</xs:complexType>
<xs:complexType name="DependencyManagement">...</xs:complexType>
<xs:complexType name="Dependency">...</xs:complexType>
<xs:complexType name="Exclusion">...</xs:complexType>
<xs:complexType name="Parent">...</xs:complexType>
<xs:complexType name="Developer">...</xs:complexType>
<xs:complexType name="MailingList">...</xs:complexType>
<xs:complexType name="Contributor">...</xs:complexType>
<xs:complexType name="Organization">...</xs:complexType>
<xs:complexType name="DistributionManagement">...</xs:complexType>
<xs:complexType name="DeploymentRepository">...</xs:complexType>
<xs:complexType name="RepositoryPolicy">...</xs:complexType>
<xs:complexType name="Relocation">...</xs:complexType>
<xs:complexType name="Site">...</xs:complexType>
<xs:complexType name="Reporting">...</xs:complexType>
<xs:complexType name="ReportPlugin">...</xs:complexType>
<xs:complexType name="ReportSet">...</xs:complexType>
<xs:complexType name="Profile">...</xs:complexType>
<xs:complexType name="Activation">...</xs:complexType>
<xs:complexType name="ActivationProperty">...</xs:complexType>
<xs:complexType name="ActivationFile">...</xs:complexType>
<xs:complexType name="ActivationOS">...</xs:complexType>
<xs:complexType name="Repository">...</xs:complexType>
<xs:complexType name="BuildBase">...</xs:complexType>
<xs:complexType name="Plugin">...</xs:complexType>
<xs:complexType name="PluginExecution">...</xs:complexType>
<xs:complexType name="Resource">...</xs:complexType>
<xs:complexType name="PluginManagement">...</xs:complexType>
<xs:complexType name="Prerequisites">...</xs:complexType>
<xs:complexType name="Build">...</xs:complexType>
<xs:complexType name="Extension">...</xs:complexType>

这每个name我们都很熟悉吧
pom.xml文件中我们很常用的标签,所有的标签都在这里定义了
当然了,具体如何定义的大家还是看看菜鸟教程,很详细很具体,这里只不过解释一下这是个什么东西。
XSD菜鸟教程

帮小白解决问题---帮你快速明白XSD是什么?用在什么地方?为什么要XSD?没有XSD可以吗?有影响吗?相关推荐

  1. MySQL数据库页损坏怎么办,innodb_force_recovery参数帮你解决问题

    MySQL数据库页损坏怎么办,innodb_force_recovery参数帮你解决问题 有些时候,你的MySQL数据库是单机,没有主从和高可用,如果宕机,或者其它异常情况,导致你的ibd文件损坏,这 ...

  2. 能锦上添花不能雪中送炭,公关救不了货车帮和作业帮

    2019独角兽企业重金招聘Python工程师标准>>> 有一位叫"成都油画"的读者留言说我天天只关心BAT,科技唆麻就这么点内容了吗?我心想你这问题问的不错,但现 ...

  3. python魔力手册-小白入门宝典:Python快速入门魔力手册 PDF 超清版

    给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于小白入门.python入门.Python手册方面的内容,本书是由魔力手册出版,格式为PDF,资源大小11.8 MB,魔力手册编写,目前豆 ...

  4. 如何查看建筑设计图纸呢?CAD小白如何实现CAD快速看图?

    如何查看建筑设计图纸呢?CAD小白如何实现CAD快速看图?对于刚刚开始接触CAD的小伙伴来说,无疑也是一个不小的挑战,那么我们究竟要怎么做才能掌握CAD快速看图的技巧呢?接下来和小伙伴们分享几种简单的 ...

  5. android表情输入键盘,GitHub - UKfire/Emotion: 帮你的Android应用快速集成表情键盘

    ##Emotion 帮你快速集成Android表情键盘,让你的应用不止文字,让表情跳动起来 ##It looks Cool ##Usage Download ZIP,然后解压,将emoji包添加到自己 ...

  6. 存储系统又慢又杂太难用?我们推荐这几本书帮你解决问题

    我们常用的存储系统种类非常多,有单机的也有分布式的,有的是数据库,有的是文件系统,还有介于二者之间的.无论是哪种存储系统(比如,MySQL.Redis.Elasticsearch,等等),它们都具有如 ...

  7. 苹果电子邮件怎么注册_忘记了Apple ID账号密码怎么办?超全攻略,帮你解决问题...

    第一种:若只是忘记了Apple ID账号的话,可以通过几种方法来查看 ①第一种就是通过"账号与密码"还原方法 当然,使用这个方法,就要你存储过账号密码了. ②iOS10.2以上版本 ...

  8. html中去除浮漂有什么作用,浮漂有动作,但总是锚鱼该怎么办?只需4招,保证帮你解决问题...

    钓鱼的时候总会出现各种各样的问题,最常见的莫过于"空竿"和"锚鱼"了.有时候甚至会出现浮漂动作明明不像是小鱼咬钩,但提竿还是经常空,经常锚鱼导致惊窝.问题出在哪 ...

  9. 有没有翻译视频声音的软件?实用教程帮你解决问题

    有没有翻译视频声音的软件?在日常的工作和学习中,我们看到一段很好的视频资料,但是却是外语的.我们很难听懂其中的内容,这个时候我们就需要对视频的内容进行翻译了.可能很多小伙伴们并不知道应该如何操作,下面 ...

最新文章

  1. 在苏州当老师大概博士毕业,工作稳定后就准备要孩子了
  2. 04-插入操作更新操作删除操作
  3. manjaro 安装tensorflow 【CPU版本】 环境
  4. 从中师到博士,我用了22年...
  5. WebMvc中MultipartFile文件上传
  6. 孤读Paper——《ATSS:Adaptive Training Sample Selection》
  7. B - Vicious Keyboard
  8. python如何测试rabbit_Python如何检测到我的RabbitMQ密码失败?
  9. 乌班图服务器系统升级,快速从Ubuntu 20.10升级到Ubuntu 21.04的方法
  10. S50VB100-ASEMI日本新电元平替整流桥S50VB100
  11. ARP协议格式和实例分析
  12. gmx_MMPBSA.py的安装及使用--只翻译部分内容,具体可参考官方文档(https://valdes-tresanco-ms.github.io/gmx_MMPBSA/dev/)
  13. 网站如何添加访客统计代码
  14. VMware打开虚拟机,会立即导致宿主机重启
  15. SHT20/SHT21温湿度值换算和CRC计算方法
  16. HDR电影效果LR预设(含lr预设导入教程)
  17. 错误释放结构体中数组的指针导致的AddressSanitizer: attempting free on address which was not malloc()问题
  18. padding在css中是什么意思,html里padding是什么意思
  19. 2023大厂招聘岗位数预测!明年哪些公司可以去?
  20. 2021-09-15meituan-008.小团无路可逃

热门文章

  1. Python 使用Word模板填充数据
  2. CF817D Imbalanced Array(单调栈+区间交集的处理)
  3. 小型永磁直驱风力发电机MPPT控制器开发
  4. DEVC++实现火柴人跑酷游戏
  5. 企业数据安全的「取胜之匙」:区块链隐私保护计算
  6. RBF网络的逼近实例详解
  7. 惨痛的春秋航班的经历(春秋的评论,好坏,看完便知)
  8. python怎么玩_怎么用Python玩GTA5?跟着教程玩!
  9. 4.ClassCastException
  10. 用matlab卷积神经网络遇到的问题——gpu和cpu的结果不一样,最后的预测结果也有问题