歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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包沖突 http://www.linuxidc.com/Linux/2014-04/99476.htm

JBPM流程實例(PV)Process Variables http://www.linuxidc.com/Linux/2014-06/102859.htm

JBPM流程實例(PI)Process Instance http://www.linuxidc.com/Linux/2014-06/102858.htm
 
利用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文件

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/102860p2.htm

Copyright © Linux教程網 All Rights Reserved