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 |
---|---|---|
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.