The ':' character, hexadecimal value 0x3A, cannot be included in a name

Hey Team,
I’m using a custom descriptor in order to extend the Task element and add a new attribut called RankOrder it’s working fine and the bpmn xml is well generated.

  "name": "customDescriptor",
  "uri": "http://customDescriptor",
  "prefix": "custdesc",
  "xml": {
    "tagAlias": "lowerCase"
  "associations": [],
  "types": [
      "name": "RankOrder",
      "extends": [ "bpmn:Task" ],
      "properties": [
          "name": "rankorder",
          "isAttr": true,
          "type": "String"

My issue here, the new attribut is displayed as below with colon (custdesc:rankorder), which poses a problem when trying to parse the xml in the backend (based on .Net) it seems that the “:” is allowed only for the node element and not for its attribute names (Xml specification).
<bpmn:task id="Task_0ne4plj" name="In Progress" custdesc:rankorder="1">

and i get this exception:
The ':' character, hexadecimal value 0x3A, cannot be included in a name

is there any indication how to generate the attribut without colon as below:

<bpmn:task id="Task_0ne4plj" name="In Progress" rankorder="1">

thanks and regards,

Did you check your document against an online XML validator?

I don’t know about the specifics of .Net but prefixing attributes with a namespace is definitely valid XML.

1 Like

The document was validated with no errors, but i could not parse it in the backend.

thank you

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="" xmlns:bpmndi="" xmlns:custdesc_1="" xmlns:dc="" xmlns:di="" xmlns:xsi="" xmlns:custdesc="" id="Definitions_1" targetNamespace="">
  <bpmn:process id="Process_1" isExecutable="false">
    <bpmn:startEvent id="StartElement" name="Start" custdesc_1:showreorderbutton="false" custdesc_1:classname="list-header-not-started" custdesc_1:rankorder="1" custdesc_1:isfreeflow="false" custdesc_1:istaskstate="false" custdesc_1:isstartstate="true" custdesc_1:isendstate="false" custdesc_1:assignedto="">
    <bpmn:task id="Task_1npa5ke" name="Transition" custdesc_1:rankorder="2" custdesc_1:isfreeflow="false" custdesc_1:istaskstate="true" custdesc_1:isstartstate="false" custdesc_1:isendstate="false" custdesc_1:assignedto="" custdesc_1:classname="list-header-transition" custdesc_1:showreorderbutton="true">
    <bpmn:sequenceFlow id="SequenceFlow_03vnwy6" sourceRef="StartElement" targetRef="Task_1npa5ke" />
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
      <bpmndi:BPMNShape id="StartShape" bpmnElement="StartElement">
        <dc:Bounds x="301" y="175" width="100" height="40" />
      <bpmndi:BPMNShape id="Task_1npa5ke_di" bpmnElement="Task_1npa5ke">
        <dc:Bounds x="453" y="175" width="100" height="40" />
      <bpmndi:BPMNEdge id="SequenceFlow_03vnwy6_di" bpmnElement="SequenceFlow_03vnwy6">
        <di:waypoint xsi:type="dc:Point" x="401" y="195" />
        <di:waypoint xsi:type="dc:Point" x="453" y="195" />

The fact that you could not parse it indicates an issue on the back-end side of things.

I recommend you to investigate this, rather than trying to find a workaround via the toolkit.

1 Like

Looking at the XML, the prefix might be wrong, too.

You got both customdesc and customdesc_1 in the BPMN 2.0 document. Assigning the wrong namespace may cause issues during validation in the backend.

1 Like

Ok thank you nikku, good catch i will check that.