XML究竟是什么_xml是什么意思-程序员宅基地

技术标签: xml  《计算机是怎样跑起来的》读书笔记  

XML究竟是什么

XML是Extensible Markup Language的缩写,译为可扩展标记语言。

1.XML是标记语言

通过添加标签为数据赋予意义的行为称为“标记”。为“标记”定义规则的语言就是“标记语言”。

例如用于编写网页的HTML(Hypertext Markup Language,超文本标记语言)就是一种标记语言。下图是腾讯视频网页版的首页:
在这里插入图片描述
像这种网页就是一个HTML文件。在网页空白处右键点击查看网页源代码就能看到,如下图(只是一部分)。其部署在web服务器上,Web浏览器会对HTML的标签进行解析,把由它们标记的信息渲染成在视觉上可以阅读的网页。
在这里插入图片描述

可以看到里面有很多用“<”和“>”括起来的单词,通常把它们称作“标签”。html是用于表示这是HTML文件的标签,head表示网页的头部,title表示网页的标题,body表示网页的主体。除此之外还有很多标签,例如使文字加粗显示的b、在网页中插入图片的img,等等。

2.XML是可扩展语言
在这里插入图片描述
这是一个XML文件,可以看到有很多标签,而且XML允许XML的使用者随心所欲地创建标签。也就是说,在“<”和“>”中的单词可以是任意的。这就是所谓的“可扩展”。

所以XML可以使用标签为数据赋予意义,这样计算机就可以轻松从中提取需要的数据。比如10000这个数据,可以起个名字<月收入>,如果要从XML文件中提取这个数据,只需要用这个名字就行。

而在HTML中,只能使用由HTML定义出的那若干种标签,因此HTML是固定的标记语言。

3.XML是元语言

通常把用于创造语言的语言称作“元语言”。XML可以通过定义要使用的标签种类,创造出一门新的标记语言。

例如,我们可以使用dog和cat等标签,创造一种属于自己的标记语言——宠物语言。但这种语言也要遵循一定的规范,不然就不是符合XML格式的语言。下图为XML中的主要约束:
在这里插入图片描述
现在的Web浏览器都集成了XML解析器,可以用这个功能来检查XML文件的书写格式。

4.XML命名空间

为了防止同形异义带来的混乱(如下图),引进XML命名空间。

在这里插入图片描述
在XML文档中,通过把“xmlns=“命名空间的名字””作为标签的一个属性记述,就可以为标签设定命名空间。xmlns即XML NameSpace(命名空间)的缩写。通常用全世界唯一的标识符作为命名空间的名称,这里使用公司的URL,如下图:
在这里插入图片描述
5.SOAP

SOAP(Simple Object Access Protocol,简单对象访问协议)可用于分布式计算。所谓分布式计算,就是把程序分散部署在用网络连接起来的多台计算机上,使这些计算机相互协作,充分发挥计算机整体的计算能力。所以说,SOAP就是使运行在A公司计算机中的A程序,可以调用运行在B公司计算机中的B程序。

无论是调用程序时所需的参数信息,还是程序执行后的返回结果,都可以用通用的数据格式XML表示,如图:
在这里插入图片描述
另一方面,SOAP收发数据时所使用的传输协议并不固定,凡是能够收发XML数据的协议均可使用。一般情况下使用的是HTTP或SMTP协议。可以说SOAP的诞生使得人们可以更加轻松地构建分布式计算环境了。

只有在像互联网那样的环境中,运行在不同机器中的不同应用程序相互联结,XML才会大有作为。只有一台独立的计算机,或者只在一家公司内部的话,使用XML格式存储数据反而体现不出优势,仅仅是文件的尺寸变大从而浪费存储空间罢了。

6.说明

本文为《计算机是怎样跑起来的》读书笔记,如有错误,请兄弟们指正,大家一起进步。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_50260670/article/details/118553042

智能推荐

开箱即用的微服务框架 Go-zero(进阶篇)_gozero 验证参数-程序员宅基地

文章浏览阅读7.1k次,点赞7次,收藏28次。之前我们简单介绍过 Go-zero 详见《Go-zero:开箱即用的微服务框架》。这次我们从动手实现一个 Blog 项目的用户模块出发,详细讲述 Go-zero 的使用。特别说明本文涉及的所有资料都已上传 Github 仓库 “kougazhang/go-zero-demo”, 感兴趣的同学可以自行下载。Go-zero 实战项目:blog本文以 blog 的网站后台为例,着重介绍一下如何使用 Go-zero 开发 blog 的用户模块。用户模块是后台管理系统常见的模块,它的功能大家也非常熟悉。管理用_gozero 验证参数

文件的打开_ctx文档怎么打开 site:blog.csdn.net-程序员宅基地

文章浏览阅读337次。系统调用open打开文件,函数声明如下:#include#include#includeint open(coust char *pathname,int flags);int open(const char *pathname,int flags,made_t mode);pathname 文件名称mode 文件权限调用成功时,返回值为所打开文件的文件描述符,反_ctx文档怎么打开 site:blog.csdn.net

关于SetCapture() 和 ReleaseCapture()的用法_c# releasecapture-程序员宅基地

文章浏览阅读3.2k次。http://blog.csdn.net/lanyzh0909/article/details/5543399查MSND,对SetCapture()函数的说明为:“该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向_c# releasecapture

NLTK学习(一)_maternal affection on the side of the former-程序员宅基地

文章浏览阅读442次。Python简单入门 交互式开发环境(IDLE)Windows下在开始菜单应用程序那里可以找到,而Unix在shell下输入idle即可运行。我选择的是Sublime Text的代码编辑器,下载安装插件SublimeREPL,下载完之后,在【Tool】【SublimeREPL】【Python】【Python】启动交互式开发环境>>> 1+5*2-38>>> 1/30>>> 1.0/30._maternal affection on the side of the former

WEBSHELL-程序员宅基地

文章浏览阅读320次。<?php/*****************************************************************************===================== 请误用于非法用途,造成一切后果与本人无关。====================发布此版本是为了纪念安全天使曾经的辉煌。感谢你们与我一同走过:Sniper\Super...

程序员简历的10不要与7要-程序员宅基地

文章浏览阅读100次。1. 程序员简历10不要(1) 不要使用从任何招聘网站下载的尤其是智联招聘、51job 这类该被时代淘汰的站点的简历模板、不要 Word 版维护一份 Word 版(发送时请用 PDF),每年更新一次,不跳槽,也能梳理下自己。当然我的建议是跳不跳不重要,一两年看次市场行情、也顺便了解业内公司在做啥。(2) 不要用“精通”二字,“精通”真的只能逗逗那些不靠谱公司。你说你精通多线..._程序员简历中什么不能写

随便推点

[转载]在RHEL系统上使用“subscription-manager”注册和激活“subscription”_[root@localhost spdk]# sudo subscription-manager r-程序员宅基地

文章浏览阅读1.3w次。https://nanxiao.me/use-subscription-manager-register-on-rhel/在RHEL系统中注册和使用subscription是两个过程:NOTE: With Red Hat Subscription-Manager, registration and utilization of a subscription is actually a t..._[root@localhost spdk]# sudo subscription-manager register registering to: su

go 与java netty 之间的通信实现_golang可以连netty-程序员宅基地

文章浏览阅读2k次。前言: 笔记上一篇介绍了,go语言如何使用protobuf及生成go的protobuf文件,具体内容请见上一篇:go 与 protobuf 安装和使用1.protobuf文件定义及注意事项// [开始声明]syntax = "proto3"; //定义protobuf的包名称空间package message;// [结束声明]// [开始 java 选项配置]option java_package = "xxxx.core.message";opt..._golang可以连netty

neutron中的安全组和防火墙_安全组的防护对象是?-程序员宅基地

文章浏览阅读3k次。文章来自作者维护的社区微信公众号【虚拟化云计算】)(目前有两个微信群《kvm虚拟化》和《openstack》,扫描二维码点击“云-交流”,进群交流提问)一。防火墙与安全组区别防火墙一般放在网关上,用来隔离子网之间的访问。因此,防火墙即服务也是在网络节点上(具体说来是在路由器命名空间中)来实现。防火墙可以在安全组之前隔离外部过来的恶意流量,但是对于同个子网内部不同虚拟网卡间的通..._安全组的防护对象是?

CodeForces 589B Layer Cake(枚举)_b. layer cake codeforce-程序员宅基地

文章浏览阅读431次。B. Layer Caketime limit per test6 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputDasha decided to bake a big and tasty layer c_b. layer cake codeforce

算法笔记 PAT B1023组个最小数_pat b 1023-程序员宅基地

文章浏览阅读161次。就不放原题,直接给自己的思路和代码啦**思路:我其实能想到最简便的方法就是,创建一个char型的数组,然后对数组进行排序,从小到大,然后输出第一个不为0的数,然后再依次输出好吧,由于自己没读题的缘故,发现问题在于输入这部分,那就创建一个数组,数组的位置就是对应的值,数组里的内容就是对应值的数量 **#include<stdio.h>#include<string.h>..._pat b 1023

[王道考研计算机机试指南--专题训练]Chapter6搜索_王道考研系列·计算机考研:机试指南-程序员宅基地

文章浏览阅读233次。知识清单基础预备知识:BFS,DFSBFS(广度优先搜索):一般依托与队列来实现,常见的包括分支限界法(分支限界中一般采用优先搜索,即采用优先队列来进行不同层间结点的扩张)。DFS(深度优先搜索算法):一般依托于递归调用来实现,常见的方法有回溯法,回溯法中包括子集树(8皇后)和排列树(旅行商问题)两类问题,一般DFS更加的常用。1.BFS(广度优先搜索) 关键字:状态:对问题中的状..._王道考研系列·计算机考研:机试指南

推荐文章

热门文章

相关标签