Copy of WorkflowDefinition.xsd for XML validation


You can use the following copy of the WorkflowDefinition.xsd to validate your XML code after you finish authoring it.

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
   targetNamespace="http://www.bmc.com" xmlns="http://www.bmc.com"
   elementFormDefault="qualified">

   <!-- The root element -->
   <xs:element name="workflow">
       <xs:complexType>

       <!--A workflow contains at least one of either an input page, input group, or parameter, in any order-->
           <xs:sequence>
               <xs:choice minOccurs="1">
                   <xs:element name="page" type="page" />
                   <xs:element name="group" type="group" />
                   <xs:element name="parameter" type="parameter" />
               </xs:choice>
           </xs:sequence>
       </xs:complexType>
   </xs:element>

   <xs:complexType name="parameter">
     <xs:all>
       <xs:element name="defaultValue" type="defaultValue"
           maxOccurs="1" />

       <!--  possibleValues are required for Enum parameters -->
       <xs:element name="possibleValues" type="possibleValues"
           maxOccurs="1" />
       <!--  allowedJobTypes are optional for job type parameters -->
       <xs:element name="allowedJobTypes" type="allowedJobTypes"
           maxOccurs="1" />
     </xs:all>
     <xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="description" type="xs:string" use="optional"
     default="" />
     <xs:attribute name="prompt" type="xs:string" use="optional"
         default="" />
     <xs:attribute name="type" type="dataType" use="optional"
         default="string" />
     <xs:attribute name="isRequired" type="xs:boolean" use="optional"
         default="false" />
   </xs:complexType>

   <xs:simpleType name="dataType">
       <xs:restriction base="xs:string">
           <xs:enumeration value="string" />
           <xs:enumeration value="numeric" />
           <xs:enumeration value="boolean" />
           <xs:enumeration value="datetime" />
           <xs:enumeration value="password" />
           <xs:enumeration value="file" />
           <xs:enumeration value="directory" />
           <xs:enumeration value="job" />
           <xs:enumeration value="target" />
           <xs:enumeration value="serverGroup" />
           <xs:enumeration value="enum" />
           <xs:enumeration value="xml" />
           <xs:enumeration value="jobRunId" />
           <xs:enumeration value="list_string" />
           <xs:enumeration value="list_numeric" />
           <xs:enumeration value="list_boolean" />
           <xs:enumeration value="list_datetime" />
           <xs:enumeration value="list_password" />
           <xs:enumeration value="list_file" />
           <xs:enumeration value="list_directory" />
           <xs:enumeration value="list_job" />
           <xs:enumeration value="list_target" />
       </xs:restriction>
   </xs:simpleType>

   <xs:simpleType name="jobType">
       <xs:restriction base="xs:string">
           <xs:enumeration value="ACL Push Job" />
           <xs:enumeration value="Audit Job" />
           <xs:enumeration value="Batch Job" />
           <xs:enumeration value="BL Package Deploy Job" />
           <xs:enumeration value="Compliance Job" />
           <xs:enumeration value="Component Discovery Job" />
           <xs:enumeration value="Deregister Configuration Objects Job" />
           <xs:enumeration value="Distribute Configuration Objects Job" />
           <xs:enumeration value="File Deploy Job" />
           <xs:enumeration value="NSH Script Job" />
           <xs:enumeration value="Solaris Patching Job" />
           <xs:enumeration value="AIX Patching Job" />
           <xs:enumeration value="Windows Patching Job" />
           <xs:enumeration value="RedHat Linux Patching Job" />
           <xs:enumeration value="Oracle Enterprise Linux Patching Job" />
           <xs:enumeration value="SuSE Linux Patching Job" />
           <xs:enumeration value="Provision Job" />
           <xs:enumeration value="UCS Provision Job" />
           <xs:enumeration value="Snapshot Job" />
           <xs:enumeration value="Software Deploy Job" />
           <xs:enumeration value="Update Server Properties Job" />
           <xs:enumeration value="Upgrade Model Objects Job" />
           <xs:enumeration value="VSM Discovery Job" />
           <xs:enumeration value="Virtual Guest Job" />
       </xs:restriction>
   </xs:simpleType>

   <!--  Possible values contains at least one "value" -->
   <xs:complexType name="possibleValues">
       <xs:all>
           <xs:element name="value" type="xs:string" minOccurs="1" />
       </xs:all>
   </xs:complexType>

   <xs:complexType name="defaultValue">
       <xs:all>
           <xs:element name="value" type="xs:string" minOccurs="1" />
       </xs:all>
   </xs:complexType>

   <xs:complexType name="allowedJobTypes">
       <xs:all>
           <xs:element name="jobType" type="jobType" minOccurs="1" />
       </xs:all>
   </xs:complexType>

   <!--  Input group contains at least one parameter -->
   <xs:complexType name="group">
       <xs:all>
           <xs:element name="parameter" type="parameter" minOccurs="1" />
       </xs:all>
       <xs:attribute name="name" type="xs:string" use="required" />
       <xs:attribute name="description" type="xs:string" use="optional"
           default="" />

   </xs:complexType>

   <!--  An input page contains at least one of either an input group or parameter, in any order-->
   <xs:complexType name="page">
       <xs:sequence>
           <xs:choice minOccurs="1">
               <xs:element name="group" type="xs:string" />
               <xs:element name="parameter" type="xs:string" />
           </xs:choice>
       </xs:sequence>

       <xs:attribute name="name" type="xs:string" use="required" />
       <xs:attribute name="description" type="xs:string" use="optional"
           default="" />

   </xs:complexType>

</xs:schema>

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*