⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rules.xsd

📁 drools 一个开放源码的规则引擎
💻 XSD
字号:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:rules="http://drools.org/rules" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://drools.org/rules">

  <xs:element name="rule-set">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" minOccurs="0" ref="rules:abstractImport"/>
        
        <xs:element maxOccurs="unbounded" minOccurs="0" ref="rules:application-data"/>

        <xs:element maxOccurs="unbounded" minOccurs="0" ref="rules:abstractFunctions"/>        

        <xs:element maxOccurs="unbounded" minOccurs="0" ref="rules:rule"/>
      </xs:sequence>

      <xs:attribute name="name" type="xs:string" use="required"/>
      <xs:attribute name="description" type="xs:string"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="rule">
    <xs:complexType>
      <xs:sequence>

        <xs:element maxOccurs="unbounded" minOccurs="0" name="parameter">
          <xs:complexType>
            <xs:choice>
              <xs:element ref="rules:abstractClass"/>
              <xs:element ref="rules:class-field"/>
              <xs:element ref="rules:semaphore"/>              
            </xs:choice>
            <xs:attribute name="identifier" type="xs:string" use="required"/>
          </xs:complexType>
        </xs:element>

        <xs:element maxOccurs="unbounded" minOccurs="0" ref="rules:abstractCondition"/>

        <xs:element minOccurs="0" name="duration">
          <xs:complexType>
            <xs:attribute name="days" type="xs:nonNegativeInteger"/>
            <xs:attribute name="hours" type="xs:nonNegativeInteger"/>
            <xs:attribute name="minutes" type="xs:nonNegativeInteger"/>
            <xs:attribute name="seconds" type="xs:nonNegativeInteger"/>
          </xs:complexType>
        </xs:element>

      <xs:element ref="rules:abstractConsequence"/>

      </xs:sequence>
      <xs:attribute name="name" type="xs:string" use="required"/>
      <xs:attribute name="salience" type="xs:integer"/>
      <xs:attribute name="no-loop" type="xs:boolean"/>
      <xs:attribute name="xor-group" type="xs:string"/>     
      <xs:attribute name="description" type="xs:string"/>
    </xs:complexType>

    <!-- All rules must have unique names -->
    <xs:key name="ruleName">
      <xs:selector xpath="rules:rule"/>
      <xs:field xpath="@name"/>
    </xs:key>
  </xs:element>

  <xs:element name="class" substitutionGroup="rules:abstractClass" type="xs:string"/>

  <xs:element name="class-field">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="field" type="xs:string" use="required"/>
          <xs:attribute name="value" type="xs:string" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

  <xs:element name="import" substitutionGroup="rules:abstractImport" type="xs:string"/>  


  <xs:element name="semaphore">
    <xs:complexType>
          <xs:attribute name="type" use="required">
			<xs:simpleType>
			  <xs:restriction base="xs:string">
			    <xs:enumeration value="String"/>			  
			    <xs:enumeration value="Integer"/>
			    <xs:enumeration value="Long"/>			    
			    <xs:enumeration value="Boolean"/>
			    <xs:enumeration value="Char"/>
			    <xs:enumeration value="Short"/>			    
			    <xs:enumeration value="Float"/>			    
			    <xs:enumeration value="Double"/>	
                <xs:enumeration value="List"/>
                <xs:enumeration value="Map"/>
                <xs:enumeration value="Set"/> 			    		    
			  </xs:restriction>
			</xs:simpleType>          
          </xs:attribute>
    </xs:complexType>
  </xs:element>  

  <xs:element name="application-data">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="identifier" type="xs:string" use="required"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>    

  <!-- Abstract Definitions for sementic to create concrete implementations -->

  <xs:element abstract="true" name="abstractImport" type="xs:anyType"/>

  <xs:element abstract="true" name="abstractFunctions" type="xs:anyType"/>  

  <xs:element abstract="true" name="abstractClass" type="xs:anyType"/>

  <xs:element abstract="true" name="abstractClassField" type="xs:anyType"/>

  <xs:element abstract="true" name="abstractCondition" type="xs:anyType"/>

  <xs:element abstract="true" name="abstractConsequence" type="xs:anyType"/>

</xs:schema>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -