XML file order rules

The exported XML file is always ordered following the same rules. The goal is to facilitate a comparison of configuration files so they can be used for detecting changes to configurations in Jira.

Rules for ordering

  • When an XML element has children of different types, their relative order is defined by the schema in the projectConfig.xsd file. This file is included in the app jar file.

  • When an XML element has children with the same types, for example, <customField> elements under a <customFields> page, the children are ordered by the value in one or more sub-elements, as explained in the table below. If a child element does not have one of the sub-elements, it is ordered later than a child that does have a specific sub-element. When child elements are ordered by their own value, they appear in the Order By column as "own value."

Parent Element

Children Elements

Order By

Parent Element

Children Elements

Order By

projectRoleMembers

projectRoleMembership

name

versions

version

sequence

components

component

name

projectRoleMembership

memberUser

own value

projectRoleMembership

memberGroup

own value

users

user

username

groups

group

name

projectRoles

projectRole

name

issueTypes

issueType

name

customFields

customField

type, name

fieldConfigurations

fieldConfiguration

name

screens

screen

name

screenSchemes

screenScheme

name

priorityConfiguration

priority

sequence, name

resolutionConfiguration

resolution

sequence, name

statusConfiguration

status

name

issueLinkConfiguration

issueLink

name, style

eventTypes

eventType

name

workflowEntries

workflowEntry

name

permissionScheme

permissionHolder

permission, holder.assignee, holder.group, holder.groupField, holder.projectLead, holder.projectRole, holder.reporter, holder.user, holder.userField

issueSecurityScheme

issueSecurityLevel

name

issueSecurityScheme

permission

level, permittedTo.assignee, permittedTo.group, permittedTo.groupField, permittedTo.projectLead, permittedTo.projectRole, permittedTo.reporter, permittedTo.user, permittedTo.userField

notificationSchemeType

notificationReceiver

event, receiver.allWatchers, receiver.assignee, receiver.componentLead, receiver.currentUser, receiver.emailAddress, receiver.group, receiver.groupField, receiver.projectLead, receiver.projectRole, receiver.reporter, receiver.user, receiver.userField

projectRole

defaultUser

own value

projectRole

defaultGroup

own value

screen

screenTab

position

screenTab

fieldScreenLayoutItem

position

issueTypeScreenScheme

mappingScreenSchemesIssue

issueType

screenScheme

mappingOperationsScreens

operation

fieldConfigurationScheme

mappingFieldConfigIssueTypes

issueType

workflowScheme

mappingIssueTypes

issueType

fieldConfiguration

individualFieldConfig

fieldName

customField

customFieldConfigScheme

name

customFieldConfigScheme

context

projectContext, projectCategoryContext

customFieldConfigScheme

applicableIssueType

issueType

customFieldConfigScheme

config

name

config

option

parentOption, sequence

defaultValue

singularValue

EXCEPTION: <singularValue> is not guaranteed to be ordered; instead, they maintain the order they have in Jira, as it is relevant in some cases (for example, in cascade select custom fields)

user

property

key

group

memberUser

own value

group

memberGroup

own value

issueTypeScheme

issueType

own value

filters

filter

author, name

filter

sharedWith

type, name

columns (inside a filter)

field

EXCEPTION: <field> elements maintain the order they have in Jira, as that order represents the order of columns shown when the filter results are displayed in the issue navigator

scrumKanbanBoards

scrumKanbanBoard

name, type, mainFilter

scrumKanbanBoard

administratorUser

own value

scrumKanbanBoard

administratorGroup

own value

workingDays

workingDay

Natural order of weekdays, starting from Monday

workingDays

nonWorkingDay

Increasing date order

All other child elements that are part of exported boards (e.g., quick filters, columns, etc.) maintain the order they had in Jira, as that represents the order configured by the board administrator.