It's all about the answers!

Ask a question

Process Configuration Source XML not showing proposals


Jorge Eduardo Garza Martinez (112) | asked Aug 08 '17, 6:02 p.m.

We created a Plug In for RTC 5.0.2, as port of the plug in there is an XSD that describes the configuration of the plug in.The configuration XML is inserted on the process configuration source as a follow up action


but the XML Editor do not show proposals for some elements. We use several choose in the work-item-element section because none of the elements inside are required but at least one must be use. The XML file is like this:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="cio.jazz.rtcext.workitem.extensions.slack.service/server/slackNotification_v3"
    targetNamespace="cio.jazz.rtcext.workitem.extensions.slack.service/server/slackNotification_v3"
    xmlns:process="http://com.ibm.team.process"
    attributeFormDefault="unqualified" elementFormDefault="qualified">
   
    <xsd:annotation>
        <xsd:documentation xml:lang="en">
            Licensed Materials - Property of IBM
            (c) Copyright IBM Corporation 2010. All Rights Reserved.
           
            Note to U.S. Government Users Restricted Rights:  Use,
            duplication or disclosure restricted by GSA ADP Schedule
            Contract with IBM Corp.
        </xsd:documentation>
        <xsd:documentation>
            This file contains type definitions for the send data to
            slack channel operation participant. It defines the triggerType
            to define its trigger work item type, state and other changes and
            the slackType to contain the target slack channel information.
        </xsd:documentation>
    </xsd:annotation>
   
    <xsd:import namespace="http://com.ibm.team.process" schemaLocation="platform:/plugin/com.ibm.team.process.common/schema/ProcessSettings.xsd"/>
   
    <xsd:element name="followup-action" substitutionGroup="process:followup-action" type="sendDatatoSlackType"/>

    <xsd:complexType name="sendDatatoSlackType">
        <xsd:annotation>
            <xsd:documentation>
                This type defines the Send Data to Slack type. It is a
                subtype of the abstract process:followupActionType. This
                restriction, along with the substitutionGroup specification
                above, makes it possible to add    configuration of the participant
                to a project or team area's    process configuration. Note the
                forward references to the trigger and slack types defined below.
                Take particular note of the id attribute. It is required and has
                a fixed value that points to our operation participant extension.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexContent>
            <xsd:restriction base="process:followupActionType">
                <xsd:sequence>
                    <xsd:element name="configuration-area" type="configurationAreaType" minOccurs="1" maxOccurs="unbounded" use="required" />
                </xsd:sequence>
                <xsd:attribute name="id" type="xsd:string" use="required" fixed="cio.jazz.rtcext.workitem.extensions.slack.SlackNotificationPlugInV3"/>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>
   
    <xsd:complexType name="triggerType">
        <xsd:annotation>
            <xsd:documentation>
                This type defines the work item type to be monitored and
                the work item state that should trigger the operation
                participant.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>           
            <xsd:element name="work-item-element" type="workItemDefinitionType" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute name="send-default-if-not-found" type="xsd:boolean" use="required"/>
    </xsd:complexType> 
   
    <xsd:complexType name="workItemSearchDefinitionType">
        <xsd:choice>
            <xsd:element ref="work-item-severity" minOccurs="1" maxOccurs="1"/>
            <xsd:sequence>          
                <xsd:element ref="work-item-state" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="work-item-severity" minOccurs="0" maxOccurs="1"/>    
            </xsd:sequence>     
            <xsd:sequence>          
                <xsd:element ref="work-item-operation"  minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="work-item-state" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="work-item-severity" minOccurs="0" maxOccurs="1"/> 
            </xsd:sequence>   
            <xsd:sequence>
                <xsd:element ref="work-item-priority" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="work-item-operation" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="work-item-state" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="work-item-severity" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:sequence>
                <xsd:element ref="work-item-type" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="work-item-priority" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="work-item-operation" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="work-item-state" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="work-item-severity" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
        </xsd:choice>
    </xsd:complexType>
   
    <xsd:simpleType name="StrNotEmptyType">
           <xsd:restriction base="xsd:string">
              <xsd:pattern value="(\s)a-zA-Z0-9(\s)"/>
         </xsd:restriction>
      </xsd:simpleType>
   
    <xsd:element name="work-item-type" type="StrNotEmptyType"/>
    <xsd:element name="work-item-priority" type="StrNotEmptyType"/>
    <xsd:element name="work-item-operation" type="StrNotEmptyType"/>
    <xsd:element name="work-item-state" type="StrNotEmptyType"/>
    <xsd:element name="work-item-severity" type="StrNotEmptyType"/>
   
    <xsd:complexType name="workItemMessageCustomizationType">
        <xsd:choice>
            <xsd:sequence>          
                <xsd:element ref="emoji-header" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="bar-color" minOccurs="0" maxOccurs="1"/>    
            </xsd:sequence>   
            <xsd:element ref="bar-color" minOccurs="1" maxOccurs="1"/>
        </xsd:choice>
    </xsd:complexType>

    <xsd:element name="bar-color">
        <xsd:simpleType>
            <xsd:restriction base="xsd:string">
                <xsd:pattern value="#[ABCDEF0-9]{6}"/>
            </xsd:restriction>
        </xsd:simpleType>
    </xsd:element>
           
    <xsd:element name="emoji-header" default = ":rtc: :robot_face: :mailbox_with_mail:">
        <xsd:simpleType>
            <xsd:restriction base="xsd:string">
                <xsd:pattern value="(\s(:[a-z0-9-_]+:)+\s)+"/>
            </xsd:restriction>
        </xsd:simpleType>
    </xsd:element>

    <xsd:complexType name="workItemInfoType">
        <xsd:choice maxOccurs="1" minOccurs="1">
            <xsd:sequence>
                <xsd:element ref="id" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="comment" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="type" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="severity" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="priority" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="summary" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="owned-by" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="filed-against" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="planned-for" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:sequence>
                <xsd:element ref="comment" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="type" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="severity" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="priority" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="summary" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="owned-by" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="filed-against" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="planned-for" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:sequence>
                <xsd:element ref="type" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="severity" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="priority" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="summary" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="owned-by" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="filed-against" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="planned-for" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:sequence>
                <xsd:element ref="severity" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="priority" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="summary" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="owned-by" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="filed-against" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="planned-for" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:sequence>
                <xsd:element ref="priority" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="summary" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="owned-by" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="filed-against" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="planned-for" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:sequence>
                <xsd:element ref="summary" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="owned-by" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="filed-against" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="planned-for" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:sequence>
                <xsd:element ref="owned-by" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="filed-against" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="planned-for" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:sequence>
                <xsd:element ref="filed-against" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="planned-for" minOccurs="0" maxOccurs="1"/>
                <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:sequence>
                <xsd:element ref="planned-for" minOccurs="1" maxOccurs="1"/>
                <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:element ref="description" minOccurs="1" maxOccurs="1"/>       
        </xsd:choice>
    </xsd:complexType>

    <xsd:element name="id" type="showInfoType"/>
    <xsd:element name="comment" type="showInfoType"/>
    <xsd:element name="type" type="showInfoType"/>
    <xsd:element name="severity" type="showInfoType"/>
    <xsd:element name="priority" type="showInfoType"/>
    <xsd:element name="summary" type="showInfoType"/>
    <xsd:element name="owned-by" type="showInfoType"/>
    <xsd:element name="filed-against" type="showInfoType"/>
    <xsd:element name="planned-for" type="showInfoType"/>
    <xsd:element name="description" type="showInfoType"/>

    <xsd:complexType name="showInfoType">
        <xsd:attribute name="active" type="xsd:boolean" default="false" use="optional"/>
    </xsd:complexType>

    <xsd:complexType name="workItemCustomInfoType">
        <xsd:sequence>
            <xsd:element name="custom-attribute-id" minOccurs="1" maxOccurs="unbounded">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                        <xsd:pattern value="(\s)(a-zA-Z0-9)(\s)"/>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
   
    <xsd:complexType name="workItemDefinitionType">
        <xsd:annotation>
            <xsd:documentation>
                This type defines which element are show as part of the message
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice>
            <xsd:element ref="work-item-custom-info" minOccurs="1"/>
            <xsd:sequence>          
                <xsd:element ref="work-item-standard-info" minOccurs="1"/>
                <xsd:element ref="work-item-custom-info" minOccurs="0"/>
            </xsd:sequence>     
            <xsd:sequence>          
                <xsd:element ref="work-item-customization" minOccurs="1"/>
                <xsd:element ref="work-item-standard-info" minOccurs="0"/>
                <xsd:element ref="work-item-custom-info" minOccurs="0"/>  
            </xsd:sequence>   
            <xsd:sequence>
                <xsd:element ref="work-item-definition" minOccurs="1"/>
                <xsd:element ref="work-item-customization" minOccurs="0"/>
                <xsd:element ref="work-item-standard-info" minOccurs="0"/>
                <xsd:element ref="work-item-custom-info" minOccurs="0"/>
            </xsd:sequence>
        </xsd:choice>
        <xsd:attribute name="send-only-when-created" type="xsd:boolean" use="required"/>   
    </xsd:complexType>
   
    <xsd:element name="work-item-definition" type="workItemSearchDefinitionType"/>
    <xsd:element name="work-item-customization" type="workItemMessageCustomizationType"/>
    <xsd:element name="work-item-standard-info" type="workItemInfoType"/>
    <xsd:element name="work-item-custom-info" type="workItemCustomInfoType"/>
   
    <xsd:complexType name="slackType">
        <xsd:annotation>
            <xsd:documentation>
                This type defines the slack settings for Project Area.
                It defines the slack channel name and the Webhook URL.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <xsd:element name="slack-channel" minOccurs="1" maxOccurs="1">
                <xsd:complexType>
                    <xsd:attribute name="id" use="required">
                        <xsd:simpleType>
                            <xsd:restriction base="xsd:string">
                                <xsd:pattern value="#([a-z0-9:_.-]{1,22})"/>
                            </xsd:restriction>
                        </xsd:simpleType>
                    </xsd:attribute>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="slack-webhook-url" minOccurs="1" maxOccurs="1">
                <xsd:complexType>
                    <xsd:attribute name="id" use="required">
                        <xsd:simpleType>
                            <xsd:restriction base="xsd:string">
                                   <xsd:pattern value="(\s)(https:\/\/hooks.slack.com\/services\/([a-zA-Z0-9]+)\/([a-zA-Z0-9]+)\/([a-zA-Z0-9]+))(\s)"/>
                             </xsd:restriction>
                          </xsd:simpleType>
                    </xsd:attribute>
                </xsd:complexType>
            </xsd:element>
        </xsd:all>
    </xsd:complexType>

    <xsd:complexType name="configurationAreaType">
        <xsd:annotation>
            <xsd:documentation>
                This type defines the slack settings for a particular Filed
                Against category. It defines the slack channel name and the
                Webhook URL.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>       
            <xsd:element name="slack" type="slackType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="trigger" type="triggerType" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="name" use="required">
            <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                       <xsd:minLength value="1"/>
                 </xsd:restriction>
              </xsd:simpleType>
        </xsd:attribute>
        <xsd:attribute name="team-area">
            <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                       <xsd:pattern value="(\s)(a-zA-Z0-9)(\s)"/>
                 </xsd:restriction>
              </xsd:simpleType>
        </xsd:attribute>
        <xsd:attribute name="category">
            <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                       <xsd:pattern value="(\s)(a-zA-Z0-9)(\s)"/>
                 </xsd:restriction>
              </xsd:simpleType>
        </xsd:attribute>
    </xsd:complexType>
   
</xsd:schema>

One answer



permanent link
Ralph Schoon (59.7k23643) | answered Aug 09 '17, 1:54 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

I doubt that this question can ever be answered. There is simply not enough information and there never will. You likely will have to find the issues and fix your own customization.

Your answer


Register or to post your answer.