关于XMLBeans/shcema,不得不说的话题

xml

知道了xml相当于会浏览数据库的表
知道了xpath相当于知道了sql
知道了schema相当于知道建表了

所以,schema/xpath一定要明白,而且,了解了以后相当好用.

我有一个多年的梦想,至少两年,现在为止,部分实现,因为发现了xmlbeans

简单的说,xmlbeans是针对schema生成类的,就象我们要对数据库里面的表结构生成class一样.
这个东西是bean捐赠给apache的,出自名门,对schema支持的相当全面.

简单看看这样一个schema:
<xsd:element name="field">
    <xsd:complexType mixed="true">
        <xsd:attribute name="name" type="xsd:string" use="optional"/>
        <xsd:attribute name="label" type="xsd:string" use="optional"/>
    </xsd:complexType>
</xsd:element>
运行scomp test.xsd,生成的Field类大致如下:
class Field{
  String getName();
  void setName(String);
  String getLabel();
  voidSetLabel(String);
}

如果schema中有复杂的嵌套complexType定义,就相应的生成复杂的类,并且支持数组等类型.
详细例子请参考Getting started with XMLBeans

xmlbeans的主要特点如下:
对schema生成强Java类型
生成的类型可以读取相应schema的文档,或者DOM
加载数据后可以根据schema验证.
可以对XmlObject取得对应的SchemaType知道其Schema定义.这是dom3的特性
内建xpath查询
强大的输出到xml.(最简单的方法是toString())

schema是个强大的类型,包括树型类型定义语言.webservice的定义就是依靠schema.
virual studio中数据表生成dataset也是先把数据表定义转换为xsd,然后根据xsd生成强类型dataset..

schema另外一个强大之处在于schema之间的相互引用.完全可以语言定义好一些业务元数据,然后在各种其它shema中引用.并且这些定义是基于QName区分的(类似于网址).完全可以生成一个全球范围的shema知识库,大家相互引用,产生共同标准,比如订单/设备描述等等..并且在某个Type中指明,哪些webservice可以提供这个Type的相关服务.

schema定义的强大的复杂结构,可以用于各种场合,以前曾经尝试过用schema来定义整个网站页面的输入和输出.当时限于条件,只是利用shema生成了xsl,样本数据和database定义.schema只是一种定义,并不是限定了传输数据必须是xml. 如果用了xmlbeans,可以生成强类型的DTO,并且对用户录入进行验证.甚至根据schema利用echo等动态构造网站的framework动态生成客户端界面.

也许对xmlbeans还不熟,觉得有些遗憾的地方:
1. 编译过的schemaType不能得到org.w3c.schema....包下XmlObject的原始类,如果用来分析schema结构恐怕不方便.
2. 动态构造schema不能直接拿来验证数据,需要编译成schemaType才能用于验证.

schemas目录下面有个s4s目录,就是schema for schema,打开XMLSchema.xsd就会想到鸡生蛋蛋生鸡的问题.编译看看,很有趣 :) 如果没有xmlspy的话, 写schema是个比较痛苦的事情.用schema类来写schema就容易的多,因为有强类型提示,而且只会提示允许存在的类型.

下次有空会讲讲如何生成schema的schema.这是我冥思苦想了几天的问题

一些有用的资源:
让生成的类实现特定接口.
http://wiki.apache.org/xmlbeans/ExtensionInterfacesFeature

 

时间: 2024-08-04 02:30:45

关于XMLBeans/shcema,不得不说的话题的相关文章

挑选家用交换机的技巧

伴随着网络的迅速普及,交换机的"身影"也开始出现在不少普通个人用户家庭中.不过许多家庭用户在挑选交换机时,往往都会将注意力集中到交换机的扩展性能上,他们一味地追求交换机的接口数要多:其实,要想让家庭网络的性能发挥到最佳,挑选一款整体性能不错的交换机,才是至关重要,毕竟性能优越的交换机可以确保网络传输的稳定性.提到挑选交换机,相信各位并不十分陌生,可是对于家用交换机的挑选,各位关注的可能并不是很多.于是,准备挑选家用交换机的个人用户,在实际挑选时,会有点不知所措,毕竟扩展性能并不代表整体

SEO新人总结自己在SEO道路上犯的错误

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 漫漫站长路,总会错几步,简单的说一下个人认为seo之中最容易被认为是错的地方以及个人在哪些方面犯过的错误,希望能给广大SEO新手朋友们一点借鉴,因为很有可能你们在以后的工作生涯之中,你自己也会面对得到,既然是网站站长,那么相信seo将会慢慢的融入到每一个角落里吧,毕竟只有这样,才能将网站整体性质提高,更好的为seo服务,这里就分享一下自己觉得

从H5到购物节,玩转O2O

从杜蕾斯到可口可乐,作为社交营销的主流玩法,"得屌丝者得天下"已经成为大多数品牌拉近和网民距离的黄金法则,但接地气的同时,局限性也显而易见--传播受众并不一定的是购买群体,真正的目标客户群体不感冒甚至引起反感;而为了迎合网络环境,品牌形象改变,目标群体好感度降低的例子也不在少数. 当我们在谈论社交营销的时候,其实我们谈论的是如何把思维转化成具体适用方式.快消品的社交营销之路该怎样发展,很多人都还处于观望中. 就像交朋友并不总是需要迎合奉承,也并不是所有品牌都适合低到尘埃才能在社交媒体上

上海被评为全球最安全的资金港

by <东地产>梁继贤 金融危机冲垮了曼哈顿的房价.有"抗跌老大"之称的曼哈顿城在次贷危机后的08年仅一个四季度房价就下滑了9.5%,金融圣地遭遇了05年以来最大的一次"惨跌". 以"造梦"著名的阿联酋第二大酋长国迪拜骤然梦醒:房价过半惨跌仅仅是由于一个"延期还债"的公告.债权人在被"坏账预期"的折磨中即使做梦也不得安宁. 投资者带着资金四处逃亡,所及之处满目沧桑:世界那么小,哪里才是相对安全的

网站推广:携手共赢VS单打独斗

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 竞争与合作,从来都是关系扑朔迷离的一对,矛盾?共生?没有一个公认的结论.关键问题是我们所有的活动都要通过两者的权衡较量达到赢的效果,不管是东风压倒西风,西风吹到东风,只要抓住老鼠就是好猫! 俗话说,一个篱笆三个桩,一个好汉三个帮.网站,网络,网站存在网络之中,网站就是这张网中的一个个结点,任何一个网站都不可能离开其他站点绝然独存.如何让自己结

微博营销案例:用简单话题组织兴奋型的讨论

用简单话题组织兴奋型的讨论 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 在微博上有许多种互动方法,其中有一种是话题讨论.好的话题是要经过团队的头脑风暴产生的,黑黛公司的微博团队(目前14个直营中心70名员工参与微博)经常在群里讨论,期待着能够捕捉到好的话题.作为顾问,我的一个责任就是要帮助黑黛发现可以在博客和微博上展开讨论的话题,并且给予具体策划,扩大它的外延影响力. 有一次,我看到了黑黛上海总部刘鹏主任在企

海尔电视官微发起的“MOOKA走南闯北”话题

编写顺口溜的青岛辣妈,制作搞怪长微博的天津卫妹子--海尔电视官微发起的"MOOKA走南闯北"话题吸引不少用户前来分享自己与MOOKA电视的点点滴滴,讲述内容不乏温馨与幽默.虽然烟台和重庆地理方位相距两千多公里,但是在烟台网友"dyw0315"和重庆网友"新市民民工"的眼中,MOOKA却有相似的经历:受到全家三代人的喜爱.据了解,网友"dyw0315"是偷偷选购了MOOKA电视送给岳父岳母的,没想到MOOKA操作简单让二老很欢喜

微博曝某公司在58同城上“作弊”郭美美话题再升级

继之前微博中热炒的"郭美美"话题及事件稍稍平息没多久,近日,有 网友透露微博中再次针对此话题报出相关新闻. 6月28日,新浪微博中有网友发出在58同城网中看到,某公司于当日疯狂修改其之前上传的信息内容,从法人到公司行业.性质.地址.以及和红十字会的关系等等,原本可能被网友挖掘人肉的信息,全部修改的面目全非,不得不说有"此地无银三百两"的嫌疑. 此微博内容发出后,立即引来几万人的关注转发和评论.有人说这个事件不但郭美美火了,58同城也随之火了起来,还有网友评论说,&q

美国黑黛:用简单话题组织兴奋型的讨论

在微博上有许多种互动方法,其中有一种是话题讨论.好的话题是要经过团队的头脑风暴产生的,黑黛公司的微博团队(目前14个直营中心70名员工参与微博)经常在群里讨论,期待着能够捕捉到好的话题.作为顾问,我的一个责任就是要帮助黑黛发现可以在博客和微博上展开讨论的话题,并且给予具体策划,扩大它的外延影响力. 有一次,我看到了黑黛上海总部刘鹏主任在http://www.aliyun.com/zixun/aggregation/8312.html">企业博客上写的一篇文章<几十顶帽子下岗的故事&g