• JBPM流程部署校验之XSD简介


    -

    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。

          利用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文件

          



       

          
  • 相关阅读:
    动态规划精讲(一)LC最长公共子序列
    0-1背包
    折线分割平面
    母牛的故事
    数塔
    70. 爬楼梯
    文件修改的两种方式
    文件处理练习
    文件处理
    购物车理解
  • 原文地址:https://www.cnblogs.com/wufengtinghai/p/2136930.html
Copyright © 2020-2023  润新知