CN101478730A - 数据交换方法、系统及设备 - Google Patents

数据交换方法、系统及设备 Download PDF

Info

Publication number
CN101478730A
CN101478730A CNA2008101694705A CN200810169470A CN101478730A CN 101478730 A CN101478730 A CN 101478730A CN A2008101694705 A CNA2008101694705 A CN A2008101694705A CN 200810169470 A CN200810169470 A CN 200810169470A CN 101478730 A CN101478730 A CN 101478730A
Authority
CN
China
Prior art keywords
data
name
type
xml
cdata
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008101694705A
Other languages
English (en)
Other versions
CN101478730B (zh
Inventor
陈国乔
杨健
王雷
范姝男
董挺
张惠萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2008101694705A priority Critical patent/CN101478730B/zh
Publication of CN101478730A publication Critical patent/CN101478730A/zh
Application granted granted Critical
Publication of CN101478730B publication Critical patent/CN101478730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开数据交换的方法、系统和设备,涉及设备间的数据交换。本发明要解决的技术问题是使数据交换能够及时准确。本发明提供一种数据交换的方法,包括以下步骤:将需要交换的数据进行XML封装,生成XML文件;所述XML文件携带的数据信息包括头信息和数据条目的数量信息;将所述XML文件携带的数据信息交换给另一终端设备,同时本发明还提供了其他数据交换的方法,以及数据交换的系统及设备,达到了使数据交换能够及时准确的效果。

Description

数据交换方法、系统及设备
技术领域
本发明涉及数据交换,尤其涉及一种终端间的数据交换。
背景技术
Vcard:vCard是在Internet上广泛使用的联系人的一种格式。vCard的使用,使通过网络的个人和业务信息(例如电话号码和地址)交换自动化,vCard信息超越了简单文本,包括图片、公司图徽、Web地址等等。vCard称为电子商务卡片,主要用于记录通讯薄的联系人信息等,并且方便在不同的设备之间进行数据交换。
由于在终端之间可以传输的个人数据类型种类繁多,但整个传输的原理和特点都相似,在此主要利用vCard的传输过程和原理对现有技术进行说明。
现有技术一是一种利用vCard协议传输联系人信息的方法如图1所示包含如下步骤:
A、发送端手机将各个联系人信息分别编码为Vcard文件;其具体操作为将每个联系人信息都对应的编码为一个Vcard文件;
B、发送端手机将编码好的所有Vcard文件发送给接收端手机;
C、接收端手机收到所有Vcard文件后进行存储,并供用户手动操作分别导入各个Vcard文件。
上述技术方案能准确的将联系人信息发送给接收端手机,但其存在以下缺陷,由于每个联系人信息都对应的编码为一个Vcard文件,所以在接收端手机对Vcard文件解码时也需要对所有的Vcard文件分别解码,解码效率较低;且导入Vcard文件是用户手动操作导入的,所以导入时间过长。
现有技术二是另一种利用Vcard协议传输联系人信息的方法,如图2所示包含以下步骤:
A、发送端手机将所有联系人信息全部压缩编码为一个Vcard文件;
B、发送端手机将编码好的Vcard文件发送给接收端手机;
C、接收端手机收到所有Vcard文件后进行存储,并自动导入Vcard文件;
D、接收端手机自动导入Vcard文件后,删除接收到的Vcard文件。
上述方法虽说解决了解码效率低,导入时间过长这些技术问题,但是由于上述方法无法高效的获得联系人信息的总数量,又由于接收端手机自动导入Vcard文件后,删除接收到的Vcard文件,所以在接收端手机能存储的联系人信息数量M小于接收到的联系人信息数量N时,接收端手机仅能导入M个联系人信息,从而造成了未导入的联系人信息的丢失,既未导入的个人信息管理数据的丢失。
发明内容
本发明实施例要解决的技术问题是提供数据交换的方法、设备、系统,使数据交换能够及时准确。
本发明实施例提供一种数据交换方法,包括以下步骤:
接收XML封装的数据信息;
读取所述XML封装的数据信息中的头信息;
根据所述头信息进行数据交换。
本发明实施例还提供一种数据交换方法,包括以下步骤:
接收XML封装的数据信息;
读取所述XML封装的数据信息中的头信息;
根据所述头信息进行数据交换。
本发明实施例提供一种数据交换系统,包括:
第一数据交换设备,用于将数据传送给第一转换单元;
第二数据交换设备,用于接收第二转换单元传送的的数据;
第一转换单元,用于将第一数据交换设备传送的数据利用XML进行封装,所述读取XML封装的头信息;
第二转换单元,用于将XML转换成第二数据交换设备可接收的数据并传送给第二数据交换设备。
本发明实施例提供一种数据交换设备,包括:
数据生成单元,用于生成要交换的数据并传送给数据转换单元;
数据转换单元,用于将要交换的数据转换成XML文件并传送,所述读取XML文件携带头信息和数据条目的数量信息。
本发明实施例还提供一种数据交换设备,包括
数据转换单元,用于接收XML数据,读取XML封装的头信息和数据条目的数量信息,将XML数据转换成第二数据交换设备可接收的数据并传送给数据接收单元;
数据接收单元,用于接收数据转换单元传送的数据。
本发明实施例通过将数据信息进行XML封装,生成XML文件,并使XML文件携带头信息和数据条目的数量信息,从而使数据交换达到及时准确的效果。
附图说明
图1是现有技术一的方法流程图;
图2是现有技术二的方法流程图;
图3是本发明实施例1的一种数据交换方法的流程图;
图4是本发明实施例1的另一种数据交换方法的流程图;
图5是本发明实施例1的一种数据交换系统的示意图;
图6是本发明实施例1的一种数据交换设备的示意图。
图7是本发明实施例1的另一种数据交换设备的示意图
具体实施方式
实施例1
本发明实施例提供一种数据交换方法,如图3所示,所示包括以下步骤:
将需要交换的数据使用XML(Extensible Markup Language)进行封装;
所述XML封装的数据信息包括头信息;
将所述XML封装的数据信息传送给进行数据交换的另一单元。
将所述需要交换的数据可以封装在*.udx文件当中。UDX(“通用数据交换文件,universal data exchange file,*.udx”)是一个文件名的称呼,在这里,我们称之为数据交换文件。
所述头信息包括数据条目的数量信息。
所述头信息还至少包括以下一种:用户信息,客户端信息,设备信息,日期信息,语言信息。
所述XML封装的数据信息包括具体数据信息,该具体数据信息至少包括以下一种:地址簿,日程表,短消息,多媒体消息以及电子邮件消息的条目信息。
在所述XML文件携带的数据信息之上可以叠加序列号和条目信息,以使在整个数据交换过程当中可以有选择的对部分条目进行交换。
可以用一个或多个XML对电话簿、日程表、短消息、多媒体消息以及电子邮件消息的数据进行封装。当用一个XML对上述消息进行封装的时候,需要一个整体的头信息对所有所需要交换的信息进行描述。当多份XML文件进行封装的时候,一个XML封装一类型的数据,如一个XML封装电话簿,一个封装日程表的这种方式。在每个封装的XML当中,需要一个头信息对所述的携带的信息进行描述。这个头信息可以采用相同的格式,所不同的是具体携带的信息的类型不同。
本发明实施例还提供一种数据交换方法,如图4所示,包括以下步骤:
接收XML封装的数据信息;
读取所述XML封装的数据信息中的头信息;
根据所述头信息进行数据交换。
在所述读取所述XML封装的数据信息中的头信息后还包括根据所述头信息判断是否具备交换能力;如果是则进行数据交换,如果否则拒绝进行数据交换。
所述XML封装的数据信息封装在数据交换文件中。
所述头信息还包括数据条目的数据信息.
所述头信息至少包括以下一种:用户信息,客户端信息,设备信息,日期信息,语言信息。
所述XML封装的数据信息包括具体数据信息,该具体数据信息至少包括以下一种:地址簿,日程表,短消息,多媒体消息以及电子邮件消息的条目信息。
在所述XML封装的数据信息上叠加序列号和条目信息。
所述根据所述头信息判断是否具备交换能力具体是根据数据类型判断是否支持该数据类型的数据交换或根据该数据类型的条目信息判断是否有容量交换相应数据类型数据或根据该数据类型的数据的条目数量信息判断是否在交换过程中是否有数据丢失、数据重复的情况中的一种发生。判断交换的数据条目的数量与读取的XML文件头信息条目的数量是否一致,不一致时,则抛弃本次的交换过程,并提示用户有错误发生。检测到有仅仅因为本地传输当中发生的错误,而不是由于本地容量不足,或者没有能力进行数据交换的话,可以提示用户重新发起交换的过程,从而进行错误重传。
本发明实施例提供一种数据交换系统,如图5所示,包括:
第一数据交换设备,用于将数据传送给第一转换单元;
第二数据交换设备,用于接收第二转换单元传送的的数据;
第一转换单元,用于将第一数据交换设备传送的数据利用XML进行封装,所述读取XML封装的头信息;
第二转换单元,用于将XML转换成第二数据交换设备可接收的数据并传送给第二数据交换设备。
所述系统还可以包括:
检测单元,用于检测因为本地传输当中发生的错误;
第一提示单元,用于在所述检测单元检测到有因为本地传输当中发生的错误时提示用户重新发起交换的过程,从而进行错误重传。
所述系统还可以包括第一判断单元,用于根据所述头信息判断是否具备交换能力,所述第二转换单元在所述判断单元判断为具备交换能力时将XML文件转换成第二数据交换设备可接收的数据并传送给第二数据交换设备。
所述系统还可以包括:
第二判断单元,用于判断交换的数据条目的数量与读取的XML文件头信息条目的数量是否一致;
第二提示单元,用于所述第二判断单元判断单元判断交换的数据条目的数量与读取的XML文件头信息条目的数量不一致时抛弃本次的交换过程,并提示用户有错误发生。
本发明实施例提供一种数据交换设备,如图6所示,包括:
数据生成单元,用于生成要交换的数据并传送给数据转换单元;
数据转换单元,用于将要交换的数据转换成XML文件并传送,所述读取XML封装的头信息和数据条目的数量信息。
本发明实施例还提供一种数据交换设备,如图7所示,包括:
数据转换单元,用于接收XML数据,读取XML封装的头信息和数据条目的数量信息,将XML数据转换成第二数据交换设备可接收的数据并传送给数据接收单元;
数据接收单元,用于接收数据转换单元传送的数据。
所述设备还可以包括:
检测单元,用于检测因为本地传输当中发生的错误;
第一提示单元,用于在所述检测单元检测到有因为本地传输当中发生的错误时提示用户重新发起交换的过程,从而进行错误重传。
所述设备还可以包括第一判断单元,用于根据所述头信息判断是否具备交换能力,所述数据转换单元在所述第一判断单元判断为具备交换能力时将XML文件转换成数据接收单元可接收的数据并传送给数据接收单元。
所述设备还可以包括:
第二判断单元,用于判断交换的数据条目的数量与读取的XML文件头信息条目的数量是否一致;
第二提示单元,用于所述第二判断单元判断单元判断交换的数据条目的数量与读取的XML文件头信息条目的数量不一致时抛弃本次的交换过程,并提示用户有错误发生。
实施例2
本实施例主要是对整个数据交换过程当中所交换数据的描述信息如何生成进行说明,其目的在于通过这些描述信息,终端可以在数据交换之前检查是否能够实现交换的功能,同时在交换完成后,对是否发生错误进行检查,并可以根据整个描述信息请求对交换数据进行重传。
整个终端间的数据交换过程如2.2所述,并且在整个交换过程当中,数据交换文件采用XML的形式,所涉及的终端数据包括终端内的电话簿、日程表、短消息、多媒体消息和电子邮件等各种用户资料。
由于XML文件主要携带所需要交换的数据信息。为了实现本实施例的目的,我们在整个文件结构当中,将文件当中的数据分为两个部分,一部分是XML文件的头信息,一部分是所需要交换的数据信息。在XML文件的头信息当中,主要包括对数据的生成用户,数据生成的设备,数据生成的时间,数据生成的软件信息,数据当中的语言类型;此外,还携带各种不同类型数据的数量信息。这部分的信息在每次生成的XML文件当中必须存在。
另外一部分内容是所需要交换的数据信息,这些信息和具体的数据相关联的。主要包括电话簿、日程表、短消息、多媒体消息和电子邮件消息等数据。这些数据根据实际的情况作为XML文件的不同部分,同时在交换过程当中,作为XML文件一部分的这些数据,如果需要进行交换,那么会作为XML的一部分,如果不参与交换,将不出现在XML文件当中。整个数据交换过程当中得数据信息的具体逻辑结构参见下图:
上述头信息,也就是整个数据交换过程当中所交换数据的描述信息。为了清晰的描述他在整个文件当中所处的位置,我们用头信息来称呼它。当然,根据具体实现的需要,这个信息可以放置在整个文件的各个位置,而不是局限在文件的头部,因此,头信息的称呼也不是专有的。
终端进行数据交换过程当中所生成的XML文件的头信息,采用XML的方式进行描述,其目的在于对整个交换过程当中的XML文件进行总体描述,同时也对XML文件当中所涉及的交换数据的数据信息进行总体的描述。终端可以通过读取该部分信息对整个需要交换的数据信息有一个整体的了解。
这部分的信息主要包括如下的内容:用户信息,客户端信息,设备信息,日期信息,语言信息等;此外,还涉及具体的信息相关的信息,主要包括地址簿,日程表,短消息,多媒体消息以及电子邮件消息的条目信息。
其在交换的过程当中利用XML进行封装,需要遵守如下的DTD:
<?xml version="1.0"encoding="UTF-8"?>
<!ELEMENT DataExchangeInfo(RecordInfo,vCard,vCalendar,SMS,MMS,Email)>
<!ATTLIST DataExchangeInfo
   UserInfo CDATA #REQUIRED
   UserAgent CDATA #REQUIRED
   DeviceInfo CDATA #REQUIRED
   Date CDATA #REQUIRED
   Language CDATA #REQUIRED
>
<!ELEMENT RecordInfo EMPTY>
<!ATTLIST RecordInfo
   RecordOfvCard CDATA #REQUIRED
   RecordOfvCalendar CDATA #REQUIRED
   RecordOfSMS CDATA #REQUIRED
   RecordOfMMS CDATA #REQUIRED
   RecordOfEmail CDATA #REQUIRED
>
在上述的DTD当中
ELEMENT DataExchangeInfo标识整个数据交换文件的头信息;
UserInfo标识生成数据交换文件的用户信息;
UserAgent标识生成数据交换文件的客户端信息;
DeviceInfo标识生成数据交换文件的设备信息;
Date标识生成数据交换文件的日期信息;
Language标识生成数据交换文件的语言信息;
RecordInfo标识数据文件当中所包含的数据内容的头信息;
RecordOfvCard标识所交换的vCard数据的条数;
RecordOfvCalendar标识所交换的vCalendar数据的条数;
RecordOfSMS标识所交换的SMS数据的条数;
RecordOfMMS标识所交换的MMS数据的条数;
RecordOfEmail标识所交换的Email数据的条数。
终端可以根据上述的DTD的描述生成数据交换文件,以及对该文件进行解析。出于兼容性的考虑,终端可以支持Schema的方式进行XML文件的生成。其形式如下所示:
    <?xml version="1.0"encoding="UTF-8"?>
    <!DOCTYPE xs:schema SYSTEM"http://www.sample.com/udx.xsd">
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"attributeFormDefault="unqualified">
        <!--
          =================================================
          Header Information
          =================================================
        -->
        <xs:element name="DataExchangeInfo"type="DataExchangeInfoType"/>
        <xs:complexType name="DataExchangeInfoType">
              <xs:sequence>
                  <xs:element name="RecordInfo"type="RecordInfoType"/>
                  <xs:element name="vCard"type="vCardType"/>
                  <xs:element name="vCalendar"type="vCalendarType"/>
                  <xs:element name="SMS"type="SMSType"/>
                  <xs:element name="MMS"type="MMSType"/>
                  <xs:element name="Email"type="EmailType"/>
              </xs:sequence>
              <xs:attribute name="UserInfo"type="xs:string"use="required"/>
              <xs:attribute name="UserAgent"type="xs:string"use="required"/>
              <xs:attribute name="DeviceInfo"type="xs:string"use="required"/>
              <xs:attribute name="Date"type="xs:string"use="required"/>
              <xs:attribute name="Language"type="xs:string"use="required"/>
          </xs:complexType>
          <xs:complexType name="RecordInfoType">
              <xs:attribute name="RecordOfvCard"type="xs:string"use="required"/>
              <xs:attribute name="RecordOfvCalendar"type="xs:string"
use="required"/>
              <xs:attribute name="RecordOfSMS"type="xs:string"use="required"/>
              <xs:attribute name="RecordOfMMS"type="xs:string"use="required"/>
              <xs:attribute name="RecordOfEmail"type="xs:string"use="required"/>
          </xs:complexType>
根据2.2当中所介绍的整个数据交换方式的流程,终端需要生成用于数据交换的中间文件。在生成这个中间文件的过程当中,需要首先将用户、设备、软件、日期、语言等相关的信息填写到整个描述信息当中。此后,在将需要交换的数据封装在XML形式的同时,还需要将这些数据的条目信息填写到整个描述信息当中。
在交换的过程当中,目的终端首先读取交换过程当中的中间文件。为了更好的确保交换的成功,他读取整个文件的描述信息,也就是本例当中的数据文件的头信息,从而获取整个文件的生成者,设备、软件、日期以及语言等信息。之后再读取相关的数据条目的描述信息,比如说数据条目的数量,种类。如果说终端不支持交换数据条目的数量,或不支持数据条目的种类,那么可以拒绝进行本次数据交换,并且将拒绝本次交换的原因提示用户。这样就可以避免在没有交换能力的情况下盲目的进行数据交换,造成错误的发生。
终端的错误检测。当整个交换发生之后,比如在交换vCard的过程当中。交换后的新生成的vCard条目有101条,而实际上读取的文件头信息当中的条目仅仅存在100条,那么整个交换过程当中是有错误发生的,那么终端就应该抛弃本次的交换过程,并提示用户有错误发生。
终端的错误重传。如果终端检测到有错误发生,而且仅仅是因为本地传输当中发生的错误,比如上述交换vCard的过程当中的,交换后的新生成的vCard条目有101条,而实际上读取的文件头信息当中的条目仅仅存在100条的例子;而不是由于本地容量不足,或者没有能力进行数据交换的话。终端可以提示用户重新发起交换的过程,从而进行错误重传。
通过头信息的内容,可以让终端解决能力匹配,错误检测,错误重传的问题。
实施例3
本实施例主要是对整个数据交换过程当中所交换数据的对vCard数据进行XML封装的说明,通过在vCard的数据之上叠加整个vCard数据的序列号和条目信息,让用户在整个数据交换过程当中可以有选择的对部分条目进行交换。
终端所支持的电话簿数据格式可以参考vCard2.1的要求,其数据格式满足如下的要求和定义。
表1 电话簿条目和vCard字段的对应关系
Figure A200810169470D00141
Figure A200810169470D00151
Figure A200810169470D00161
终端在对电话簿进行数据交换的过程当中,支持将终端的电话簿数据按照XML的形式进行封装,所生成的XML文件用于对所需交换的电话簿数据进行交换。在电话簿数据进行XML的封装过程中,需要遵守如下的DTD:
<!ELEMENT vCard(vCardInfo*)>
<!ELEMENT vCardInfo(vCardField*)>
<!ATTLIST vCardInfo
   Sequence CDATA#REQUIRED
>
<!ELEMENT vCardField EMPTY>
<!ATTLIST vCardField
   ADR CDATA #REQUIRED
   ADRHOME CDATA #REQUIRED
   ADRWORK CDATA #REQUIRED
   BDAY CDATA #REQUIRED
   ELVOICEHOME CDATA #REQUIRED
   EMAIL CDATA #REQUIRED
   EMAILHOME CDATA #REQUIRED
   EMAILWORK CDATA #REQUIRED
   N CDATA #REQUIRED
   ORG CDATA #REQUIRED
   Sequence CDATA #REQUIRED
   TEL CDATA #REQUIRED
   TELCELL CDATA #REQUIRED
   TELCELLHOME CDATA #REQUIRED
   TELCELLWORK CDATA #REQUIRED
   TELFAX CDATA #REQUIRED
   TELFAXHOME CDATA #REQUIRED
   TELFAXWORK CDATA #REQUIRED
   TELHOME CDATA #REQUIRED
   TELVIDEO CDATA #REQUIRED
   TELVIDEOCELL CDATA #REQUIRED
   TELVIDEOHOME CDATA #REQUIRED
   TELVIDEOWORK CDATA #REQUIRED
   TELVOICE CDATA #REQUIRED
    TELVOICEHOME CDATA #REQUIRED
    TELVOICEWORK CDATA #REQUIRED
    TELWORK CDATA #REQUIRED
    TITLE CDATA #REQUIRED
    URL CDATA #REQUIRED
    URLHOME CDATA #REQUIRED
    URLWORK CDATA #REQUIRED
>
在上述的DTD当中,主要是对vCard数据如何在数据交换文件格式当中体现进行规定。所有的vCard数据都是XML中vCard元素的子元素,每个vCard元素当中可以包含0个或者多个的vCardInfo元素。每个vCardInfo元素当中包含一个vCard数据的序号以及一个以XML形式进行封装的vCard数据。
具体的vCard的数据字段的含义参考本规范的第一部分,本部分仅按照W3C的规则对第一部分数据格式所要求的vCard字段进行了XML形式的封装定义。
终端可以根据上述的DTD的描述生成数据交换文件,以及对该文件进行解析。出于兼容性的考虑,终端可以支持Schema的方式进行XML文件的生成。其形式如下所示:
   <!--
              ================================================
              vCard Data
              ==================================================
          -->
          <xs:element name="vCard"type="vCardType"/>
          <xs:complexType name="vCardType">
             <xs:sequence>
                 <xs:element name="vCardInfo"type="vCardInfoType"
minOccurs="O"maxOccurs="unbounded"/>
             </xs:sequence>
          </xs:complexType>
          <xs:complexType name="vCardInfoType">
              <xs:sequence>
                  <xs:element name="vCardField"type="vCardFieldType"
minOccurs="O"maxOccurs="unbounded"/>
              </xs:sequence>
              <xs:attribute name="Sequence"type="xs:unsignedInt"use="required"/>
          </xs:complexType>
          <xs:complexType name="vCardFieldType">
              <xs:attribute name="ADR"type="xs:string"use="required"/>
              <xs:attribute name="ADRHOME"type="xs:string"use="required"/>
              <xs:attribute name="ADRWORK"type="xs:string"use="required"/>
              <xs:attribute name="BDAY"type="xs:string"use="required"/>
              <xs:attribute name="ELVOICEHOME"type="xs:string"
use="required"/>
              <xs:attribute name="EMAIL"type="xs:string"use="required"/>
              <xs:attribute name="EMAILHOME"type="xs:string"use="required"/>
              <xs:attribute name="EMAILWORK"type="xs:string"use="required"/>
              <xs:attribute name="N"type="xs:string"use="required"/>
              <xs:attribute name="ORG"type="xs:string"use="required"/>
              <xs:attribute name="Sequence"type="xs:string"use="required"/>
              <xs:attribute name="TEL"type="xs:string"use="required"/>
              <xs:attribute name="TELCELL"type="xs:string"use="required"/>
              <xs:attribute name="TELCELLHOME"type="xs:string"
use="required"/>
              <xs:attribute name="TELCELLWORK"type="xs:string"
use="required"/>
              <xs:attribute name="TELFAX"type="xs:string"use="required"/>
              <xs:attribute name="TELFAXHOME"type="xs:string"
use="required"/>
              <xs:attribute name="TELFAXWORK"type="xs:string"
use="required"/>
              <xs:attribute name="TELHOME"type="xs:string"use="required"/>
              <xs:attribute name="TELVIDEO"type="xs:string"use="required"/>
              <xs:attribute name="TELVIDEOCELL"type="xs:string"
use="required"/>
              <xs:attribute name="TELVIDEOHOME"type="xs:string"
use="required"/>
              <xs:attribute name="TELVIDEOWORK"type="xs:string"
use="required"/>
              <xs:attribute name="TELVOICE"type="xs:string"use="required"/>
              <xs:attribute name="TELVOICEHOME"type="xs:string"
use="required"/>
              <xs:attribute name="TELVOICEWORK"type="xs:string"
use="required"/>
              <xs:attribute name="TELWORK"type="xs:string"use="required"/>
              <xs:attribute name="TITLE"type="xs:string"use="required"/>
              <xs:attribute name="URL"type="xs:string"use="required"/>
              <xs:attribute name="URLHOME"type="xs:string"use="required"/>
              <xs:attribute name="URLWORK"type="xs:string"use="required"/>
          </xs:complexType>
上述是终端在生成和转换相关数据内容是所需要遵守的DTD/Schema的格式。终端可以参考上述格式生成/解析XML文档。
在上述的DTD当中,存在如下的Sequence的字段。
Sequence CDATA #REQUIRED
这个字段必须出现在每一个vCard的条目当中。通过这个序号,终端在解析数据交换的中间文件的时候,可以选择性的对第x条数据进行交换,而不用一次对所有的数据进行交换,从而节约交换的时间,同时可以针对数据能力有限,存储空间有限的终端进行更有针对性地交换。
实施例4
本实施例主要是对整个数据交换过程当中所交换数据的对vCalendar数据进行XML封装的说明,通过在vCalendar的数据之上叠加整个vCalendar数据的序列号和条目信息,让用户在整个数据交换过程当中可以有选择的对部分条目进行交换。
终端所支持的日程表数据格式可以参考vCalendar1.0的要求,其数据格式满足如下的要求和定义。
表2 日程表条目和vCalendar字段的对应关系
 
日程表条目的内容 字段名
起始时间 Start Time
结束时间 Stop Time
描述 Description
循环类型 Recur Type
事件内容 Body
提醒方式 Notify Type
振铃方式 Ringer Type
持续时间 Duration
终端在对日程表进行数据交换的过程当中,应支持将终端的日程表数据按照XML的形式进行封装,所生成的XML文件用于对所需交换的日程表数据进行交换。在日程表数据进行XML的封装过程中,需要遵守如下的DTD:
<!ELEMENT vCalendar(vCalendarInfo*)>
<!ELEMENT vCalendarInfo(vCalendarField*)>
<!ATTLIST vCalendarInfo
   Sequence CDATA #REQUIRED
>
<!ELEMENT vCalendalField EMPTY>
<!ATTLIST vCalendarField
   STARTTIME CDATA #REQUIRED
   STOPTIME CDATA #REQUIRED
   DESCRIPTION CDATA #REQUIRED
   RECURTYPE CDATA #REQUIRED
   BODY CDATA #REQUIRED
   NOTIFYTYPE CDATA #REQUIRED
   RINGERTYPE CDATA #REQUIRED
   DURATION CDATA #REQUIRED
>
在上述的DTD当中,主要是对vCalendar数据如何在数据交换文件格式当中体现进行规定。所有的vCalendar数据都是XML中vCalendar元素的子元素,每个vCalendar元素当中可以包含0个或者多个的vCalendarInfo元素。每个vCalendarInfo元素当中包含一个vCalendar数据的序号以及一个以XML形式进行封装的vCalendar数据。
终端可以根据上述的DTD的描述生成数据交换文件,以及对该文件进行解析。出于兼容性的考虑,终端可以支持Schema的方式进行XML文件的生成。其形式如下所示:
   <!--
             ==================================================
             vCalendar Data
             ==================================================
         -->
         <xs:element name="vCalend ar"type="vCalendarType"/>
         <xs:complexType name="vCalendarType">
             <xs:sequence>
                 <xs:element name="vCalendarInfo"type="vCalendarInfoType"
minOccurs="O"maxOccurs="unbounded"/>
             </xs:sequence>
         </xs:complexType>
         <xs:complexType name="vCalendarInfoType">
             <xs:sequence>
                 <xs:element name="vCalendarField"type="vCalendarFieldType"
minOccurs="O"maxOccurs="unbounded"/>
             </xs:sequence>
             <xs:attribute name="Sequence"type="xs:unsignedInt"use="required"/>
         </xs:complexType>
         <xs:complexType name="vCalendarFieldType">
            <xs:attribute name="STARTTIME"type="xs:string"use="required"/>
    <xs:attribute name="STOPTIME"type="xs:string"use="required"/>
    <xs:attribute name="DESCRIPTION"type="xs:string"use="required"/>
    <xs:attribute name="RECURTYPE"type="xs:string"use="required"/>
    <xs:attribute name="BODY"type="xs:string"use="required"/>
    <xs:attribute name="NOTIFYTYPE"type="xs:string"use="required"/>
    <xs:attribute name="RINGERTYPE"type="xs:string"use="required"/>
    <xs:attribute name="DURATION"type="xs:string"use="required"/>
</xs:complexType>
上述是终端在生成和转换相关数据内容是所需要遵守的DTD/Schema的格式。终端可以参考上述格式生成/解析XML文档。
在上述的DTD当中,存在如下的Sequence的字段。
Sequence CDATA #REQUIRED
这个字段必须出现在每一个vCalendar的条目当中。通过这个序号,终端在解析数据交换的中间文件的时候,可以选择性的对第x条数据进行交换,而不用一次对所有的数据进行交换,从而节约交换的时间,同时可以针对数据能力有限,存储空间有限的终端进行更有针对性地交换。
实施例5
本实施例主要是对整个数据交换过程当中所交换数据的对SMS数据进行XML封装的说明,通过在SMS的数据之上叠加整个SMS数据的序列号和条目信息,让用户在整个数据交换过程当中可以有选择的对部分条目进行交换。
终端所支持的SMS数据格式可以参考SMS的相关要求,其数据格式满足如下的要求和定义。
表3 SMS条目和字段的对应关系
 
SMS条目的内容 字段名
源地址 Original_Address
目的地址 Destination_Address
消息数据 Data
时间信息 TimeStamp
类型字段 SMS_Type
终端在对短消息进行数据交换的过程当中,应支持将终端的短消息数据按照XML的形式进行封装,所生成的XML文件用于对所需交换的短消息数据进行交换。在短消息数据进行XML的封装过程中,需要遵守如下的DTD:
   <!ELEMENT SMS(SMSInfo*)>
   <!ELEMENT SMSInfo(SMSField*)>
    <!ATTLIST SMSInfo
       Sequence CDATA #REQUIRED
    >
    <!ELEMENT SMSField(MT_SMS*|MO_SMS*|Draft_SMS*|
Delivery_Report*)>
    <!ATTLIST SMSField
       Orignal_Address CDATA #REQUIRED
       Destination_Address CDATA #IMPLIED
       Data CDATA #REQUIRED
       TimeStamp CDATA #REQUIRED
    >
    <!ELEMENT MT_SMS(#PCDATA)>
    <!ELEMENT MO_SMS(#PCDATA)>
    <!ELEMENT Draft_SMS(#PCDATA)>
    <!ELEMENT Delivery_Report(#PCDATA)>
在上述的DTD当中,主要是对SMS数据如何在数据交换文件格式当中体现进行规定。所有的SMS数据都是XML中SMS元素的子元素,每个SMS元素当中可以包含0个或者多个的SMSInfo元素。每个SMSInfo元素当中包含一个SMS数据的序号以及一个以XML形式进行封装的SMS数据。
具体的SMS的数据字段的含义参考本规范的第一部分,本部分仅按照W3C的规则对第一部分数据格式所要求的SMS字段进行了XML形式的封装定义。
终端可以根据上述的DTD的描述生成数据交换文件,以及对该文件进行解析。出于兼容性的考虑,终端可以支持Schema的方式进行XML文件的生成。其形式如下所示:
<!--
            SMS Data
            ================================================
        -->
        <xs:element name="SMS"type="SMSType"/>
        <xs:complexType name="SMSType">
            <xs:sequence>
                <xs:element name="SMSInfo"type="SMSInfoType"
minOccurs="O"maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="SMSInfoType">
            <xs:sequence>
                <xs:element name="SMSField"type="SMSFieldType"
minOccurs="O"maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Sequence"type="xs:unsignedInt"use="required"/>
        </xs:complexType>
        <xs:complexType name="SMSFieldType">
            <xs:choice>
                 <xs:element name="MT_SMS"type="xs:boolean"default="true"
minOccurs="O"maxOccurs="unbounded"/>
                 <xs:element name="MO_SMS"type="xs:boolean"default="false"
minOccurs="O"maxOccurs="unbounded"/>
                 <xs:element name="Draft_SMS"type="xs:boolean"default="false"
minOccurs="O"maxOccurs="unbounded"/>
                 <xs:element name="Delivery_Report"type="xs:boolean"
default="false"minOccurs="O"maxOccurs="unbounded"/>
              </xs:choice>
              <xs:attribute name="Orignal_Address"type="xs:unsignedInt"
use="required"/>
              <xs:attribute name="Destination_Address"type="xs:unsignedInt"
use="optional"/>
              <xs:attribute name="Data"type="xs:unsignedInt"use="required"/>
              <xs:attribute name="TimeStamp"type="xs:string"use="required"/>
          </xs:complexType>
上述是终端在生成和转换相关数据内容是所需要遵守的DTD/Schema的格式。终端可以参考上述格式生成/解析XML文档。
在上述的DTD当中,存在如下的Sequence的字段。
Sequence CDATA #REQUIRED
这个字段必须出现在每一个SMS的条目当中。通过这个序号,终端在解析数据交换的中间文件的时候,可以选择性的对第x条数据进行交换,而不用一次对所有的数据进行交换,从而节约交换的时间,同时可以针对数据能力有限,存储空间有限的终端进行更有针对性地交换。
实施例6
本实施例主要是对整个数据交换过程当中所交换数据的对MMS数据进行XML封装的说明,通过在MMS的数据之上叠加整个MMS数据的序列号和条目信息,让用户在整个数据交换过程当中可以有选择的对部分条目进行交换。
终端所支持的MMS数据格式可以参考MMS的相关要求,其数据格式满足如下的要求和定义。
表4 MMS条目和字段的对应关系
 
MMS条目的内容 字段名
消息类型 Message_Type
事务ID Transaction_ID
MMS版本 MMS_Version
消息ID Message_ID
发送者地址 Sender_address
内容类型 Content_type
接收者地址 Recipient_address
消息等级 Message_class
时间日期 Date_and_time
优先级别 Priority
主题 Subject
消息状态 MM_State
 
内容 Content
字符集 Charset
内容传输编码 Content_Transfer_Encoding
内容位置 Content_Location
内容数据 Data
终端在对多媒体消息进行数据交换的过程当中,应支持将终端的多媒体消息数据按照XML的形式进行封装,所生成的XML文件用于对所需交换的多媒体消息数据进行交换。在多媒体消息数据进行XML的封装过程中,需要遵守如下的DTD:
<!ELEMENTMMS(MMSInfo*)>
<!ELEMENT MMSInfo(MMSField*)>
<!ATTLIST MMSInfo
   Sequence CDATA #REQUIRED
>
<!ELEMENT MMSField(MMSContent*,ContentInMMS*)>
<!ATTLIST MMSField
   Message_Type CDATA #REQUIRED
   MMS_Version CDATA #REQUIRED
   Message_ID CDATA #REQUIRED
   Sender_address CDATA #REQUIRED
   Recipient_address CDATA #REQUIRED
   Message_class CDATA #REQUIRED
   Date_and_time CDATA #REQUIRED
   Priority CDATA #REQUIRED
   Subject CDATA #REQUIRED
   MM_State CDATA #REQUIRED
>
<!ELEMENT MMSContent EMPTY>
<!ATTLIST MMSContent
   charset CDATA #REQUIRED
   Content-Transfer-Encoding CDATA #REQUIRED
    Content-Location CDATA #REQUIRED
    Data CDATA #REQUIRED
>
<!ELEMENT ContentInMMS EMPTY>
<!ATTLIST ContentInMMS
   ContentInfo CDATA #REQUIRED
   Type CDATA #REQUIRED
   Start CDATA #REQUIRED
>
在上述的DTD当中,主要是对MMS数据如何在数据交换文件格式当中体现进行规定。所有的MMS数据都是XML中MMS元素的子元素,每个MMS元素当中可以包含0个或者多个的MMSInfo元素。每个MMSInfo元素当中包含一个MMS数据的序号以及一个以XML形式进行封装的Email数据。
具体的MMS的数据字段的含义参考本规范的第一部分,本部分仅按照W3C的规则对第一部分数据格式所要求的MMS字段进行了XML形式的封装定义。
终端可以根据上述的DTD的描述生成数据交换文件,以及对该文件进行解析。出于兼容性的考虑,终端可以支持Schema的方式进行XML文件的生成。其形式如下所示:
   <!--
              ==================================================
              MMS Data
              ==================================================
          -->
          <xs:element name=″MMS″type=″MMSType″/>
          <xs:complexType name=″MMSType″>
             <xs:sequence>
                <xs:element name=″MMSInfo″type=″MMSInfoType″
minOccurs=″O″maxOccurs=″unbounded″/>
             </xs:sequence>
          </xs:complexType>
        <xs:complexType name=″MMSInfoType″>
            <xs:sequence>
                <xs:element name=″MMSField″type=″MMSFieldType″
minOccurs=″O″maxOccurs=″unbounded″/>
            </xs:sequence>
            <xs:attribute name=″Sequence″type=″xs:unsignedInt″
use=″required″/>
         </xs:complexType>
         <xs:complexType name=″MMSFieldType″>
            <xs:sequence>
                <xs:element name=″MMSContent″type=″MMSContentType″
minOccurs=″O″maxOccurs=″unbounded″/>
                <xs:el ement name=″ContentInMMS″type=″ContentInMMSType″
minOccurs=″O″maxOccurs=″unbounded″/>
             </xs:sequence>
             <xs:attribute name=″Message_Type″type=″xs:string″
use=″required″/>
             <xs:attribute name=″MMS_Version″type=″xs:string″
use=″required″/>
             <xs:attribute name=″Message_ID″type=″xs:string″
use=″required″/>
             <xs:attribute name=″Sender_address″type=″xs:string″
use=″required″/>
             <xs:attribute name=″Recipient_address″type=″xs:string″
use=″required″/>
             <xs:attribute name=″Message_class″type=″xs:string″
use=″required″/>
             <xs:attribute name=″Date_and_time″type=″xs:string″
use=″required″/>
             <xs:attribute name=″Priority″type=″xs:string″
use=″required″/>
             <xs:attribute name=″Subject″type=″xs:string″
use=″required″/>
             <xs:attribute name=″MM_State″type=″xs:string″
use=″required″/>
         </xs:complexType>
         <xs:complexType name=″MMSContentType″>
            <xs:attribute name=″charset″type=″xs:string″
use=″required″/>
            <xs:attribute name=″Content-Transfer-Encoding″
type=″xs:string″use=″required″/>
            <xs:attribute name=″Content-Location″type=″xs:string″
use=″required″/>
            <xs:attribute name=″Data″type=″xs:string″use=″required″/>
         </xs:complexType>
         <xs:complexType name=″ContentInMMSType″>
            <xs:attribute name=″ContentInfo″type=″xs:string″
use=″required″/>
            <xs:attribute name=″Type″type=″xs:string″use=″required″/>
            <xs:attribute name=″Start″type=″xs:string″use=″required″/>
         </xs:complexType>
上述是终端在生成和转换相关数据内容是所需要遵守的DTD/Schema的格式。终端可以参考上述格式生成/解析XML文档。
在上述的DTD当中,存在如下的Sequence的字段。
Sequence CDATA #REQUIRED
这个字段必须出现在每一个MMS的条目当中。通过这个序号,终端在解析数据交换的中间文件的时候,可以选择性的对第x条数据进行交换,而不用一次对所有的数据进行交换,从而节约交换的时间,同时可以针对数据能力有限,存储空间有限的终端进行更有针对性地交换。
实施例7
本实施例主要是对整个数据交换过程当中所交换数据的对Email数据进行XML封装的说明,通过在Email的数据之上叠加整个Email数据的序列号和条目信息,让用户在整个数据交换过程当中可以有选择的对部分条目进行交换。
终端所支持的Email数据格式可以参考Email的相关要求,其数据格式满足如下的要求和定义。
表5 E-mail数据条目和字段的对应关系
 
E-mail条目的内容 字段名
日期 Date
发送者 From
主题 Subject
接收者 To
回复地址 Reply_to
MIME版本 MIME_version
回复路径 Return_Path
传递信息 Delivered_To
接收信息 Received
抄送 CC
密送 BCC
消息ID Message_ID
内容传输编码 Content_Transfer_Encoding
内容描述 Content_Description
内容归属 Content_Disposition
内容ID Content_ID
内容类型 Content_type
内容等级 Content_class
字符集 Charset
内容数据 Data
附件名 Name
附件文件名 FileName
终端在对电子邮件进行数据交换的过程当中,应支持将终端的电子邮件数据按照XML的形式进行封装,所生成的XML文件用于对所需交换的电子邮件数据进行交换。在电子邮件数据进行XML的封装过程中,需要遵守如下的DTD:
<!ELEMENT Email(EmailInfo*)>
<!ELEMENT EmailInfo(EmailField*)>
<!ATTLIST EmailInfo
   Sequence CDATA #REQUIRED
>
<!ELEMENT EmailField(EmailContent*)>
<!ATTLIST EmailField
   Return-Path CDATA #REQUIRED
   Delivered-To CDATA #REQUIRED
   Received CDATA #REQUIRED
   Date CDATA #REQUIRED
   CC CDATA #REQUIRED
   BCC CDATA #REQUIRED
   Message-ID CDATA #REQUIRED
   From CDATA #REQUIRED
   Subject CDATA #REQUIRED
   To CDATA #REQUIRED
   Reply-to CDATA #REQUIRED
   MIME-version CDATA #REQUIRED
Content-Type CDATA #REQUIRED
>
<!ELEMENT EmailContent EMPTY>
<!ATTLIST EmailContent
   Content-Transfer-Encoding CDATA #REQUIRED
   Content-Description CDATA #REQUIRED
   Content-Disposition CDATA #REQUIRED
   Content-ID CDATA #REQUIRED
   Content-type CDATA #REQUIRED
   Content-class CDATA #REQUIRED
   charset CDATA #REQUIRED
   Data CDATA #REQUIRED
   Name CDATA #REQUIRED
   Filename CDATA #REQUIRED
>
在上述的DTD当中,主要是对Email数据如何在数据交换文件格式当中体现进行规定。所有的Email数据都是XML中Email元素的子元素,每个Email元素当中可以包含0个或者多个的EmailInfo元素。每个EmailInfo元素当中包含一个Email数据的序号以及一个以XML形式进行封装的Email数据。
具体的Email的数据字段的含义参考本规范的第一部分,本部分仅按照W3C的规则对第一部分数据格式所要求的Email字段进行了XML形式的封装定义。
终端可以根据上述的DTD的描述生成数据交换文件,以及对该文件进行解析。出于兼容性的考虑,终端可以支持Schema的方式进行XML文件的生成。其形式如下所示:
   <!--
             ==================================================
             Email Data
             ===============================================
         -->
         <xs:element name="Email"type="EmailType"/>
         <xs:complexType name="EmailType">
             <xs:sequence>
                 <xs:element name="EmailInfo"type="EmailInfoType"
minOccurs="O"maxOccurs="unbounded"/>
             </xs:sequence>
         </xs:complexType>
         <xs:complexType name="EmailInfoType">
             <xs:sequence>
                 <xs:element name="EmailField"type="EmailFieldType"
minOccurs="O"maxOccurs="unbounded"/>
             </xs:sequence>
             <xs:attribute name="Sequence"type="xs:unsignedInt"use="required"/>
         </xs:complexType>
         <xs:complexType name="EmailFieldType">
             <xs:sequence>
                 <xs:element name="EmailContent"type="EmailContentType"
minOccurs="O"maxOccurs="unbounded"/>
             </xs:sequence>
             <xs:attribute name="Return-Path"type="xs:string"use="required"/>
             <xs:attribute name="Delivered-To"type="xs:string"use="required"/>
             <xs:attribute name="Received"type="xs:string"use="required"/>
             <xs:attribute name="Date"type="xs:string"use="required"/>
             <xs:attribute name="CC"type="xs:string"use="required"/>
             <xs:attribute name="BCC"type="xs:string"use="required"/>
             <xs:attribute name="Message-ID"type="xs:string"use="required"/>
             <xs:attribute name="From"type="xs:string"use="required"/>
             <xs:attribute name="Subject"type="xs:string"use="required"/>
             <xs:attribute name="To"type="xs:string"use="required"/>
             <xs:attribute name="Reply-to"type="xs:string"use="required"/>
             <xs:attribute name="MIME-version"type="xs:string"use="required"/>
             <xs:attribute name="Content-Type"type="xs:string"use="required"/>
         </xs:complexType>
         <xs:complexType name="EmailContentType">
             <xs:attribute name="Content-Transfer-Encoding"type="xs:string"
use="required"/>
             <xs:attribute name="Content-Description"type="xs:string"
use="required"/>
             <xs:attribute name="Content-Disposition"type="xs:string"
use="required"/>
             <xs:attribute name="Content-ID"type="xs:string"use="required"/>
             <xs:attribute name="Content-type"type="xs:string"use="required"/>
             <xs:attribute name="Content-class"type="xs:string"use="required"/>
             <xs:attribute name="charset"type="xs:string"use="required"/>
             <xs:attribute name="Data"type="xs:string"use="required"/>
             <xs:attribute name="Name"type="xs:string"use="required"/>
        <xs:attribute name="Filename"type="xs:string"use="required"/>
    </xs:complexType>
</xs:schema>
上述是终端在生成和转换相关数据内容是所需要遵守的DTD/Schema的格式。终端可以参考上述格式生成/解析XML文档。
在上述的DTD当中,存在如下的Sequence的字段。
Sequence CDATA #REQUIRED
这个字段必须出现在每一个Email的条目当中。通过这个序号,终端在解析数据交换的中间文件的时候,可以选择性的对第x条数据进行交换,而不用一次对所有的数据进行交换,从而节约交换的时间,同时可以针对数据能力有限,存储空间有限的终端进行更有针对性地交换。
实施例8
本实施例主要是对整个数据交换过程当中所交换数据的Email和MMS数据当中所携带的多媒体文件的封装的说明。
消息类数据所携带的附件的编码方式主要采用Base64编码的方式进行。Base64是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的ASCII字符序列,常用在需用通过文本协议(比如HTTP和SMTP)来传输二进制数据的情况下。Base64采用了一种很简单的编码转换:对于待编码数据,以3个字节为单位,依次取6位数据并在前面补上两个0形成新的8位编码,由于3*8=4*6,这样3个字节的输入会变成4个字节的输出,长度上增加了1/3。
本发明实施例当中,在多媒体消息和电子邮件的文件格式当中需要涉及多媒体文件附件的封装。在上述的消息类信息的交换过程当中,多媒体文件通过Base64的编码方式存放在XML的<MMSContent>或<EmailContent>元素当中,同时在<MMSContent>或<EmailContent>元素当中利用其他的XML数据信息对多媒体文件进行描述,这些描述信息包括:
<Content-Type>,主要描述附件的类型,可以用MIME类型进行描述。
<charset>主要描述文件的字符集。
<Content-Transfer-Encoding>,主要描述文件传输中的编码方式。
<name>主要对附件名进行描述。
<Content-Disposition>,主要对文件在消息当中所扮演的角色进行描述。
<filename>,主要对附件的文件名进行描述。
<Content-Location>,主要对附件的存放位置进行描述等,具体在交换文件当中所携带的文件的描述信息请参见多媒体消息和电子邮件部分的DTD/Schema的规定。
多媒体消息附件的多媒体文件封装如下例所示:
     <MMS>
          <MMSInfo Sequence=″1″>
<MMSField Date_and_time=″Wed,07 Jun 2006 17:54:49+0800″Message_ID=″060717544991000009318″
Message_class=″Personal″Message_Type=″MM1_retrieve.RES″MM_State=″Retrieved″MMS_Version=″1.2″
Priority=″Normal″                                          Recipient_address=″jian.yang@huawei.com″
Sender_address=″+8613910916446@mmsc-bj-rsv.monternet.com″Subject=″Hello″>
<ContentInMMS ContentInfo=″Multipart/Related″Type=″application/smil″Start=″s.smil″/>
<MMSContent charset=″utf-8″Content-Transfer-Encoding=″Base64″Content-Location=″8712df01.asc″
Data=″MDblubQ25py INuaXpeaYr+S4qjY25aSn6aG655qE5ZCJ56W15pe15a2Q44CC5Zyo6L+Z5Liq57605aW955qE5pe25Yi777yM5
6Wd5oKo5bm456aP5ZCJ56W177yM5LqL5Lia6aG66aG65Yip5Yip77yM55Sf5rS75byA5byA5b+D5b+D77yBAA==″
Content-Type=″text/plain″/>
<MMSContent charset=″utf-8″Content-Transfer-Encoding=″Base64″Content-Location=″s.smil″
Data=″PHNtaWw+CjxoZWFkPgo8bGF5b3VOPgo8cm9vdClsYX1vdXQgd21kdGg9IjIOMCIgaGVpZ2hOPSIyNzQiLz4KPHJ1Z21vbiBpZ
DOiSW1hZ2UiIHdpZHRoPSIxMDA1IiBoZWlnaHQ9IjEwMCUiIGxlZnQ9IjAlIiBOb3A9IjAlIiAvPgo8cmVnaW9uIGlkPSJUZXh0IiB3
aWR0aD0iMTAwJSIgaGVpZ2hOPSIxMDA1IiBsZWZOPSIwJSIgdG9wPSIwJSIgLz4KPC9sYX1vdXQ+CjwvaGVhZD4KPGJvZHk+CjxwYXI
gZHVyPSI3MDAwbXMiPgo8dGV4dCBzcmM9Ijg3MTJkZjAxLmFzYyIgcmVnaW9uPSJUZXhOIiBkdXI9IjcwMDBtcyIgLz4KPC9wYXI+Cj
wvYm9keT4KPC9zbWlsPgo=″Content-Type=″application/smil″/>
                     </MMSField>
                </MMSInfo>
           </MMS>
电子邮件附件的多媒体文件封装如下例所示:
    <Email>
            <EmailInfo Sequence=″1″>
                <EmailField CC=″Alice@sample.com″Date=″Tue,26 Jun 2007 14:15:16
+0800″From=″Alice<Alice@sample.com>″MIME-version=″1.0″Subject=″FYI″
To=″Alice@sample.com″Content-Type=″multipart/mixed″>
                   <EmailContent                 Content-Transfer-Encoding=″base64″
Content-type=″text/plain″                    charset=″                   gb2312″
Data=″RllJDQoNCgOKDQpDaGVuIEdlb3FpYW8gs8K5+sfHICBSJkQgRW5naW51ZXINCklvYmlsZSBUZ
XJtaW5hbCBEZXAuDQpIdWF3ZWkgVGVjaG5vbG9naWVzIENvLixMdGQuDQpIdWEgV2VpIEJsZC4sTm8u
MyBYaW54aSBSZC4sU2hhbmctRGkgSW5mb3JtYXRpb24gDQpJbmRlc3RyeSBCYXN1LEhhaS1EaWFuIER
pc3RyaWNOIEJ1aWppbmcgUC5SLkNoaW5hIAOKWklQo7oxMDAwODUgIAOKVGVsOiArODYtMTAtODI4Mz
YzNjYNCkZBWKO6Kzg2LTEwLTgyODM2MTMzDQpFbWFpbDogY2hlbmd1b3FpYW9AaHVhd2VpLmNvbQ==″
/>
                   <EmailContent             Content-Transfer-Encoding=″base64″
Content-type=″text/html                ″                     charset=″gb2312″
Data=″PCFETONUWVBFIEhUTUwgUFVCTE1DICItLy9XMOMvLORURCBIVE1MIDQuMCBUcmFuc210aW9uY
WwvLOVOIj4NCjxIVE1MPjxIRUFEPgOKPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu
dD0idGV4dC9odGlsOyBjaGFyc2VOPWdiMjMxMiI+DQo8TUVUQSBjb250ZW5OPSJNUOhUTUwgNi4wMC4
yODAwLjE1NjEiIG5hbWU9ROVORVJBVE9SPgOKPFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+DQo8Qk9EWS
BiZONvbG9yPSNjY2U4Y2Y+DQo8RE1WPjxGT05UIHNpemU9Mj5GWUk8LOZPT1Q+PC9ESVY+DQo8RE1WP
jxGT05UIHNpemU9Mj48LOZPT1Q+Jm5ic3A7PC9ESVY+DQo8RE1WPjxGT05UIHNpemU9Mj48LOZPT1Q+
Jm5ic3A7PC9ESVY+DQo8RE1WPiZuYnNwOzwvRE1WPgOKPERJVj48Rk9OVCBzaXplPTI+Q2h1biBHdW9
xaWFvILPCufrHxyZuYnNwOyBSJmFtcDtEIEVuZ21uZWVyPEJSPk1vYmlsZSBUZXJtaW5hbCANCkRlcC
48Q1I+SHVhd2VpIFR1Y2hub2xvZ211cyBDby4sTHRkLjxCUj5IdWEgV2VpIEJsZC4sTm8uMyBYaW54a
SBSZC4sU2hhbmctRGkgDQpJbmZvcm1hdGlvbiA8Q1I+SW5kdXNOcnkgQmFzZSxIYWktRGlhbiBEaXNO
cmljdCBCZW1qaW5nIFAuUi5DaGluYSANCjxCUj5aSVCjujEwMDA4NSZuYnNwOyA8Q1I+VGVsOiArODY
tMTAtODI4MzYzNjY8Q1I+RkFYo7orODYtMTAtODI4MzYxMzM8Q1I+RW1haWw6IAOKPEEgDQpocmVmPS
JtYW1sdG86Y2h1bmd1b3FpYW9AaHVhd2VpLmNvbSI+Y2h1bmd1b3FpYW9AaHVhd2VpLmNvbTwvQT48L
OZPT1Q+PC9ESVY+PC9CTORZPjwvSFRNTD4NCg==″/>
                    <EmailContent              Content-Transfer-Encoding=″7bit″
Content-Description=″attachment″Content-type=″text/plain″Data=″just test.″
Name=″attachment.txt″Filename=″attachment.txt″/>
                 </EmailField>
            </EmailInfo>
         </Email>
实施例9
本实施例主要是对整个数据交换过程当中所交换数据文件的使用方法和流程的一个说明。
在本发明实施例当中,需要进行数据交换的终端,根据数据交换文件格式的要求,生成相应的交换文件,并且将需要交换的数据信息携带在该文件当中。
所生成的交换文件的后缀名采用*.udx的名称,所交换的信息包括电话簿、日程表、短消息,多媒体消息以及电子邮件的相关信息。
接收到*.udx的交换文件之后,根据数据交换文件的格式要求对该文件进行解析,并提取出其中所携带的相应数据信息。根据实际的需要,用户可以浏览这些信息,也可以将这些信息备份到目标终端上。
整个数据交换的过程中,数据交换文件的生成主要利用数据交换软件实现,该软件可以是终端上的专用软件,也可以是通过数据线和终端相连的PC上的专用软件。
实施例10
本实施例主要是对整个数据交换过程当中所交换数据文件所需要参考的整体的DTD/Schema进行描述。
数据交换流程的参考参见先前的实施例。在整个数据过程当中,需要将所交换的数据用XML的方式进行封装,在封装的过程当中需要参考目标格式的XML文件进行。为了能够满足在整个数据交换过程的需要,需要在XML的DTD/Schema当中定义电话簿、日程表、短消息、多媒体消息以及电子邮件的XML的封装形式。
在本实施例当中规定的XML文件的结构分为六部分,他们分别是头信息部分,电话簿信息部分,日程表信息部分,短消息信息部分,多媒体消息信息部分和电子邮件信息部分。
头信息的定义。为了使整个数据交换的整体信息能够在交换开始之前被目的方识别,我们还需要对数据交换过程中的整体信息进行规定。这样的规定可以让用户在数据交换过程当中完成能力的适配,根据终端是否支持该功能的数据,所支持的该功能的数据的容量是否能和终端进行匹配等信息对终端完成适配的过程。同时根据这些头信息,在完成数据交换的过程之后,还能够对所交换的数据进行校验和错误重传。所有的头信息在
<!ELEMENT DataExchange Info(RecordInfo,vCard,vCalendar,SMS,MMS,Email)>
的数据格式之中定义。
电话簿信息部分。根据vCard的定义,我们将vCard的数据格式用XML的形式进行封装。与此同时,在每一条vCard格式所定义的XML数据单元当中,有一个序列号同这条数据相对应,以便用户能够对vCard数据有选择的进行交换。所有的vCard数据在
<!ELEMENT vCard(vCardInfo*)>
的数据格式之中定义。
日程表信息部分。根据vCalendar的定义,我们将vCalendar的数据格式用XML的形式进行封装。与此同时,在每一条vCalendar格式所定义的XML数据单元当中,有一个序列号同这条数据相对应,以便用户能够对vCalendar数据有选择的进行交换。所有的vCalendar数据在
<!ELEMENT vCalendar(vCalendarInfo*)>
的数据格式之中定义。
短消息信息部分。根据SMS国际规范的定义,我们将SMS的数据格式用XML的形式进行封装。与此同时,在每一条SMS格式所定义的XML数据单元当中,有一个序列号同这条数据相对应,以便用户能够对SMS数据有选择的进行交换。所有的SMS数据在
<!ELEMENT SMS(SMSInfo*)>
的数据格式之中定义。
多媒体消息信息部分。根据MMS国际规范的定义,我们将MMS的数据格式用XML的形式进行封装。与此同时,在每一条MMS格式所定义的XML数据单元当中,有一个序列号同这条数据相对应,以便用户能够对MMS数据有选择的进行交换。所有的MMS数据在
<!ELEMENT MMS(MMSInfo*)>
的数据格式之中定义。
电子邮件信息部分。将Email的数据格式用XML的形式进行封装。与此同时,在每一条Email格式所定义的XML数据单元当中,有一个序列号同这条数据相对应,以便用户能够对Email数据有选择的进行交换。所有的Email数据在
<!ELEMENT Email(EmailInfo*)>
的数据格式之中定义。
在整个的数据交换过程当中,XML文件的生成需要参考如下的格式完成。
<?xml version=″1.0″encoding=″UTF-8″?>
<!ELEMENT DataExchangeInfo(RecordInfo,vCard,vCalendar,SMS,MMS,Email)>
<!ATTLIST DataExchange Info
   UserInfo CDATA #REQUIRED
   UserAgent CDATA #REQUIRED
   DeviceInfo CDATA #REQUIRED
   Date CDATA #REQUIRED
   Language CDATA #REQUIRED
>
<!ELEMENT RecordInfo EMPTY>
<!ATTLIST RecordInfo
   RecordOfvCard CDATA #REQUIRED
   RecordOfvCalendar CDATA #REQUIRED
   RecordOfSMS CDATA #REQUIRED
   RecordOfMMS CDATA #REQUIRED
   RecordOfEmail CDATA #REQUIRED
>
<!ELEMENT vCard(vCardInfo*)>
<!ELEMENT vCardInfo(vCardField*)>
<!ATTLIST vCardInfo
   Sequence CDATA #REQUIRED
>
<!ELEMENT vCardField EMPTY>
<!ATTLIST vCardField
   ADR CDATA #REQUIRED
   ADRHOME CDATA #REQUIRED
   ADRWORK CDATA #REQUIRED
   BDAY CDATA #REQUIRED
   ELVOICEHOME CDATA #REQUIRED
   EMAIL CDATA #REQUIRED
   EMAILHOME CDATA #REQUIRED
   EMAILWORK CDATA #REQUIRED
   N CDATA #REQUIRED
   ORG CDATA #REQUIRED
   Sequence CDATA #REQUIRED
   TEL CDATA #REQUIRED
   TELCELL CDATA #REQUIRED
   TELCELLHOME CDATA #REQUIRED
   TELCELLWORK CDATA #REQUIRED
   TELFAX CDATA #REQUIRED
   TELFAXHOME CDATA #REQUIRED
   TELFAXWORK CDATA #REQUIRED
   TELHOME CDATA #REQUIRED
   TELVIDEO CDATA #REQUIRED
   TELVIDEOCELL CDATA #REQUIRED
   TELVIDEOHOME CDATA #REQUIRED
   TELVI DEOWORK CDATA #REQUIRED
   TELVOICE CDATA #REQUIRED
   TELVOICEHOME CDATA #REQUIRED
   TELVOICEWORK CDATA #REQUIRED
   TELWORK CDATA #REQUIRED
   TITLE CDATA #REQUIRED
       URL CDATA #REQUIRED
       URLHOME CDATA #REQUIRED
       URLWORK CDATA #REQUIRED
   >
   <!ELEMENT vCalendar(vCalendarInfo*)>
   <!ELEMENT vCalendarInfo(vCalendarField*)>
   <!ATTLIST vCalendarInfo
      Sequence CDATA #REQUIRED
   >
   <!ELEMENT vCalendarField EMPTY>
   <!ATTLIST vCalendarField
      STARTTIME CDATA #REQUIRED
      STOPTIME CDATA #REQUIRED
      DESCRIPTION CDATA #REQUIRED
      RECURTYPE CDATA #REQUIRED
      BODY CDATA #REQUIRED
      NOTIFYTYPE CDATA #REQUIRED
      RI NGERTYPE CDATA #REQUIRED
      DURATION CDATA #REQUIRED
   >
   <!ELEMENT SMS(SMS Info*)>
   <!ELEMENT SMSInfo(SMSField*)>
   <!ATTLIST SMSInfo
      Sequence CDATA #REQUIRED
   >
<   !ELEMENT SMSField(MT_SMS*|MO_SMS*|Draft_SMS*
Delivery_Report*)>
<!ATTLIST SMSField
   Orignal_Address CDATA #REQUIRED
   Destination_Address CDATA #IMPLIED
    Data CDATA #REQUIRED
    TimeStamp CDATA #REQUIRED
>
<!ELEMENT MT_SMS(#PCDATA)>
<!ELEMENT MO_SMS(#PCDATA)>
<!ELEMENT Draft_SMS(#PCDATA)>
<!ELEMENT Del ivery_Report(#PCDATA)>
<!ELEMENT MMS(MMSInfo*)>
<!ELEMENT MMSInfo(MMSField*)>
<!ATTLIST MMSInfo
   Sequence CDATA #REQUIRED
>
<!ELEMENT MMSField(MMSContent*,ContentInMMS*)>
<!ATTLIST MMSField
   Message_Type CDATA #REQUIRED
   MMS_Version CDATA #REQUIRED
   Message_ID CDATA #REQUIRED
   Sender_address CDATA #REQUIRED
   Recipient_address CDATA #REQUIRED
   Message_class CDATA #REQUIRED
   Date_and_time CDATA #REQUIRED
   Priority CDATA #REQUIRED
   Subject CDATA #REQUIRED
   MM_State CDATA #REQUIRED
>
<!ELEMENT MMSContent EMPTY>
<!ATTLIST MMSContent
   charset CDATA #REQUIRED
   Content-Transfer-Encoding CDATA #REQUIRED
   Content-Location CDATA #REQUIRED
    Data CDATA #REQUIRED
    Content-Type CDATA #REQUIRED
>
<!ELEMENT ContentInMMS EMPTY>
<!ATTLIST ContentInMMS
   ContentInfo CDATA #REQUIRED
   Type CDATA #REQUIRED
   Start CDATA #REQUIRED
>
<!ELEMENT Email(EmailInfo*)>
<!ELEMENT EmailInfo(EmailField*)>
<!ATTLIST EmailInfo
   Sequence CDATA #REQUIRED
>
<!ELEMENT EmailField(EmailContent*)>
<!ATTLIST EmailField
   Return-Path CDATA #REQUIRED
   Delivered-To CDATA #REQUIRED
   Received CDATA #REQUIRED
   Date CDATA #REQUIRED
   CC CDATA #REQUIRED
   BCC CDATA #REQUIRED
   Message-ID CDATA #REQUIRED
   From CDATA #REQUIRED
   Subject CDATA #REQUIRED
   To CDATA #REQUIRED
   Reply-to CDATA #REQUIRED
   MIME-version CDATA #REQUIRED
   Content-Type CDATA #REQUIRED
>
<!ELEMENT EmailContent EMPTY>
<!ATTLIST EmailContent
   Content-Transfer-Encoding CDATA #REQUIRED
   Content-Description CDATA #REQUIRED
   Content-Disposition CDATA #REQUIRED
   Content-ID CDATA #REQUIRED
   Content-type CDATA #REQUIRED
   Content-class CDATA #REQUIRED
   charset CDATA #REQUIRED
   Data CDATA #REQUIRED
   Name CDATA #REQUIRED
   Filename CDATA #REQUIRED
>
由于终端以及客户端软件对整个XML所支持的情况不完全相同,因此W3C规定了两种用来生成XML数据封装的技术,他们分别是DTD和Schema。前文对数据交换过程当中的DTD格式进行了规定,下面是和上文等同含义的Schema的定义。
对于上文当中不同信息部分的内容,本Schema部分用====在Schema当中进行分隔。
   <?xml version="1.0"encoding="UTF-8"?>
   <!DOCTYPE xs:schema SYSTEM"http://www.sample.com/udx.xsd">
   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"attributeFormDefault="unqualified">
    <!--
        ================================================
        Header Information
    ==================================================
-->
<xs:element name="DataExchangeInfo"type="DataExchangeInfoType"/>
<xs:complexType name="DataExchangeInfoType">
    <xs:sequence>
        <xs:element name="RecordInfo"type="RecordInfoType"/>
        <xs:element name="vCard"type="vCardType"/>
        <xs:element name="vCalendar"type="vCalendarType"/>
        <xs:element name="SMS"type="SMSType"/>
        <xs:element name="MMS"type="MMSType"/>
        <xs:elementname="Email"type="EmailType"/>
    </xs:sequence>
    <xs:attribute name="UserInfo"type="xs:string"use="required"/>
    <xs:attribute name="UserAgent"type="xs:string"use="required"/>
    <xs:attribute name="DeviceInfo"type="xs:string"use="required"/>
    <xs:attribute name="Date"type="xs:string"use="required"/>
    <xs:attribute name="Language"type="xs:string"use="required"/>
</xs:complexType>
<xs:complexType name="RecordInfoType">
    <xs:attribute name="RecordOfvCard"type="xs:string"use="required"/>
       <xs:attribute name="RecordOfvCalendar"type="xs:string"use="required"/>
       <xs:attribute name="RecordOfSMS"type="xs:string"use="required"/>
       <xs:attribute name="RecordOfMMS"type="xs:string"use="required"/>
       <xs:attribute name="RecordOfEmail"type="xs:string"use="required"/>
   </xs:complexType>
   <!--
         ================================================
         vCardData
         =================================================
     -->
     <xs:element name="vCard"type="vCardType"/>
     <xs:complexType name="vCardType">
         <xs:sequence>
            <xs:element name="vCardInfo"type="vCardInfoType"minOccurs="O"
maxOccurs="unbounded"/>
         </xs:sequence>
     </xs:complexType>
     <xs:complexType name="vCardInfoType">
         <xs:sequence>
             <xs:element name="vCardField"type="vCardFieldType"
minOccurs="O"maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="Sequence"type="xs:unsignedInt"use="required"/>
</xs:complexType>
<xs:complexType name="vCardFieldType">
    <xs:attribute name="ADR"type="xs:string"use="required"/>
    <xs:attribute name="ADRHOME"type="xs:string"use="required"/>
    <xs:attribute name="ADRWORK"type="xs:string"use="required"/>
    <xs:attribute name="BDAY"type="xs:string"use="required"/>
    <xs:attribute name="ELVOICEHOME"type="xs:string"use="required"/>
    <xs:attribute name="EMAIL"type="xs:string"use="required"/>
    <xs:attribute name="EMAILHOME"type="xs:string"use="required"/>
    <xs:attribute name="EMAILWORK"type="xs:string"use="required"/>
    <xs:attribute name="N"type="xs:string"use="required"/>
    <xs:attribute name="ORG"type="xs:string"use="required"/>
    <xs:attribute name="Sequence"type="xs:string"use="required"/>
    <xs:attribute name="TEL"type="xs:string"use="required"/>
    <xs:attribute name="TELCELL"type="xs:string"use="required"/>
    <xs:attribute name="TELCELLHOME"type="xs:string"use="required"/>
    <xs:attribute name="TELCELLWORK"type="xs:string"use="required"/>
    <xs:attribute name="TELFAX"type="xs:string"use="required"/>
     <xs:attribute name="TELFAXHOME"type="xs:string"use="required"/>
     <xs:attribute name="TELFAXWORK"type="xs:string"use="required"/>
     <xs:attribute name="TELHOME"type="xs:string"use="required"/>
     <xs:attribute name="TELVIDEO"type="xs:string"use="required"/>
     <xs:attribute name="TELVIDEOCELL"type="xs:string"use="required"/>
     <xs:attribute name="TELVIDEOHOME"type="xs:string"use="required"/>
     <xs:attribute name="TELVIDEOWORK"type="xs:string"use="required"/>
     <xs:attribute name="TELVOICE"type="xs:string"use="required"/>
     <xs:attribute name="TELVOICEHOME"type="xs:string"use="required"/>
     <xs:attribute name="TELVOICEWORK"type="xs:string"use="required"/>
     <xs:attribute name="TELWORK"type="xs:string"use="required"/>
     <xs:attribute name="TITLE"type="xs:string"use="required"/>
     <xs:attribute name="URL"type="xs:string"use="required"/>
     <xs:attribute name="URLHOME"type="xs:string"use="required"/>
     <xs:attribute name="URLWORK"type="xs:string"use="required"/>
</xs:complexType>
<!--
    ==================================================
    vCalendar Data
    ==================================================
    -->
    <xs:element name="vCalend ar"type="vCalendarType"/>
    <xs:complexType name="vCalendarType">
        <xs:sequence>
            <xs:element name="vCalendarInfo"type="vCalendarInfoType"
minOccurs="O"maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="vCalendarInfoType">
        <xs:sequence>
            <xs:element name="vCalendarField"type="vCalendarFieldType"
minOccurs="O"maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Sequence"type="xs:unsignedInt"use="required"/>
    </xs:complexType>
    <xs:complexType name="vCalendarFieldType">
        <xs:attribute name="STARTTIME"type="xs:string"use="required"/>
        <xs:attribute name="STOPTIME"type="xs:string"use="required"/>
        <xs:attribute name="DESCRIPTION"type="xs:string"use="required"/>
        <xs:attribute name="RECURTYPE"type="xs:string"use="required"/>
        <xs:attribute name="BODY"type="xs:string"use="required"/>
         <xs:attribute name="NOTIFYTYPE"type="xs:string"use="required"/>
         <xs:attribute name="RINGERTYPE"type="xs:string"use="required"/>
         <xs:attribute name="DURATION"type="xs:string"use="required"/>
    </xs:complexType>
    <!--
         =================================================
         SMS Data
         ==================================================
    -->
    <xs:element name="SMS"type="SMSType"/>
    <xs:complexType name="SMSType">
        <xs:sequence>
            <xs:element name="SMSInfo"type="SMSInfoType"minOccurs="O"
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="SMSInfoType">
        <xs:sequence>
            <xs:element name="SMSField"type="SMSFieldType"minOccurs="O"
maxOccurs="unbounded"/>
        </xs:sequence>
           <xs:attribute name="Sequence"type="xs:unsignedInt"use="required"/>
       </xs:complexType>
       <xs:complexType name="SMSFieldType">
           <xs:choice>
               <xs:element name="MT_SMS"type="xs:boolean"default="true"
minOccurs="O"maxOccurs="unbounded"/>
               <xs:element name="MO_SMS"type="xs:boolean"default="false"
minOccurs="O"maxOccurs="unbounded"/>
               <xs:element name="Draft_SMS"type="xs:boolean"default="false"
minOccurs="O"maxOccurs="unbounded"/>
               <xs:element name="Delivery_Report"type="xs:boolean"
default="false"minOccurs="O"maxOccurs="unbounded"/>
          </xs:choice>
          <xs:attribute name="Orignal_Address"type="xs:unsignedInt"
use="required"/>
          <xs:attribute name="Destination_Address"type="xs:unsignedInt"
use="optional"/>
          <xs:attribute name="Data"type="xs:unsignedInt"use="required"/>
          <xs:attribute name="TimeStamp"type="xs:string"use="required"/>
     </xs:complexType>
     <!--
          ==================================================
        MMS Data
        =================================================
    -->
    <xs:element name="MMS"type="MMSType"/>
    <xs:complexType name="MMSType">
        <xs:sequence>
            <xs:element name="MMSInfo"type="MMSInfoType"minOccurs="O"
maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="MMSInfoType">
        <xs:sequence>
            <xs:elementname="MMSField"type="MMSFieldType"
minOccurs="O"maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="Sequence"type="xs:unsignedInt"use="required"/>
    </xs:complexType>
    <xs:complexType name="MMSFieldType">
        <xs:sequence>
            <xs:element name="MMSContent"type="MMSContentType"
minOccurs="O"maxOccurs="unbounded"/>
           <xs:element name="ContentInMMS"type="ContentInMMSType"
minOccurs="O"maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:attribute name="Message_Type"type="xs:string"use="required"/>
         <xs:attribute name="MMS_Version"type="xs:string"use="required"/>
         <xs:attribute name="Message_ID"type="xs:string"use="required"/>
         <xs:attribute name="Sender_address"type="xs:string"use="required"/>
         <xs:attribute name="Recipient_address"type="xs:string"use="required"/>
         <xs:attribute name="Message_class"type="xs:string"use="required"/>
         <xs:attribute name="Date_and_time"type="xs:string"use="required"/>
         <xs:attribute name="Priority"type="xs:string"use="required"/>
         <xs:attribute name="Subject"type="xs:string"use="required"/>
         <xs:attribute name="MM_State"type="xs:string"use="required"/>
     </xs:complexType>
     <xs:complexType name="MMSContentType">
         <xs:attribute name="charset"type="xs:string"use="required"/>
         <xs:attribute name="Content-Transfer-Encoding"type="xs:string"
use="required"/>
         <xs:attribute name="Content-Location"type="xs:string"use="required"/>
         <xs:attribute name="Data"type="xs:string"use="required"/>
         <xs:attribute name="Content-Type"type="xs:string"use="required"/>
     </xs:complexType>
     <xs:complexType name="ContentInMMSType">
          <xs:attribute name="ContentInfo"type="xs:string"use="required"/>
          <xs:attribute name="Type"type="xs:string"use="required"/>
          <xs:attribute name="Start"type="xs:string"use="required"/>
     </xs:complexType>
     <!--
        =================================================
        Email Data
        =================================================
     -->
     <xs:element name="Email"type="EmailType"/>
     <xs:complexType name="EmailType">
        <xs:sequence>
            <xs:element name="EmailInfo"type="EmailInfoType"minOccurs="O"
maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="EmailInfoType">
      <xs:sequence>
            <xs:element name="EmailField"type="EmailFieldType"
minOccurs="O"maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="Sequence"type="xs:unsignedInt"use="required"/>
   </xs:complexType>
   <xs:complexType name="EmailFieldType">
       <xs:sequence>
           <xs:element name="EmailContent"type="EmailContentType"
minOccurs="O"maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="Return-Path"type="xs:string"use="required"/>
       <xs:attribute name="Delivered-To"type="xs:string"use="required"/>
       <xs:attribute name="Received"type="xs:string"use="required"/>
       <xs:attribute name="Date"type="xs:string"use="required"/>
       <xs:attribute name="CC"type="xs:string"use="required"/>
       <xs:attribute name="BCC"type="xs:string"use="required"/>
       <xs:attribute name="Message-ID"type="xs:string"use="required"/>
       <xs:attribute name="From"type="xs:string"use="required"/>
       <xs:attribute name="Subject"type="xs:string"use="required"/>
       <xs:attribute name="To"type="xs:string"use="required"/>
       <xs:attribute name="Reply-to"type="xs:string"use="required"/>
          <xs:attribute name="MIME-version"type="xs:string"use="required"/>
          <xs:attribute name="Content-Type"type="xs:string"use="required"/>
      </xs:complexType>
      <xs:complexType name="EmailContentType">
          <xs:attribute name="Content-Transfer-Encoding"type="xs:string"
use="required"/>
          <xs:attribute name="Content-Description"type="xs:string"use="required"/>
          <xs:attribute name="Content-Disposition"typee="xs:string"use="required"/>
          <xs:attribute name="Content-ID"type="xs:string"use="required"/>
          <xs:attribute name="Content-type"type="xs:string"use="required"/>
          <xs:attribute name="Content-class"type="xs:string"use="required"/>
          <xs:attribute name="chars et"type="xs:string"use="required"/>
          <xs:attribute name="Data"type="xs:string"use="required"/>
          <xs:attribute name="Name"type="xs:string"use="required"/>
          <xs:attribute name="Filename"type="xs:string"use="required"/>
      </xs:complexType>
    </xs:schema>
以上是对本发明具体实施例的说明,在具体的实施过程中可对本发明的方法进行适当的改进,以适应具体情况的具体需要。因此可以理解,根据本发明的具体实施方式只是起示范作用,并不用以限制本发明的保护范围。

Claims (25)

1、一种数据交换方法,其特征在于,包括:
将需要交换的数据使用XML进行封装;
所述XML封装的数据信息包括头信息;
将所述XML封装的数据信息传送给进行数据交换的另一单元。
2、如权利要求1所述的方法,其特征在于,所述方法还包括将所述需要交换的数据封装在数据交换文件当中。
3、如权利要求1所述的方法,其特征在于,所述头信息包括数据条目的数量信息。
4、如权利要求3所述的方法,其特征在于,所述头信息还至少包括以下一种:用户信息,客户端信息,设备信息,日期信息,语言信息。
5、如权利要求1所述的方法,其特征在于,所述XML封装的数据信息包括具体数据信息,该具体数据信息至少包括以下一种:地址簿,日程表,短消息,多媒体消息以及电子邮件消息的条目信息。
6、如权利要求1所述的方法,其特征在于,所述方法还包括在所述XML封装的数据信息上叠加序列号和条目信息。
7、一种数据交换方法,其特征在于,包括:
接收XML封装的数据信息;
读取所述XML封装的数据信息中的头信息;
根据所述头信息进行数据交换。
8、如权利要求7所述的方法,其特征在于,在所述读取所述XML封装的数据信息中的头信息后还包括根据所述头信息判断是否具备交换能力;如果是则进行数据交换,如果否则拒绝进行数据交换。
9、如权利要求7或8所述的方法,其特征在于,所述方法还包括将所述XML封装的数据信息封装在数据交换文件中。
10、如权利要求7或8所述的方法,其特征在于,所述头信息还包括数据条目的数据信息.
11、如权利要求10所述的方法,其特征在于,所述头信息至少包括以下一种:用户信息,客户端信息,设备信息,日期信息,语言信息。
12、如权利要求7或8所述的方法,其特征在于,所述XML封装的数据信息包括具体数据信息,该具体数据信息至少包括以下一种:地址簿,日程表,短消息,多媒体消息以及电子邮件消息的条目信息。
13、如权利要求7或8所述的方法,其特征在于,所述方法还包括在所述XML封装的数据信息上叠加序列号和条目信息。
14、如权利要求8所述的方法,其特征在于,所述根据所述头信息判断是否具备交换能力具体是根据数据类型判断是否支持该数据类型的数据交换或根据该数据类型的条目信息判断是否有容量交换相应数据类型数据或根据该数据类型的数据的条目数量信息判断是否在交换过程中是否有数据丢失或数据重复的情况发生。
15、如权利要求7所述的方法,其特征在于,判断交换的数据条目的数量与读取的XML文件头信息条目的数量是否一致,不一致时,则抛弃本次的交换过程,并提示用户有错误发生。
16、如权利要求7所述的方法,其特征在于,所述方法还包括检测到因本地传输当中发生的错误,则提示用户重新发起交换的过程,以进行错误重传。
17、一种数据交换系统,其特征在于,包括:
第一数据交换设备,用于将数据传送给第一转换单元;
第二数据交换设备,用于接收第二转换单元传送的的数据;
第一转换单元,用于将第一数据交换设备传送的数据利用XML进行封装,所述读取XML封装的头信息;
第二转换单元,用于将XML转换成第二数据交换设备可接收的数据并传送给第二数据交换设备。
18、如权利要求17所述的系统,其特征在于,还包括:
检测单元,用于检测因为本地传输当中发生的错误;
第一提示单元,用于在所述检测单元检测到有因为本地传输当中发生的错误时提示用户重新发起交换的过程,从而进行错误重传。
19、如权利要求17所述的系统,其特征在于,还包括第一判断单元,用于根据所述头信息判断是否具备交换能力,所述第二转换单元在所述判断单元判断为具备交换能力时将XML文件转换成第二数据交换设备可接收的数据并传送给第二数据交换设备。
20、如权利要求17所述的系统,其特征在于,还包括:
第二判断单元,用于判断交换的数据条目的数量与读取的XML文件头信息条目的数量是否一致;
第二提示单元,用于所述第二判断单元判断单元判断交换的数据条目的数量与读取的XML文件头信息条目的数量不一致时抛弃本次的交换过程,并提示用户有错误发生。
21、一种数据交换设备,其特征在于,包括:
数据生成单元,用于生成要交换的数据并传送给数据转换单元;
数据转换单元,用于将要交换的数据转换成XML文件并传送,所述读取XML封装的头信息和数据条目的数量信息。
22、一种数据交换设备,其特征在于,包括:
数据转换单元,用于接收XML数据,读取XML封装的头信息和数据条目的数量信息,将XML数据转换成第二数据交换设备可接收的数据并传送给数据接收单元;
数据接收单元,用于接收数据转换单元传送的数据。
23、如权利要求22所述的设备,其特征在于,还包括:
检测单元,用于检测因为本地传输当中发生的错误;
第一提示单元,用于在所述检测单元检测到有因为本地传输当中发生的错误时提示用户重新发起交换的过程,从而进行错误重传。
24、如权利要求22所述的设备,其特征在于,还包括第一判断单元,用于根据所述头信息判断是否具备交换能力,所述数据转换单元在所述第一判断单元判断为具备交换能力时将XML文件转换成数据接收单元可接收的数据并传送给数据接收单元。
25、如权利要求22所述的设备,其特征在于,还包括:
第二判断单元,用于判断交换的数据条目的数量与读取的XML文件头信息条目的数量是否一致;
第二提示单元,用于在所述第二判断单元判断单元判断交换的数据条目的数量与读取的XML文件头信息条目的数量不一致时抛弃本次的交换过程,并提示用户有错误发生。
CN2008101694705A 2007-11-12 2008-10-21 数据交换方法、系统及设备 Active CN101478730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101694705A CN101478730B (zh) 2007-11-12 2008-10-21 数据交换方法、系统及设备

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200710124502 2007-11-12
CN200710124502.5 2007-11-12
CN2008101694705A CN101478730B (zh) 2007-11-12 2008-10-21 数据交换方法、系统及设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201110128825.8A Division CN102170410B (zh) 2007-11-12 2008-10-21 数据交换方法、系统及设备

Publications (2)

Publication Number Publication Date
CN101478730A true CN101478730A (zh) 2009-07-08
CN101478730B CN101478730B (zh) 2011-05-18

Family

ID=40839350

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2008101694705A Active CN101478730B (zh) 2007-11-12 2008-10-21 数据交换方法、系统及设备
CN201110128825.8A Active CN102170410B (zh) 2007-11-12 2008-10-21 数据交换方法、系统及设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201110128825.8A Active CN102170410B (zh) 2007-11-12 2008-10-21 数据交换方法、系统及设备

Country Status (1)

Country Link
CN (2) CN101478730B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073693A (zh) * 2010-12-28 2011-05-25 广州杰赛科技股份有限公司 基于xml的数据通讯方法及系统
CN103294697A (zh) * 2012-02-24 2013-09-11 腾讯科技(北京)有限公司 一种数据自适应解析方法及装置
CN103699633A (zh) * 2013-12-23 2014-04-02 Tcl集团股份有限公司 一种利用xml实现通用化数据交换的方法和系统
CN103970762A (zh) * 2013-01-29 2014-08-06 三星电子(中国)研发中心 在智能设备之间交换用户个性化数据的方法
EP2613506A4 (en) * 2010-09-01 2016-07-20 Huizhou Tcl Mobile Comm Co Ltd METHOD AND DEVICE FOR SECURING DATA INFORMATION OF A MOBILE TERMINAL
CN106020863A (zh) * 2016-05-06 2016-10-12 福建创意嘉和软件有限公司 一种脚本附件调用方法及装置
CN106339362A (zh) * 2016-08-31 2017-01-18 同方鼎欣科技股份有限公司 一种档案信息包大文件封装、解析查看方法与系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103390056A (zh) * 2013-07-26 2013-11-13 国家电网公司 一种文件传输方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1148678C (zh) * 2000-05-23 2004-05-05 黎明网络有限公司 Xml数据信息的交换方法及装置
CN1211746C (zh) * 2002-06-26 2005-07-20 联想(北京)有限公司 嵌入式系统与外部数据库进行数据交换的方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2613506A4 (en) * 2010-09-01 2016-07-20 Huizhou Tcl Mobile Comm Co Ltd METHOD AND DEVICE FOR SECURING DATA INFORMATION OF A MOBILE TERMINAL
CN102073693A (zh) * 2010-12-28 2011-05-25 广州杰赛科技股份有限公司 基于xml的数据通讯方法及系统
CN103294697A (zh) * 2012-02-24 2013-09-11 腾讯科技(北京)有限公司 一种数据自适应解析方法及装置
CN103970762A (zh) * 2013-01-29 2014-08-06 三星电子(中国)研发中心 在智能设备之间交换用户个性化数据的方法
CN103699633A (zh) * 2013-12-23 2014-04-02 Tcl集团股份有限公司 一种利用xml实现通用化数据交换的方法和系统
CN106020863A (zh) * 2016-05-06 2016-10-12 福建创意嘉和软件有限公司 一种脚本附件调用方法及装置
CN106339362A (zh) * 2016-08-31 2017-01-18 同方鼎欣科技股份有限公司 一种档案信息包大文件封装、解析查看方法与系统
CN106339362B (zh) * 2016-08-31 2019-09-24 同方鼎欣科技股份有限公司 一种档案信息包大文件封装方法与客户端

Also Published As

Publication number Publication date
CN101478730B (zh) 2011-05-18
CN102170410A (zh) 2011-08-31
CN102170410B (zh) 2014-01-22

Similar Documents

Publication Publication Date Title
CN101478730B (zh) 数据交换方法、系统及设备
CN101917520B (zh) 移动终端数据的转换/备份方法、设备和系统
JP4213667B2 (ja) マルチメディアメッセージをアーカイブする方法
JP5743422B2 (ja) ファイルタイプおよび/またはファイルフォーマットの変換を伴うmmsメッセージの伝送方法、加入者端末装置
CN1643877B (zh) 提供多媒体消息给不兼容终端的方法、设备和系统
CN100488318C (zh) 用于存储及访问多媒体消息传送服务相关信息的方法及其装置
KR101291324B1 (ko) 확장된 메시징 플랫폼
JP5006864B2 (ja) 移動無線ネットワークにおけるデータ伝送のための方法および移動通信装置
US20060078064A1 (en) Method and radio communication device for the transmission-efficent editing of multimedia news
CN100433867C (zh) 一种防止移动终端中个人数据丢失的方法及装置
CN100349474C (zh) 一种多媒体消息业务中推送通知的处理方法
CN100342702C (zh) 电子信息传输方法
CN102204193B (zh) 通信装置
CN101193337A (zh) 彩信编码装置
CN1802841B (zh) 在各种类型的终端之间同步联系人数据的终端和服务器
US20070011244A1 (en) Arrangement for mobile communications and wireless publishing
KR100540328B1 (ko) 이동통신 단말기용 멀티미디어 메시지의 개별 콘텐츠 관리방법
CN101193338A (zh) 彩信编码和传输系统
CN101278531B (zh) 异步消息的接收通知
CN100518231C (zh) 一种利用多媒体短信接收传真的方法
CN101222660A (zh) 接收彩信的方法及装置
CN101304554A (zh) 一种彩信业务系统及其彩信跟踪中心
US20030096598A1 (en) Method for transmitting data
CN101365156A (zh) 获取用户联系人信息的方法和系统
EP2063589A1 (en) Method and apparatus for sending message delivery reports

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant