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 ...
随机推荐
- Create database 创建数据库
首先在ORACLE用户下进入.bash_profile文件 [oracle@linux02 ~]$ vi .bash_profile export ORACLE_SID=hldbexport ORAC ...
- Jenkins执行批处理文件、powershell失败
今天搭建Jenkins持续集成环境,编译环境是.net core.整理了一些发布的命令配置在Jenkins,问题来了,使用powershell插件运行dotnet restore.dotnet bui ...
- c++银行家算法
#include <iostream> #include<string> #define False 0 #define True 1 using namespace std; ...
- Unity CommandBuffer的一些学习整理
1.前言 近期在整理CommandBuffer这块资料,之前的了解一直较为混乱. 算不上新东西了,但个人觉得有些时候要比加一个摄像机再转RT廉价一些,至少省了深度排序这些操作. 本文使用两个例子讲解C ...
- Spring Boot消息队列应用实践
消息队列是大型复杂系统解耦利器.本文根据应用广泛的消息队列RabbitMQ,介绍Spring Boot应用程序中队列中间件的开发和应用. 一.RabbitMQ基础 1.RabbitMQ简介 Rabbi ...
- Django 缓存模块 page_cache 源码阅读
Django cache中比较常用的有 cache_page 这么个 decorators, 下面就根据请求流程,结合源码来说说它是怎么工作的? 版本是django1.8,不同版本可能函数等会变化,逻 ...
- 安卓高级3 Android应用Design Support Library完全使用实例
原作者:http://www.open-open.com/lib/view/open1433385856119.html 1 背景 上周一年一度的Google IO全球开发者大会刚刚结束,Google ...
- 有没有最好的学习Angularjs2的视频入门体验?
Which are the best video tutorials for learning AngularJS 2? 有没有最好的学习Angularjs2的视频入门体验? 翻译来源:https:/ ...
- 20160223.CCPP体系详解(0033天)
程序片段(01):MyArray.h+MyArray.c+main.c 内容概要:数组库 ///MyArray.h #pragma once #define DT int//类型通用 typedef ...
- Dynamics CRM 本地插件注册器连CRMAn unsecured or incorrectly secured fault was received from the other party
今天遇到个问题,在本地打开插件注册器连接到远程CRM服务器时报如下问题 但我在CRM服务器上连接注册器是可以打开的,所以不存在账号权限这类的问题了(当然我用的是超管的账号也不可能存在),最后查询得知是 ...