新足迹

 找回密码
 注册

精华好帖回顾

· 11月 (2014-11-24) Wolongshan · 前杠喷漆+漆面保护=真的不能不求人了【图多手机慎点】 (2017-6-12) Simonjo
· 技术贴 -- 旧式INTERCOM系统的废物利用和使用延伸 (2013-6-17) daniello · 删除 (2014-8-1) 杨士宝
Advertisement
Advertisement
12
返回列表 发新帖
楼主:蓝爸爸

XML中参数的次序 [复制链接]

发表于 2010-10-15 11:14 |显示全部楼层

回复 27# 的帖子

此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
比如发过来的是排序后的数据呢?
Advertisement
Advertisement

2010年度奖章获得者

发表于 2010-10-15 11:17 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
<Root>
    <A Order="1">aaa</A>
    <A Order="2">bbb</A>
</Root>


一切都是數據庫來的, 再問,問什麼要node本身的次序?

特殊贡献奖章

发表于 2010-10-15 11:17 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-10-15 12:02 发表


問的就是schema 裡為什麼要用到次序? 什麼情況下要用到?

否則我只能認為,這個schema 本省就沒有定義好。


你说的有道理,但理论跟实践还是有一定差距
需求可能在变,重新写schema可能导致旧的功能不能用
又要保持schema不变,又要加新功能,可能就要次序sensitive了

2010年度奖章获得者

发表于 2010-10-15 11:18 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-10-15 12:17 发表


你说的有道理,但理论跟实践还是有一定差距
需求可能在变,重新写schema可能导致旧的功能不能用
又要保持schema不变,又要加新功能,可能就要次序sensitive了 ...


那時應為consumer client coder 沒有寫好。本省就應該從寫。
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-10-15 11:20 |显示全部楼层

回复 32# 的帖子

此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
发过来的是按时间或者特别条件排序过的,而排序的字段不见得发到客户端了呢?

2010年度奖章获得者

发表于 2010-10-15 11:24 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
那就說明,沒有順序,隨便客戶那邊怎麼排序。
Advertisement
Advertisement

发表于 2010-10-15 11:48 |显示全部楼层
此文章由 hunter38 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 hunter38 所有!转贴必须注明作者、出处和本声明,并保持内容完整
参数次序无所谓的,  和“XML解析程序" 有关, 应该SEARCH BY NAME, NOT ORDER

发表于 2010-10-15 12:16 |显示全部楼层
此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-10-15 12:02 发表


問的就是schema 裡為什麼要用到次序? 什麼情況下要用到?

否則我只能認為,這個schema 本省就沒有定義好。


嗯,对数据本身来说,次序在大多数情况下不重要

我觉得XML Schema SPEC,之所以强调次序,可能有简化XML Validate的考虑。如果Sequence的order任意的话。要实现一个XML Schema Validate,算法会复杂很多,而这种代价是不必要的。我感觉这是一个Trade-Off,用更严密的检验换取实现的简单化。

发表于 2010-10-15 12:33 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-10-15 12:17 发表

    aaa
    bbb



一切都是數據庫來的, 再問,問什麼要node本身的次序?

你这个跟他那个不一样

发表于 2010-10-15 16:24 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
XML元素 的次序不仅仅是个Validation的问题。如果次序固定的话,解析起来确实省事的多。

举个例子,有的parser真的不建DOM树(至少不建全局Dom树),而是在一行一行的读,因为考虑到文件大占用内存的问题,而且基本上不能往回走。

所以一些XML处理引擎不支持xsd:all,因为不好处理。


如果就传几行数,对面做着个勤奋的程序员,当然他可以比较灵活的用Xpath之类的搞一搞。不过这种用途JSON好像更合适一些。
如果是几十万行,几百万行的文件,你可就让他伤脑筋了。




还有为啥不写schema啊?有了Schema,自己和别人都会方便很多。现在Object<->XML mapping tool 这么多,用起来也很省事,也方便和其他系统整合。

次序指的是不同名称(tag)的元素出现的位置固定,同样名称的元素List,不算次序,像

<val:ValuesGroup TypeDescription="State" xmlns:val="http://www.xxxxx.com.au/sdp/cdm/ValueLists">
            <!--Zero or more repetitions:-->
            <val:Value>NSW</val:Value>
            <val:Value>QLD</val:Value>
            <val:Value>VIC</val:Value>
</val:ValuesGroup>

<val:ValuesGroup TypeDescription="StreetType" xmlns:val="http://www.xxxxx.com.au/sdp/cdm/ValueLists">
            <!--Zero or more repetitions:-->
            <val:Value>Street</val:Value>
            <val:Value>Avenue</val:Value>
</val:ValuesGroup>


谁先谁后无所谓.

评分

参与人数 2积分 +4 收起 理由
cdfei + 2 谢谢奉献
小马识途 + 2 我很赞同

查看全部评分

2007 年度奖章获得者

发表于 2010-10-15 18:18 |显示全部楼层
此文章由 coolioo 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coolioo 所有!转贴必须注明作者、出处和本声明,并保持内容完整
LS说的不错
Advertisement
Advertisement

发表于 2010-10-15 18:28 |显示全部楼层

回复 40# 的帖子

此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
确实不仅仅是Validate,如果是SAX解析的话,有严格的次序就简单多了

2010年度奖章获得者

发表于 2010-10-15 19:06 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
http://hi.baidu.com/binghong_200 ... 50fddaf3d3857f.html

这就是你们说的SAX?

foreach 来读xml,,, java太落后了吧。。。

发表于 2010-10-15 19:10 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
工业上用的话,同时处理很多大xml,估计只能用这种类型引擎。

SAX is not a Java thing BTW

发表于 2010-10-15 19:11 |显示全部楼层

回复 43# 的帖子

此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
SAX是“Simple API for XML” 和DOM不同,主要通过事件响应来解析XML

发表于 2010-10-15 19:23 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
解析XML现在主要用三种方法.

建dom树的,
一点点读的,
转成object的。

我一般喜欢转成Object,省事。
Advertisement
Advertisement

发表于 2010-10-15 19:36 |显示全部楼层

回复 46# 的帖子

此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我觉得“转成object的”不能算解析方法,转成object应该是一个后续步骤。先用DOM或者SAX解析,解析完成之后再转换成object。

发表于 2010-10-15 19:58 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 小马识途 于 2010-10-15 20:36 发表
我觉得“转成object的”不能算解析方法,转成object应该是一个后续步骤。先用DOM或者SAX解析,解析完成之后再转换成object。

我指得是程序员用XMLbean或者JAXB直接把schema编译成类们(classes),创建一个顶级类的对象,用XML实例当参数。接下来可以直接在它(顶级类的实例)的对象图里旅行。

当然XMLBean或者JAXB肯定用DOM或者event triger方法解析,不过对程序员来说是透明的。

event trigger方法很麻烦,所以我从来不用。XML变形也选择了Xquery OVER XSLT

[ 本帖最后由 kawara 于 2010-10-15 21:02 编辑 ]

发表于 2010-10-15 20:07 |显示全部楼层

回复 48# 的帖子

此文章由 小马识途 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 小马识途 所有!转贴必须注明作者、出处和本声明,并保持内容完整
同意,对APP程序员来说,XML解析很多时候已经完全是透明的了。

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部