加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

关于XMLBeans/shcema

发布时间:2020-12-17 02:53:03 所属栏目:安全 来源:网络整理
导读:知道了xml相当于会浏览数据库的表 知道了xpath相当于知道了sql 知道了schema相当于知道建表了 所以,schema/xpath一定要明白,而且,了解了以后相当好用. 我有一个多年的梦想,至少两年,现在为止,部分实现,因为发现了xmlbeans 简单的说,xmlbeans是针对s
知道了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就容易的多,因为有强类型提示,而且只会提示允许存在的类型.?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读