欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

帮小白解决问题---了解XSD是个什么东西

程序员文章站 2022-06-28 18:03:54
什么是XSD?前言一、你是不是和我一样?二、什么是DTD?那么没有DTD行不行?三、所以XSD是什么?前言当我第一次看到xsd,我同样以联蒙蔽,但它其实无处不在,通过百度,我能看到的最多的就是,这个东西它类似dtd,那么dtd又是什么鬼东西,我怎么知道呢?气得吐血,所以本文带你更快地了解什么是xsd一、你是不是和我一样?曾经我也一脸蒙蔽,百度二、什么是DTD?DTD document type definition 文档类型定义举个例子大家多少都知道html吧那么dtd文件就是可以规定...


前言

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

一、你是不是和我一样?

曾经我也一脸蒙蔽,百度
帮小白解决问题---了解XSD是个什么东西

二、什么是DTD?

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

本文地址:https://blog.csdn.net/qq_39150049/article/details/111936359