JBPM流程部署校验


JBPM流程定义校验之XSD简介
 
JBPM的流程定义语言是JPDL,其本身是一种自定义结构的xml;JBPM的流程定义结构比较复杂,不仅元素的类型多样,而且对数据类型也有比较严格的要求,同时有很多元素有着相同的元素和属性等;做为流程引擎应该具有校验流程定义的有效性的能力,从而保证不会再流程流转过程中发生错误;同时流程引擎应该内置这种校验能力,而不能依赖流程设计器的校验!面对如此复杂的xml,JBPM首先使用XSD进行验证,然后再解析流程定义的同时进行一些XSD无法实现的校验!今天简单的介绍一下XSD的相关知识,然后接下来的将分别介绍在javascript、C#、java中怎样利用XSD对xml进行校验。
 XSD 是基于 XML 的 DTD 替代者,XSD 可描述 XML 文档的结构,XSD即是XML Schema Definition;XSD 的作用是定义 XML 文档的合法构建模块,类似 DTD。

JBPM4.4部署在Tomcat6以上的版本jar包冲突

JBPM流程实例(PV)Process Variables

JBPM流程实例(PI)Process Instance
 
利用XSD我们可以对xml文档实现如下控制
 • 定义可出现在文档中的元素
• 定义可出现在文档中的属性
• 定义哪个元素是子元素
• 定义子元素的次序
• 定义子元素的数目
• 定义元素是否为空,或者是否可包含文本
• 定义元素和属性的数据类型
• 定义元素和属性的默认值以及固定值
XSD与DTD比较有如下优势
 • XML Schema 可针对未来的需求进行扩展
• XML Schema 更完善,功能更强大
• XML Schema 基于 XML 编写
• XML Schema 支持数据类型
• XML Schema 支持命名空间
现在我们有如下格式的xml文档
 

<?xml version="1.0"?>
 <note>
 <to>George</to>
 <from>John</from>
 <heading>Reminder</heading>
 <body>Don't forget the meeting!</body>
 </note>
 
那么我们相应的XSD文件
 

<?xml version="1.0"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3school.com.cn" elementFormDefault="qualified">
 <xs:element name="note">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="to" type="xs:string"/>
 <xs:element name="from" type="xs:string"/>
 <xs:element name="heading" type="xs:string"/>
 <xs:element name="body" type="xs:string"/>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:schema>
 
那么我们怎样在xml中引入XSD呢?
 
通过schemaLocation引用


<?xml version="1.0"?>
 <note xmlns="http://www.w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
 <to >George</to>
 <from>John</from>
 <heading>Reminder</heading>
 <body>Don't forget the meeting!</body>
 <name></name>
 </note>
 

<?xml version="1.0"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3school.com.cn" xmlns="http://www.w3school.com.cn" elementFormDefault="qualified">
 <xs:element name="note">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="to" type="xs:string"/>
 <xs:element name="from" type="xs:string"/>
 <xs:element name="heading" type="xs:string"/>
 <xs:element name="body" type="xs:string"/>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:schema>
 
通过noNamespaceSchemaLocation引用
 

<?xml version="1.0"?>
 <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="note.xsd">
 <to >George</to>
 <from>John</from>
 <heading>Reminder</heading>
 <body>Don't forget the meeting!</body>
 <name></name>
 </note>
 

<?xml version="1.0"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3school.com.cn" elementFormDefault="qualified">
 <xs:element name="note">
 <xs:complexType>
 <xs:sequence>
 <xs:element name="to" type="xs:string"/>
 <xs:element name="from" type="xs:string"/>
 <xs:element name="heading" type="xs:string"/>
 <xs:element name="body" type="xs:string"/>
 </xs:sequence>
 </xs:complexType>
 </xs:element>
 </xs:schema>
 
为IDE开发环境添加XSD,开启xml只能提示功能
 
Visual studio添加XSD
 
默认情况下,我们只需要将相应的xsd文件拷贝到Visual studio 安装目录\xml\schemas目录下即可


 

eclipse添加XSD

• 点击窗口 --> 属性(Windows --> Preferences)
• 选择XML --> 目录(XML --> CataLog)
• 点击添加(Add)

• 添加XML目录(Add XML Catalog Entry)的窗口打开
• 点击map-icon的图标下面的按钮并选择文件系统(File System)
• 在打开的对话框中, 选择相应的XSD文件

更多详情见请继续阅读下一页的精彩内容:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9..
  • 14
  • 下一页
【内容导航】
第1页:XSD简介 第2页:Javascript利用XSD校验XML
第3页:.net利用XSD校验XML 第4页:Java利用XSD校验XML
第5页:部署环境初始化 第6页:流程支持节点扩展
第7页:部署服务相关对象扩展 第8页:部署解析器相关对象扩展
第9页:部署数据表分析 第10页:流程定义实体对象分析
第11页:流程版本升级 第12页:流程实例迁移
第13页:流程实例迁移解析与扩展 第14页:Group节点分析

相关内容