XML

简介

1998年2月,W3C正式批准了可扩展标记语言的标准定义,可扩展标记语言可以对文档和数据进行结构化处理,从而能够在部门、客户和供应商之间进行交换,实现动态内容生成,企业集成和应用开发。可扩展标记语言可以使我们能够更准确地搜索内容,更方便地传输内容,更好地描述事物。

什么是可拓展标记语言?

  • 可拓展标记语言是一种很像超文本标记语言的标记语言。
  • 它的设计宗旨是传输数据,而不是显示数据。
  • 它的标签没有被预定义。您需要自行定义标签。
  • 它被设计为具有自我描述性。
  • 它是W3C的推荐标准。

可拓展标记语言和超文本标记语言之间的差异

  • 它不是超文本标记语言的替代。
  • 它是对超文本标记语言的补充。
  • 它和超文本标记语言为不同的目的而设计:

    ——它被设计用来传输和存储数据,其焦点是数据的内容。

    ——超文本标记语言被设计用来显示数据,其焦点是数据的外观。
  • 超文本标记语言旨在显示信息;而XML旨在传输信息,它是独立于软件和硬件的信息传输工具。

可拓展标记语言是W3C的推荐标准

  • XML于1998年2月10日成为W3C的推荐标准。

可拓展标记语言无处不在

  • XML是各种应用程序之间进行数据传输的最常用的工具。

基本结构

话不多说,直接撸代码:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 人力资源管理系统 -->
<hr xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hr.xsd">
<employee no="007">
<name>或无言</name>
<age>18</age>
<salary>20000</salary>
<department>
<dname>开发部</dname>
<address>XX大厦-B103</address>
</department>
</employee>
<employee no="008">
<name>张三</name>
<age>31</age>
<salary>30000</salary>
<department>
<dname>工程部</dname>
<address>XX大厦-B104</address>
</department>
</employee>
</hr>
  • version="1.0" encoding="UTF-8":说明XML的版本号和编码方式。
  • xmlns:xsi:说明这份文档是使用schema约束。
  • xsi:noNamespaceSchemaLocation:指明schema文件的名字。
  • hr:这份人力资源管理系统文档的根标签。
  • hr、employee、name、age、department等标签都是自己定义的,组成文档的结构。
  • 标签里的是属性,如no="007",在这份文档中的语义为员工的编号。

XML Schema

定义

它的作用是定义一份XML文档的合法组建群,就像文档类型定义(外语缩写:DTD)的作用一样,一份XML Schema定义了:

  • 可以出现在文档里的元素;
  • 可以出现在文档里的属性;
  • 那些元素是子元素;
  • 子元素的顺序和数量;
  • 一个元素是否能包含文本或为空;
  • 元素和属性数据类型;
  • 元素和属性的默认值和固定值;

基本结构

以上文的XML文档为例,它的Schema可以是如下结构:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="hr">
<complexType>
<sequence>
<element name="employee" minOccurs="1" maxOccurs="9999">
<complexType>
<sequence>
<element name="name" type="string"></element>
<element name="age">
<simpleType>
<restriction base="integer">
<minInclusive value="18"></minInclusive>
<maxInclusive value="60"></maxInclusive>
</restriction>
</simpleType>
</element>
<element name="salary" type="integer"></element>
<element name="department">
<complexType>
<sequence>
<element name="dname" type="string"></element>
<element name="address" type="string"></element>
</sequence>
</complexType>
</element>
</sequence>
<attribute name="no" type="string" use="required"></attribute>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>

Schema看起来和XML看起来很像,并且它也是由XML所编写的,描述 XML 文档的结构,Schema中的标签和属性并非自己定义。

  • element name="hr":声明一个名称为hr的根节点。
  • complexType:复杂节点,包含子节点时必须使用这个标签。
  • sequence:序列,其下的所有子节点严格按照顺序书写。
  • minOccurs="1" maxOccurs="9999":当前节点最少出现1次,最多出现9999次。
  • type="integer":只允许使用整型数字。
  • simpleType:简单类型的约束。
  • restriction base="integer":限定只允许使用整型数字。
  • minInclusive value="18":最小值为18。
  • attribute name="no" type="string" use="required":定义属性,这里约束employee元素必须有no这个属性。

总结

年轻人,听我一句劝,一定要好好学英语,不然跟我一样定义个变量都要查单词!(当然我也正在努力。。。)

参考文献:

https://baike.baidu.com/item/可扩展标记语言?fromtitle=xml&fromid=86251

https://baike.baidu.com/item/XML Schema

【XML】XML基本结构以及XML-Schema约束的更多相关文章

  1. xml——dom&sax解析、DTD&schema约束

    dom解析实例: 优点:增删改查一些元素等东西方便 缺点:内存消耗太大,如果文档太大,可能会导致内存溢出 sax解析: 优点:内存压力小 缺点:增删改比较复杂 当我们运行的java程序需要的内存比较大 ...

  2. schema约束和引入

    schema的概述 schema约束同为xml文件的约束模式语言之一, 最大的作用是为了验证xml文件的规范性的. 是为了解决dtd约束不够的问题, 相应的他的配置就变得比较复杂 schema本身就是 ...

  3. xml语法、DTD约束xml、Schema约束xml、DOM解析xml

    今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...

  4. XML约束——Schema约束

    XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性 XML Schema VS DTD: •XML Schema符合XML语法结构. • ...

  5. Spring学习----- Spring配置文件xml文档的schema约束

    1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...

  6. 关于Spring配置文件xml文档的schema约束

    最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...

  7. Spring中xml文档的schema约束

    最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例.   <?xml version= ...

  8. 【JAVA与XML、dtd约束、Schema约束】

    一.XML. (1)XML:Extensible Markup Language (2)XML是一种标记语言. (3)XML的设计宗旨是传输数据,而不是显示数据. (4)XML标签没有被预定义,即使用 ...

  9. XML的Schema约束

    XSD文档至少要包含:schema根元素和XML模式命名空间的定义.元素定义.需要注意的是XSD中必须定义一个且只能定义一个schema根元素,根元素中包括模式的约束,XML模式命名空间的定义,其他命 ...

  10. Dom4J配合XPath解析schema约束的xml配置文件问题

    如果一个xml文件没有引入约束,或者引入的是DTD约束时,那么使用dom4j和xpath是可以正常解析的,不引入约束的情况本文不再展示. 引入DTD约束的情况 mybook.dtd: <?xml ...

随机推荐

  1. llinux/重启/用户切换/注销

    一.指令 shutdown命令 shutdown -h now //立即关机 shutdown -h 2 //分钟后关机 shutdown -r now //立即重启 shutdown -r 1 // ...

  2. 父子间的通信,以及ref

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. HTML5播放视频,并使用ffmpeg对视频转编码

    网页加入视频可以用h5自带的video标签,这里用一个jQuery封装优化好的video视频组件videojs. videojs官方网站:https://docs.videojs.com/index. ...

  4. Python中机器学习-验证码识别-粗略总结

    #验证码识别# 解决办法:将验证码切割成单个字符训练 遇到问题:验证码字符大小不一或重叠 对上述问题的解决:通过CNN(卷积神经网络)直接就是端到端不分割的识别方式 处理验证码:将图片二值化 输入验证 ...

  5. Rewrite基本概述

    Rewrite基本概述 什么是rewrite Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程. rewrite使用场景 1.地址跳转,用户访问www. ...

  6. alluxio 安装记录及相关信息

    最近要尝试探究一下alluxio相关的知识,本博客进行对alluxio的安装过程进行备忘: 单例安装过程: https://docs.alluxio.io/os/user/stable/cn/cont ...

  7. pip 查看软件包 可用版本并安装; pip 查看 numpy 可用版本并安装

    最近需要安装 numpy 的旧版本,发现不知道如何查看可以安装旧版本,解决方法在此进行记录: 然后找到你对应的版本进行安装就可以了: 保持更新,更多精彩内容,请关注 cnblogs.com/xuyao ...

  8. 高通平台:USB充电【转】

    USB Battery Charging V1.2 Specification 定义了USB充电器的类型或者叫做充电源. 1. 支持的充电器类型 1.1 Standard Downstream Por ...

  9. macOS 10.15 开启 HiDPI

    普通的显示,接上 MacBook 发现原生的分辨率设置在 2K 显示器上字体很小,换成 1080P 分辨率显示效果又特别模糊.下面介绍MacBook强行开启 HiDPI. 什么是 HiDPI 它使用横 ...

  10. 04-Node.js学习笔记-相对路径VS绝对路径

    4.1相对路径VS绝对路径 大多数情况下使用绝对路径,因为相对路径有时候相对的是命令行工具的当前工作目录 在读取文件或者设置文件路径时都会选择绝对路径 4.2使用__dirname 获取当前文件所在的 ...