当前位置:文档之家› 基于元数据的信息管理系统

基于元数据的信息管理系统

北京传智播客教育
—高级软件人才实作培训专家! XSD的简单类型定义simpleType

值的限定(pattern和enumeration)
<car>Aud1</car>
<element name="car" type="carType"/>
北京传智播客教育
北京传智播客教育
—高级软件人才实作培训专家! Schema语言(XSD)主要数据类型

基本类型

简单类型simpleType
复杂类型complexType

北京传智播客教育
—高级软件人才实作培训专家! XSD 基本类型
最常用的类型是:string decimal integer boolean date time 例子: <lastname>Smith</lastname> <age>28</age> <dateborn>1980-03-27</dateborn> 这是相应的简易元素定义: <element name="lastname" type="string"/> <element name="age" type="integer"/> <element name="dateborn" type="date"/>
北京传智播客教育
—高级软件人才实作培训专家! 系统中使用到的相关技术点汇总



Schema JAXB Velocity Javassist springSecurity springWs Extjs
北京传智播客教育
—高级软件人才实作培训专家! XML Schema 语言
数据 元数据
北京传智播客教育
—高级软件人才实作培训专家! 基于元数据的开发平台的作用

通过配置方式快速搭建中小型信息管理 系统

可用于分布式架构(权限管理 )
北京传智播客教育
—高级软件人才实作培训专家! 元数据系统中的信息类

信息类
通过元数据方式定义出来的一个信息节点就称为信息 类,一个信息类对应数据库中的一张表,对应 Hibernate中的一个实体类。一个信息类由多个信息属 性组成,每个信息属性对应表中的一个字段,对应实 体类中的一个成员变量。
实体映射文件
实体类
动态加载
Hibernate
元数据系统
北京传智播客教育
—高级软件人才实作培训专家! 树的两种存储方式比较

XML方式
加载时无需进行处理,天然就是树形结构 适合于后台的配置管理功能,并发性差


数据库表方式(id,text,parentid)
加载时需进行排序处理 适合大量用户操作的树,并发性好

veloeclipse /svn/trunk/ update/ 北京传智播客教育
—高级软件人才实作培训专家! 模板引擎运行原理
模板文件
模板引擎
输出
数据
北京传智播客教育
—高级软件人才实作培训专家! Velocity基本语法
—高级软件人才实作培训专家! XSD的简单类型定义simpleType

合并了两个简单类型的简单类型
北京传智播客教育
—高级软件人才实作培训专家! XSD的简单类型定义simpleType

定义单个 simpleType 定义的集合
北京传智播客教育
北京传智播客教育
—高级软件人才实作培训专家! JAXB反序列化(xml转对象)
JAXBContext jaxbContext ; Object object = null ; jaxbContext = JAXBContext.newInstance(clazz); StreamSource stremSource = new StreamSource(inputStream) ; //反序列化 Unmarshaller unmarshaller = jaxbContext.createUnmarshaller() ; object = unmarshaller.unmarshal(stremSource) ;

北京传智播客教育
—高级软件人才实作培训专家! “信息目录管理” 业务用例分析
技术点: ExtJs tree控件 JAXB(Java Architecture for XML Binding) OXM Schema(是用于描述和规范XML文档的逻辑结构的一种语言)

JAXBContext、Marshaller、Unmarshaller
北京传智播客教育
—高级软件人才实作培训专家! JAXB序列化(对象转xml)
JAXBContext context = JAXBContext.newInstance(clazz); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); m.setProperty(Marshaller.JAXB_ENCODING, charsetName); m.setProperty(Marshaller.JAXB_FRAGMENT, false); if( schemaLocation != null && schemaLocation.trim()!=""){ m.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocation); } outputStream = new FileOutputStream("f:/temp/xxx.xml"); m.marshal(object, outputStream);

XML Schema 语言也称作 XML Schema 定义(XML Schema Definition, XSD) XML Schema作用(定义 XML 文档的合法构建模块,类似 DTD) 定义可出现在文档中的元素 定义可出现在文档中的属性 定义哪个元素是子元素 定义子元素的次序 定义子元素的数目 定义元素是否为空,或者是否可包含文本 定义元素和属性的数据类型 定义元素和属性的默认值以及固定值
北京传智播客教育
—高级软件人才实作培训专家! 定义组成XML元素和属性


element 元素定义一个xml元素 element自身的主要属性 : id、name、type attribute 元素定义一个xml元素的属性 attribute 自身的主要属性: id、name、ref 、type、use
北京传智播客教育
—高级软件人才实作培训专家!
JAXB架构图
北京传智播客教育
—高级软件人才实作培训专家! JAXB实现包括以下组件
Schema编译器(xjc.exe) xjc -d java类目录路径 -p 包名 schema文 件名 Schema生成器 (schemagen.exe) 绑定运行时框架 (rt.jar下的javax.xml.bind包)
—高级软件人才实作培训专家! XSD的复杂类型定义complexType

复杂类型的元素是包含其他元素和/或属性的 XML 元 素。
北京传智播客教育
—高级软件人才实作培训专家! XML对Schema进行引用
指定默认的命名空间 指定带前缀的命名空间 声明xsi标准命名空间





变量定义、引用 #set 变量名 定义变量 ,例如:#set( $foo = "bar" ) $变量名 用来输出引用的变量, 例如:$foo {} 用来明确标识Velocity变量 ! 用来强制把不存在的变量显示为空白 java对象的引用 $对象.属性 用来输出对象的属性 $对象.方法 调用对象的方法 $对象 调用对象的toString()方法输出 {} 用来明确标识对象 ! 用来强制把不存在的对象显示为空白 条件判断语句 #if 、#elseif 、#else、#end 循环语句 #foreach、in #end 注释 ## 和 #* *# 北京传智播客教育
北京传智播客教育
—高级软件人才实作培训专家! “信息元数据定义” 业务用例分析
技术点: Velocity模板框架 Javassist字节码框架 Hibernate动态加载
北京传智播客教育
—高级软件人才实作培训专家! “信息数据维护” 业务用例分析
使用xsi:schemaLocation为每个命名空间指
定具体的schema文件
北京传智播客教育
—高级软件人才实作培训专家! JAXB概述
JAXB(Java Architecture for XML Binding,Java XML绑定架构)是一个业界的标准,是一项可以根据 XML Schema产生Java类的技术。 该技术可以提供将XML实例文档反向生成Java对 象树的方法。能将Java对象树的内容重新写到XML实 例文档。 另一方面来讲,JAXB提供了快速而简便的方法将 XML模式绑定到Java对象,从而使得Java开发者在 Java应用程序中能方便加载XML数据,并以XML文件 作为数据存储方式。
北京传智播客教育
—高级软件人才实作培训专家! 基于元数据开发平台功能介绍

信息类的树形管理 信息类的元数据定义 信息类的CRUD功能 信息类的访问控制 基于Spring Web Services的信息类服务接口
相关主题