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>

接着,把握文件层面实现跨平台的逻辑推理要点:

  1. 文件、文档的跨平台,必然通过字符、文字的来实现
  2. 在当今多语言的计算机环境下,必然涉及到编码转化的问题,例子中xml文档中的encoding属性,就解决了编码识别与转化的问题
  3. 文本,偶的理解,就是文字、字符的意思。

文本就是相对图像、音频、视频等而言

文本可以包括文字信息,以及文字表现信息,也就是文字装饰信息,如:字体、字号、下划线、斜体、图形、符号或特殊字符及特殊打印格式等。

纯文本,就是没有任何文字表现信息,没有任何文字装饰信息,没有任何字体、字号、下划线、斜体、图形、符号或特殊字符及特殊打印格式等信息。

说白了,就是一个光文字信息,俗称“裸字”信息,也就是纯字符。

【结论】

既然是“裸字”信息,纯字符,再加上当前的字符,使用的何种编码标准,当然可以

跨平台。

二、通信协议层面的跨平台:

XML通信协议,基于HTTP协议上的扩展。

因为HTTP协议,是跨平台的,所以,基于XML通信协议,是跨平台的。

 

如基于XML的SOAP、WSDL和UDDI通信协议,也就是常说Web Service服务,可以轻松实现跨平台服务。


XML跨平台,你懂的的更多相关文章

  1. Unity本地数据存储---Sqlite和JSON

    2014-05-04更新 SqliteDatabase.cs这个文件的初始方法有问题,具体是如果指定URL已经存在了DB文件,就不会重新覆盖DB文件. 这导致我们修改之后的DB文件无法产生效果. 本人 ...

  2. kbmmw 中XML 操作入门(跨平台,而且可以与JSON,YAML,BSON 直接互相转换)

    delphi 很早以前就自带了xml 的操作,最新版里面有三种XML 解释器,一种是MSXML,看名字就知道 这个是微软自带的,这个据delphi 官方称是速度是最快的,但是只能在windows 上使 ...

  3. DotNetCore跨平台~xUnit生成xml报告

    在CI/CD流行至极的今天,你的项目没有自动化测试绝对是不可以接受的,在进行自动化部署和持续集成时,我们的dotnet core项目也是可以实现自动化的,之前说过gitlab,jenkins对持续集成 ...

  4. 跨平台图表控件TeeChart使用教程:导入XML数据

    TeeChart的最新版中包含了一个自动加载XML数据的新组件.这个组件的名字叫做TTeeXMLSource,用户可以在TeeXML.pas unit中找到这个组件. 加载XML图表所需的最小属性是& ...

  5. 跨平台图表控件TeeChart使用教程:将图表数据导出为XML格式

    在开发者使用TeeChart进行开发的过程中,不管是在设计时或者运行时都可以使用的图表导出对话框将图表数据轻易地导出为XML格式: TeeChart最新版那下载地址 上图为TeeChart导出对话框的 ...

  6. TinyWeb v1.0 正式完成第一个Release版本(功能基于 libuv 跨平台库)

    使用方法很简单,很容易融入现有项目,使现有项目拥有Web网站功能和WebSocket,以及Socket直连! 并且包含了一个跨平台(windows/linux)工具集合; 嗯,也挺棒的^,^ 在项目中 ...

  7. 开源一个跨平台运行的服务插件 - TaskCore.MainForm

    本次将要很大家分享的是一个跨平台运行的服务插件 - TaskCore.MainForm,此框架是使用.netcore来写的,现在netcore已经支持很多系统平台运行了,所以将以前的Task.Main ...

  8. C#跨平台手机应用开发工具Xamarin尝试 与Eclipse简单对比

    Xamarin 支持使用C#开发基于Android.IOS.WindowsPhone应用开发,最大特点C#+跨平台,详细说明问度娘. 安装 研究 想体验研究的点击查看页面 Xamarin For Vi ...

  9. Topshelf 学习 跨平台

    Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主. 官网:http://topshelf-project.com Git ...

随机推荐

  1. Mysql B-Tree, B+Tree, B*树介绍

    [摘要] 最近在看Mysql的存储引擎中索引的优化,神马是索引,支持啥索引.全是浮云,目前Mysql的MyISAM和InnoDB都支持B-Tree索引,InnoDB还支持B+Tree索引,Memory ...

  2. python学习之路基础篇(第七篇)

    一.模块 configparser configparser用于处理特定格式的文件,其本质是利用open来对文件进行操作 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [ ...

  3. 【已解决】IIS搭建 asp.net core 项目后 其他电脑访问不到资源文件

    IIS搭建asp.net core 项目后,访问不到里面的资源文件(图片等),解决方法如下: 1.检查asp.net core发布文件中的资源文件是不是都放到了wwwroot名称的目录中. 2.检查a ...

  4. PHP 文件

    PHP 文件处理 fopen() 函数用于在 PHP 中打开文件. 打开文件 fopen() 函数用于在 PHP 中打开文件. 此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来 ...

  5. Jmeter(一)_环境部署

    简介: Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试CS/BS的软件.它可以用来测试静态和动态资源的性能,可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分 ...

  6. ReactNative 4Android源码分析二: 《JNI智能指针之实现篇》

    文/Tamic http://blog.csdn.net/sk719887916/article/details/53462268 回顾 上一篇介绍了<ReactNative4Android源码 ...

  7. Apache ActiveMQ实战(1)-基本安装配置与消息类型

    ActiveMQ简介 ActiveMQ是一种开源的,实现了JMS1.1规范的,面向消息(MOM)的中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信.ActiveMQ使用Apache ...

  8. Java经典设计模式之十一种行为型模式(附实例和详解)

    Java经典设计模式共有21中,分为三大类:创建型模式(5种).结构型模式(7种)和行为型模式(11种). 本文主要讲行为型模式,创建型模式和结构型模式可以看博主的另外两篇文章:Java经典设计模式之 ...

  9. java中八种基本数据类型以及它们的封装类,String类型的一些理解

    在我们面试或者考试过程中经常会考到八种基本数据类型以及它们的封装类,那么有哪八种基本数据类型呢?它们的封装类又是什么呢? 首先,八种基本数据类型分别是:int.short.float.double.l ...

  10. grab window

    #include <Windows.h> #include <iostream> using namespace std; #if 0 int CaptureAnImage(/ ...