《计算机是怎么跑起来的》第十章 XML(可扩展标记语言)
资料来源
(1) 《计算机是怎么跑起来的》
注1:XML是Extensible Markup Language(可扩展标记语言)的缩写;
1.XML是标记语言
(1) 通常把通过添加标签为数据赋予意义的行为称为"标记";为这种给数据赋予意义的行为定义规则的语言就是"标记语言";
注1:HTML是用于编写网页的标记语言; HTML决定了可用于编写网页的标签; Web浏览器会对HTML的标签进行解析,把由它们标记的信息渲染成在视觉上可以阅读的网页;
2.XML是可扩展的语言
(1) XML文件的扩展名一般是.xml;
(2) XML本身不会限定标签的种类,允许使用者随意创建标签,即在"<"和">"中的单词可以是任意的; 这就是可扩展的含义;
注1:HTML是固定的标记语言,只能使用由HTML定义出的若干种标签;
3.XML是元语言
(1) XML不限定标签的使用方式,使用什么样的标签都行;XML仅仅限定了进行标记时标签的书写格式;
(2) 通过定义要使用的标签种类,就可以创建出一门新的标记语言; 这种用于创造语言的语言就称作"元语言";但是,需要注意的是,创造出的新语言仍然属于XML格式的标记语言,还是需要遵循一定的规定;
XML中的主要约束
1.XML文档开头要写有XML声明,表明使用的XML版本和字符编码;
2.信息要用形如"<标签名>"的开始标签和形如"</标签名>"的结束标签括起来;
3.标签名不能以数字开头,中间也不能含有空格;
4.标签名区分大小写;
5.标签中可以嵌套标签以表示层级结构,但不能交叉嵌套;
6.在XML声明之后,必须有且只有一个"根元素",该标签包含了所有其他标签;
7.在开始标签中,可以以属性名=“属性值”的形式,加入任意的属性;
8.如果要在内容中使用"<",">","&",""","'"这5个特殊符号,有两种方式:
(1)把它们写成"<",">","&",""","&apos"的形式;
(2)用"<![CDATA["和"]]>"把内容括起来,可以在里面直接使用这5个特殊符号;
9.注释的写法是用"<!--"和"-->"把注释的内容括起来;
4.XML文件示例
1 <?xml version="1.0" encoding="UTF-8"?>
2 <pet>
3 <cat>妙妙</cat>
4 <dog>旺旺</dog>
5 </pet>
注1:示例中使用了三种标签:<pet>,<cat>,<dog>;
5.XML可以为信息赋予意义
注1:HTML中规定的各种标签只能用来指定信息的呈现样式,而不能表示信息的含义;HTML主要用于信息的可视化;
注2:HTML的标签比较有限;
6.XML是通用的数据交换格式
注1:CSV(Comma Separated Value,逗号分隔值)也是一种通用数据交换格式;
注2:与XML一样,CSV也是仅由字符构成的纯文本文件;但在CSV中,只记录了信息本身,并没有为各个信息赋予意义;
//CSV文件示例
1234,"手提包",19800
5678,"手表",24800
//xml文件示例
<?xml version="1.0" encoding="UTF-8"?>
<shop>
<product>
<productId>1234</productId>
<productName>手提包</productName>
<price>19800</price>
</product>
</shop>
7.可以为XML标签设定命名空间
(1) 场景:标签的名字相同,但是标记语言的创造者们为它们赋予了不同的含义;为了防止同形异义带来的混乱,引入命名空间来修饰限定标签的名字;
(2)为标签设定命名空间示例(其中,xmlns为xml namespace的缩写)
<cat xmlns="http://www.grapecity.com/yazawa">小玉</cat>
8.严格定义XML的文档结构
(1) 完整的XML文档包括XML声明、XML实例和DTD信息;其中,XML声明是写在XML文档开头的、形如<?xml version="1.0" encoding="Shift_JIS"?>的部分; XML实例是文档中通过标签被标记的部分,其实就是XML文档的主要内容与信息; 而DTD的作用是定义XML实例的结构; 虽然可以省略DTD,但是通过DTD可以严格地检查XML实例的内容是否有效;
注1:比如DTD中定义一个标签中需要包含哪些标签;
注2:XML Schema也可以用于定义XML实例的结构;
《计算机是怎么跑起来的》第十章 XML(可扩展标记语言)的更多相关文章
- 计算机专业学了快一年, 只会一点C语言,你好意思说自己是IT专业的?
目录 一.C/C++入门阶段 学习视频推荐:C++入门基础[B站 小甲鱼] 二.C/C++开发进阶 学习视频推荐:C++进阶[慕课网 免费课] 三.C++开发高级 视频教程:程序设计[中国大学MOOC ...
- 云计算平台简介(App Engine)
云计算平台简介(App Engine) 1 简介 App Engine: 应用程序引擎,是托管网络应用程序的云计算平台. 1.1 什么是云 云计算通常简称为“云”,是一种通过 Inter ...
- Python介绍以及安装
Python介绍以及安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 借用我的导师的一句话:当你看到这篇文章的时候,那么恭喜你,你已经是踏入了开发的大门!欢迎加入:高级运维工程师 ...
- asp.net一些面试题(转)
基础知识 什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP: 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可 ...
- html 与 xml 的区别与联系
[引言] 前一阵子刚刚学习了html(HyperText Markup Language),最近又接触了xml(Extensible Markup Language),它们之间有什么联系和区别呢?现在 ...
- .NET面试题集锦②(Part 二)
一.前言部分 文中的问题及答案多收集整理自网络,不保证100%准确,还望斟酌采纳. 1.实现产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复. ]; ArrayList my ...
- HTTP Content-type 对照表
Application Type 文件扩展名 Content-Type(Mime-Type) 描述 . application/x- .* application/octet-stream 二进制 ...
- ASP.NET常见面试题及答案(130题)
1.C#中 property 与 attribute(抽像类)的区别,他们各有什么用处,这种机制的好处在哪里?答:property和attribute汉语都称之为属性.不过property是指类向外提 ...
- .NET面试题目
简单介绍下ADO.NET和ADO主要有什么改进? 答:ADO以Recordset存储,而ADO.NET则以DataSet表示,ADO.NET提供了数据集和数据适配器,有利于实现分布式处理,降低了对数据 ...
- 经典.net面试题目
1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. protected : 保 ...
随机推荐
- Error in v-on handler: “TypeError: Cannot read properties of undefined (reading ‘resetFields‘)“
在做vue element 项目中,做了一个新增 打开弹框的功能,想每次点击新增的时候表单项重置.1.使用了this.$refs[formName].resetFields();2.但是报错了,原因是 ...
- LeetCode算法训练-回溯总结
欢迎关注个人公众号:爱喝可可牛奶 LeetCode算法训练-回溯总结 适用问题 组合问题:N个数里面按一定规则找出k个数的集合 排列问题:N个数按一定规则全排列,有几种排列方式 切割问题:一个字符串按 ...
- unity 单元测试
unity 单元测试 Created: February 23, 2023 11:11 PM Tags: C语言, stm32, 单元测试 概述 为了方便在stm32上进行单元测试,需要在项目中导入u ...
- [C#]问号?和双问号??
[C#]问号?和双问号?? 如何使用 问号?表示该变量可以为空 int?; 等价于:int? = null; 双问号??表示如果为双问号左边的变量为null,则取右边的值,否则取左边变量的值 c=a? ...
- No.2.3
PC端网页和移动端网页的有什么不同? PC屏幕大,网页固定版心 手机屏幕小,网页宽度多数为100% 如何在电脑里面写代码边调试移动端网页效果? 谷歌模拟器 了解屏幕尺寸概念 屏幕尺寸:指的是屏幕对角线 ...
- 第十一周作业-N67044-张铭扬
1. redis主从复制原理? 1 从节点1.2 2 127.0.0.1:6379> replicaof 10.0.0.157 6379 3 OK 4 127.0.0.1:6379> co ...
- .NET core api返回烦人的null
默认的时候 把这个为null的去掉 只需要加入这一行代码 即可搞定 builder.Services.AddMvc().AddJsonOptions(o => { o.JsonSeriali ...
- TypeError: 'int' object is not subscriptable 报错
Python中报错TypeError: 'int' object is not subscriptable 原因:整形数据中加了下标索引 例如 #python utf-8 a = 10 b = a[0 ...
- html添加公共文件
html添加公共文件 记录添加公共头尾文件的方法 thymeleaf模板引擎 common.html index.html
- DataGridView添加新一行数据可添加到最后一行或第一行
整体代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data; ...