XML跨平台,你懂的
XML跨平台,你懂的
【引子】
90后小妹,问我,“都说XML跨平台,偶真的,不理解。XML语言的这大优势,倒是深深记在脑海里了。”
当然,偶立马应声答到,“后小妹,XML跨平台,逻辑推理,是严谨可信的。
1. 到底有哪些平台?
跨平台概念是软件开发中一个重要的概念,即不依赖于操作系统,也不依赖硬件环境。
操作系统有哪些,如:Window、Unix、Linux、Mac等。
2. 跨平台包括哪些方面?
1. 字符;
2. 文件;
3. 通信协议;
4. 程序;
Java语言编写的程序,应该属于:程序层面的跨平台。
XML应该属于文件、通信协议方面的,跨平台。
3. 理解字符跨平台,是理解XML跨平台的第一步;
字符编码标准有ASCII、GB2312、GBK、Big5、Unicode、UTF8等。
具体说明:
“汉”字的UTF8编码是E6B189。也就是说,只要告诉计算机系统,这个字是UTF8编码,
如果该字符编码是E6B189,那么我就解析为“汉”字的“汉”。
反之,如果告诉计算机该字是“汉”字的“汉”,则将该字符编码为E6B189,进行存储。
也就是说,只要计算机系统,只要遵循字符编码规范,是容易理解和实现,字符层面的跨平台。
所以说,字符编码标准,这是计算机发展,最基础层面的标准。
在不同的操作系统,不同的硬件平台,只要基于相同的编码标准,字符是可以跨平台。
4. XML是属于文件、通信协议方面的跨平台。
一、文件层面的跨平台:
首先,先看看XML长得啥模样?
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
接着,把握文件层面实现跨平台的逻辑推理要点:
- 文件、文档的跨平台,必然通过字符、文字的来实现;
- 在当今多语言的计算机环境下,必然涉及到编码转化的问题,例子中xml文档中的encoding属性,就解决了编码识别与转化的问题;
- 文本,偶的理解,就是文字、字符的意思。
文本就是相对图像、音频、视频等而言。
文本可以包括文字信息,以及文字表现信息,也就是文字装饰信息,如:字体、字号、下划线、斜体、图形、符号或特殊字符及特殊打印格式等。
纯文本,就是没有任何文字表现信息,没有任何文字装饰信息,没有任何字体、字号、下划线、斜体、图形、符号或特殊字符及特殊打印格式等信息。
说白了,就是一个光文字信息,俗称“裸字”信息,也就是纯字符。
【结论】
既然是“裸字”信息,纯字符,再加上当前的字符,使用的何种编码标准,当然可以
跨平台。
二、通信协议层面的跨平台:
XML通信协议,基于HTTP协议上的扩展。
因为HTTP协议,是跨平台的,所以,基于XML通信协议,是跨平台的。
如基于XML的SOAP、WSDL和UDDI通信协议,也就是常说Web Service服务,可以轻松实现跨平台服务。
XML跨平台,你懂的的更多相关文章
- Unity本地数据存储---Sqlite和JSON
2014-05-04更新 SqliteDatabase.cs这个文件的初始方法有问题,具体是如果指定URL已经存在了DB文件,就不会重新覆盖DB文件. 这导致我们修改之后的DB文件无法产生效果. 本人 ...
- kbmmw 中XML 操作入门(跨平台,而且可以与JSON,YAML,BSON 直接互相转换)
delphi 很早以前就自带了xml 的操作,最新版里面有三种XML 解释器,一种是MSXML,看名字就知道 这个是微软自带的,这个据delphi 官方称是速度是最快的,但是只能在windows 上使 ...
- DotNetCore跨平台~xUnit生成xml报告
在CI/CD流行至极的今天,你的项目没有自动化测试绝对是不可以接受的,在进行自动化部署和持续集成时,我们的dotnet core项目也是可以实现自动化的,之前说过gitlab,jenkins对持续集成 ...
- 跨平台图表控件TeeChart使用教程:导入XML数据
TeeChart的最新版中包含了一个自动加载XML数据的新组件.这个组件的名字叫做TTeeXMLSource,用户可以在TeeXML.pas unit中找到这个组件. 加载XML图表所需的最小属性是& ...
- 跨平台图表控件TeeChart使用教程:将图表数据导出为XML格式
在开发者使用TeeChart进行开发的过程中,不管是在设计时或者运行时都可以使用的图表导出对话框将图表数据轻易地导出为XML格式: TeeChart最新版那下载地址 上图为TeeChart导出对话框的 ...
- TinyWeb v1.0 正式完成第一个Release版本(功能基于 libuv 跨平台库)
使用方法很简单,很容易融入现有项目,使现有项目拥有Web网站功能和WebSocket,以及Socket直连! 并且包含了一个跨平台(windows/linux)工具集合; 嗯,也挺棒的^,^ 在项目中 ...
- 开源一个跨平台运行的服务插件 - TaskCore.MainForm
本次将要很大家分享的是一个跨平台运行的服务插件 - TaskCore.MainForm,此框架是使用.netcore来写的,现在netcore已经支持很多系统平台运行了,所以将以前的Task.Main ...
- C#跨平台手机应用开发工具Xamarin尝试 与Eclipse简单对比
Xamarin 支持使用C#开发基于Android.IOS.WindowsPhone应用开发,最大特点C#+跨平台,详细说明问度娘. 安装 研究 想体验研究的点击查看页面 Xamarin For Vi ...
- Topshelf 学习 跨平台
Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主. 官网:http://topshelf-project.com Git ...
随机推荐
- ServiceStack 简单服务搭建
1:定义数据实体 因为ServiceStack是基于请求参数来定义请求路由的,所以关键的是请求参数一定要定义好,同时可以在请求参数上自定义路由名和请求方式,作为对外接口名 上代码: namespace ...
- 2. struct A 和 typedef struct A
2. struct A 和 typedef struct A 2.1 struct A struct A{}定义一个名为struct A的结构体. 下例定义了struct A同时,声明了两个变量(注意 ...
- Docker学习系列(二)Docker初体验
一.系统要求 Docker的安装,需要在CentOS 7.0+版本,内核至少3.10,64-bit uname --r [randy@randysun ~]$ uname --r -.el7.x86_ ...
- Clojure新手入门
官方网站 clojure.org 环境安装 Java(JDK) Leiningen 编辑工具 Eclipse插件 -- Counterclockwise IntelliJ插件 -- Cursive E ...
- JavaC命令不能被执行尴尬问题解决
安装和配置环境变量都按着流程在,但在最后的检验时,发现Java Java -version 都能运行,唯独Javac 报"不能识别命令"错误信息,下面列出我遇到一个尴尬问题 在 ...
- 虚拟机访问互联网的方法 -- 以RedHat系为例
在虚拟机的三种网络模式中(Host-Only.桥接.NAT),能够实现虚拟机访问互联网的只有桥接与NAT模式,而Host-only主能实现虚拟机与主机两者间的通信.下面以RedHat系虚拟机系统为例, ...
- Bootstrap3 表单-水平排列的表单
通过为表单添加 .form-horizontal 类,并联合使用 Bootstrap 预置的栅格类,可以将 label 标签和控件组水平并排布局.这样做将改变 .form-group 的行为,使其表现 ...
- mysql 常见语句
事务 默认是开启了autocommit,可以通过show variables like 'autocommit';查看. 如果临时需要取消autocommit,可以通过START TRANSACTIO ...
- dimens.xml详解
本文联合两篇博文和自身理解写下 其中一篇:http://blog.csdn.net/hnzcdy/article/details/50628993 另一篇:暂不知原作者 Android中官方建议的屏幕 ...
- Redis之(四)事务
5.1开始事务 MULTI 命令的执行标记着事务的开始: 当客户端处于非事务状态下时, 所有发送给服务器端的命令都会立即被服务器执行. Redis 的事务不可嵌套, 当客户端已经处于事务状态, 而客户 ...