系统A导出XML文档,现在要让系统B来从该XML文档中获取数据信息。
问:
1.系统B是如何知道XML中每一项数据的具体含义?
2.系统A与系统B是否应该共同遵守一个数据标准,比如系统A中定义学生的属性有:姓名、年龄、身高、学号、住址。那么系统B中学生的属性也应该是:姓名、年龄、身高、学号、住址? 次序不能变,内容也不能变,参与数据交换的系统必须遵守同样的标准,这样的思想对吗?
3.如果第2说的对的话,那么XML用于数据交换的可扩展性又体现在哪里?我们有到哪里去找这个行业的统一标准?
4.如果第2说的错的话,那么XML的这种数据交换机制有谁能给我讲讲?
5.其实说直接点就是,XML是如何实现跨平台\跨操作系统的数据交换的.
谢谢

解决方案 »

  1.   

    --------------------------------
    系统B是如何知道XML中每一项数据的具体含义?
    --------------------------------两个系统之间传输数据数据,一般来说首先要定义格式,如果是不同企业的,首先要通过两个企业业务部门的协商,然后才是技术人员的格式定义。光靠XML判断那一个元素是干什么的,现在不太显示。但是有了行业标准就不一样了,在标准中可以定义行业的数据字典,现实世界的对象,比如说订单可以用XML来描述,甚至包括其处理流程也可以包括在XML中,只要有了行业数据字典就可以互通语义信息了。国际上有不少组织定义了标准,比较流行的包括RosettaNet, ebXML。国内有个cnXML,不少大的IT厂商开始支持cnXML,我对它不乐观,它的推广工作进展太慢。
    你可以去www.cnxml.org.cn看看,干什么把域名都是中文的句号?做秀!
    --------------------------------
    2.系统A与系统B是否应该共同遵守一个数据标准,比如系统A中定义学生的属性有:姓名、年龄、身高、学号、住址。那么系统B中学生的属性也应该是:姓名、年龄、身高、学号、住址? 次序不能变,内容也不能变,参与数据交换的系统必须遵守同样的标准,这样的思想对吗?
    --------------------------------
    如果两个(分布式的)企业应用(系统)需要数据交换,格式应该有双方开发人员共同协商。如果你一个人写两个应用的数据接口,又不考虑扩展性和兼容性的话,可以采用固定格式,比如说就传文本块就可以了。
    如果考虑扩展性和兼容性,就比较麻烦了。虽然传输的方法很多,使用XML没有什么特别好的方法,解析,格式翻译,内容翻译是必须的。
    我看过一些文章,他们的理论是模拟数据库对数据表的定义,定义(文本)数据块的结构和块与块之间的关系,然后处理这些文本块(把数据块直接导入数据库之后再处理,是最简单快捷的)。
    还有就是你的方法,用“纯”XML表述,效率很低,元素需要大量标识,占用存储空间。但是比上一种语义清楚(对于人而言)。有些跑题了?哈!---次序不能变,内容也不能变,参与数据交换的系统必须遵守同样的标准,这样的思想对吗?---
    显然是错误的,你自己定义的标准,可以自己固定死,可是强求别人就不可以了吧。而且程序应用又能力来用一个视图屏蔽元素顺序的差异---------------------------------
    3.如果第2说的对的话,那么XML用于数据交换的可扩展性又体现在哪里?我们有到哪里去找这个行业的统一标准?
    ---------------------------------
    XML用于数据交换的可扩展性,是指语义上的,没有行业数据字典无从扩展
    去看看cnXML,不过你会失望的。
    ------------------------------
    4.如果第2说的错的话,那么XML的这种数据交换机制有谁能给我讲讲?
    ------------------------------
    我建议你如果是以数据为中心之间的数据交换,建议你传输文本数据块,然受把数据块加到XML中去,而不是把字段细化到元素------------------------------
    5.其实说直接点就是,XML是如何实现跨平台\跨操作系统的数据交换的.
    ------------------------------
    我总结一些,XML没有什么了不起的,没有行业标准,it's nothing!!!
    目光长远,还是应用使用它,毕竟它有大量的工具支持和免费源码。
    两个系统之间数据交换,在目前没有行业数据字典的情况下,必须进行语义的沟通。而且最好首先有双方的业务人员进行,把流程理清楚,然后传输数据。
    --------
    跨平台\跨操作系统
    --------
    可以使用RDBMS的通用性,屏蔽跨异构系统
    以上为个人意见,欢迎批评
      

  2.   

    首先非常感谢 你的的答复,不过我好想问几个问题:
    *****************************************
    问题1:这两个系统之间进行数据交换是毫无疑问的。对吗?
    *****************************************
    系统A中学生结构:
    <学生>
      <姓名>jack</姓名>
      <年龄>25</年龄>
      <性别>male</性别>
      <系别>computer</系别>
      <籍贯>beijing</籍贯>
    </学生>
    系统B中中学生结构:
    <学生>
      <姓名>marry</姓名>
      <年龄>24</年龄>
      <性别>female</性别>
      <系别>computer</系别>
      <籍贯>shanghai</籍贯>
    </学生>
    *****************************************
    问题2:这两个系统之间进行数据交换,按你的意思也可以实现,但是系统B如何识别中顺序不一致,我认为顺序不一致,那么也就是结构不一致,故不可以进行数据交换。对吗?
    *****************************************
    系统A中学生结构:
    <学生>
      <姓名>jack</姓名>
      <年龄>25</年龄>
      <性别>male</性别>
      <籍贯>beijing</籍贯>
      <系别>computer</系别>
    </学生>
    系统B中中学生结构:
    <学生>
      <姓名>marry</姓名>
      <年龄>24</年龄>
      <性别>female</性别>
      <系别>computer</系别>
      <籍贯>shanghai</籍贯>
    </学生>
    *****************************************
    问题3:这两个系统不能够实现基于XML的数据交换,对吗??
    *****************************************
    系统A中学生结构:
    <学生>
      <姓名>jack</姓名>
      <年龄>25</年龄>
      <性别>male</性别>
      <系别>computer</系别>
      <籍贯>beijing</籍贯>
      <总成绩>222</总成绩>
    </学生>
    系统B中中学生结构:
    <学生>
      <姓名>marry</姓名>
      <年龄>24</年龄>
      <性别>female</性别>
      <系别>computer</系别>
      <籍贯>shanghai</籍贯>
    </学生>
    *******************
    问题4:次序不一致,如何解决?
    ****************
      

  3.   

    建议你看看有关dtd的描述,或者到w3c.org去看看有关xml的基础知识
      

  4.   

    ---------------------------------
    我认为顺序不一致,那么也就是结构不一致,故不可以进行数据交换。对吗?
    这两个系统不能够实现基于XML的数据交换,对吗??
    次序不一致,如何解决?
    ---------------------------------
    数据交换和数据格式/顺序没有什么关系。
    顺序不一致,可以使用标签--<系别>等区分语义,数据交换的双方对自己需要什么的是了解的,顺序不一致可以自己调整。标签代表数据语义,程序处理时可以获得标签,就可以获得语义,知道语义就可以知道该数据应该放到自己系统的位置。
      

  5.   

    你可以用DOM技术或SAX技术分析XML呀,就算顺序不一样,你不也是知道两边的顺序的吗?