| 网站首页 | 科技前沿 | it产品项目 | 软件项目 | 硬件项目 | 发明专利 | 商业城 | 资源中心 | 博客 | 论坛 |  子站: it客栈 多奥网
会员中心
会员注册
繁體中文
推荐:索引 linux arm 手机 嵌入式 os wince dsp 音乐 游戏
 站内搜索:
项目资讯 资源中心
您现在的位置: 爱问科技网 >> 软件项目 >> WinCE >> 文章正文
WinCE中基于XML的数据同步       
WinCE中基于XML的数据同步
作者:佚名 文章来源:不详 更新时间:2006-12-6 23:29:31

要:在不同的操作系统中,系统与系统之间的数据交换是最为重要的环节,在此,由W3C制定出来的XML正是针对不同系统之间的数据交换而设计,基于WinCE嵌入式系统,完全支持W3C的XML的最新规范,因此,XML作为WinCE嵌入式系统数据同步的媒介是比较理想的选择。本文主要介绍在.NET开发平台下,WinCE中基于XML的数据同步的方式和方法。

关键词:XML;XSD;.NET;C#;WinCE;存储卡;无线网;GPRS;PDA;SQL CE;.NET FrameWork

1. 引言

在此,我们利用WinCE 3.0的Pocket PC 2002和Windows XP之间的数据同步来阐述本文,为了实现数据同步,我们在Pocket PC 2002中加载了SQL CE作为Pocket PC的数据库,在XP中加载了SQL Server 2000作为普通台式计算机的数据库,同时采用了Visual Studio .NET 2003作为研究的开发平台,Pocket PC与普通PC计算机之间的数据同步采用XML方式进行,XML数据文件传输方式采用存储卡、红外、无线网、GPRS等任意一种方式进行。

XML是为在 Web 上传送而进行优化了的 SGML 的子集。它是由万维网联合会 (W3C) 定义的。该标准化确保了结构化数据的统一性和相对于应用或供应商的独立性。XML 是一种提供数据描述格式的标记语言。该语言使跨越多个平台进行更准确的内容声明和获得更有意义的搜索结果变得更加容易。此外,XML实现了表示与数据的分离,通过应用不同的样式表和应用程序,使您能够根据需要显示和处理数据。XSD是XML 架构定义语言,可为 XML 文档定义结构和数据类型。XML 架构是由顶级 schema元素组成的。

2.设计要点

设计要点是通过XML方式进行不同系统之间多元数据类型、多元数据表的双向数据交换。PC与PDA之间的数据传输可以使用存储卡形式,也可以使用无线网形式,无线网包含无线局域网(802.11)、GPRS、CDMA、红外线(IRQ)等多种模式。在此,各种无线网或各种存储卡或许只能称为是一种媒介,它们存在的目的只是为了传输XML交换文件到不同的系统。数据交换的模型图如图1所示

2.1.XML交换文件设计

在此我们使用XML文件作为传输数据的交换文件,因此XML交换文件的设计是最为重要的一个步骤,通俗来说,一个XML交换文件包含两个部分,一个是XML架构,也就是XSD,另外一个是XML的数据部分。在.NET的智能设备(smart device)开发中必须使用.Net FrameWork的精简版,之所以称之为精简版,只是因为它是普通的.Net FrameWork的子集,因此它并不支持所有的普通模式下的功能,针对XML来说,它必须把XML的数据和XML的架构(XSD)分开,或许是微软为了考虑传输的文件大小的问题吧,因为在众多的应用中,架构一般不会改变,而且都是已知的架构,只传输XML数据总是比还要传输XML架构来的小。下面我们分步来讲解这两个部分。

2.1.1.XML架构(XSD)设计

在此我们所涉及到XSD,则主要是针对这个XML文件的架构制定遵循的版本和所涉及到的数据的类型。

在此,我们举例要描述数据表“T_Message”。

同时它包含两个字段:

MessageID                  int

MessageTitle     varchar(128)

按照XSD的规范,我们就可以得到如下的架构。

<?xml version="1.0" standalone="yes"?>

<xs:schema id="NewDataSet" xmlns=""

xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

  <xs:element name="NewDataSet" msdata:IsDataSet="true"

msdata:Locale="zh-CN">

    <xs:complexType>

      <xs:choice maxOccurs="unbounded">

        <xs:element name="AT_ShippingProperty">

          <xs:complexType>

            <xs:sequence>

                <xs:element name="MessageID"

type="xs:int" minOccurs="0" />

                <xs:element name="MessageTitle"

type="xs:string" minOccurs="0" />

            </xs:sequence>

          </xs:complexType>

        </xs:element>

      </xs:choice>

    </xs:complexType>

  </xs:element>

</xs:schema>

从以上可以看出,XSD描述了这个XSD的版本是1.0,属于w3c制定的架构等等信息,同时还描述了MessageIDMessageTitle两个字段,为了看得更明白,我们采用了加粗表示。

2.1.2.XML数据

在此我们所涉及到XML数据内容部分,则主要是针对这个XML文件所遵循的版本和数据的字段内容。

在此,我们举例要描述数据表“T_Message”。

同时它包含两个字段:

MessageID                  int

MessageTitle     varchar(128)

假设这个数据表中存有两条记录,如下表所示:

MessageID

MessageTitle

1

数据库连接

2

数据库操作

按照XML的数据规范,我们就可以得到如下的XML数据。

<?xml version="1.0" standalone="yes"?>

<NewDataSet>

  <AT_Public_Message>

    <MessageID>1</MessageID>

    <MessageTitle>数据库连接</MessageTitle>

  </AT_Public_Message>

  <AT_Public_Message>

    <MessageID>2</MessageID>

    <MessageTitle>数据库操作</MessageTitle>

  </AT_Public_Message>

</NewDataSet>

2.2.嵌入式系统

嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。

当前主流的嵌入式系统的操作系统(OS)包括WinCE、Palm等等,其中以Palm的历史最为长久,但是以WinCE的普及推广速度最快,操作最为灵活,应用最为广泛,因此当前时期,大多数的用户选择WinCE作为当前嵌入式系统的操作系统。

2.2.1.WinCE操作系统

WinCE操作系统是嵌入式操作系统中的一种,为微软所研制开发,包含WinCE、WinCE.NET、Windows XP Embedded等一系列的Mobile Windows家族。正迅速地为人们所接受。

2.2.2.Compact .Net FrameWork

随着.NET开发平台2003版的推出,微软包容了嵌入式系统的开发,使得嵌入式系统的开发更为简便更为容易。

2.3.XML文件传输

由于XML是一个文本类型的文件,因此具备跨平台的能力,可以为UNIX、LINUX等非Windows平台所接受,由于是文本类型的文件,因此传输方式可以多种多样。比如使用存储器进行传输,存储器包括存储卡、磁盘、磁带等等存储载体;也可以通过网络下载复制的功能,比如通过有线或无线局域网,或者GPRS、Moden等等网络载体;还可以通过红外端口的发送接收文件的方式进行传输。

3.实现方法

由于是WinCE,因此可以使用Visual Studio .Net 2003版进行编程,利用Visual Studio .NET 2003版中带的Compact .Net FrameWork,使所编制的程序可以运行在WinCE的嵌入式系统中。

针对微软的.NET计划,相信不久的将来,Compact .Net FrameWork也可以运行到Palm等其它嵌入式系统中。

3.1.PC端XML数据导出

假设我们已经有了数据库连接SQLconn,strSQL是待执行的SQL语句,则我们的PC端服务程序导出可以写成如下方式。

//初始化SqlDataAdap

[1] [2] 下一页

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    相关文章
    sql2k中新增加的Functio…
    关于在 win2000 下安装 …
    sql2k增加的Function的s…
    获取Windows / System /…
    print+Photoshop超简易上…
    ASP中使用Form和QuerySt…
    献给linux下的perl黑客们…
    Java中finalize()的另类…
    Merlin 的魔力:不确定的…
    Resin虚拟主机设置篇之I…
    更多内容
    专题栏目
    更多内容
    最新推荐 更多内容
    | 设为首页 | 加入收藏 | 关于我们 | 版权申明 | 友情链接 | 谷歌 雅虎 百度 | 管理登录 | 

    爱问科技网
    爱问科技网

    21aw@21aw.com
    粤icp备06099319