Property (Group) Definition Schema

The following schema describes the definition of property groups and their properties for arbitrary custom types and milestones.


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:include schemaLocation="common.xsd"/>
  <xs:element name="Properties">
    <!-- The order of property groups and properties is the same as the sequence of the elements in the xml -->
    <xs:complexType>
      <xs:sequence minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Group">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Property" minOccurs="1" maxOccurs="unbounded">
                <xs:complexType>

                  <xs:sequence>
                    <!-- The defaultvalue of the property. If it cannot be converted to the target
                          property type, an exception is thrown. Dates have to be given in the format
                          "YYYY-MM-DD hh:mm:ss".-->
                    <xs:element name="Defaultvalue" type="xs:string" minOccurs="0" maxOccurs="1"/>
                    <!-- A comma separated list of list values for properties of that type. List items
                          are trimmed (not possible to have blanks in the beginning or end of list items) -->
                    <xs:element name="List" type="bondlist" minOccurs="0" maxOccurs="1"/>
                      <!-- A plain text to describe the property, and to be displayed in the user interface -->
                      <xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1" />
                  </xs:sequence>

                  <!-- The name of the property. It must be unique within the entity definition. -->
                  <xs:attribute name="name" type="bondstringtype" use="required"/>
				  
				          <!-- The display name of the property which is used for labeling the property in the user interface.
				          It does not have to be unique. If no display name is given, the name is used as the display name on import.
				          -->
				          <xs:attribute name="displayName" type="xs:string" use="optional" />
				  
                  <!-- The type of the property -->
                  <xs:attribute name="type" type="bondproptype" use="required"/>
                  <!-- The edit mode of the property-->
                  <xs:attribute name="mode" type="bondpropertymode" use="required" />

                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <!-- the name of the property group -->
            <xs:attribute name="name" type="bondstringtype"/>

            <!-- The display name of the property group which is used for labeling the property group in the user interface.
				          It does not have to be unique. If no display name is given, the name is used as the display name on import.
				     -->
            <xs:attribute name="displayName" type="bondstringtype" use="optional" />
          </xs:complexType>
        </xs:element>

      </xs:sequence>
    </xs:complexType>

    <!-- property group name must be unique within the type -->
    <xs:unique name="UniqueGroupName">
      <xs:selector xpath="Group" />
      <xs:field xpath="@name" />
    </xs:unique>

    <!-- property name must be unique within the type -->
    <xs:unique name="UniquePropertyName">
      <xs:selector xpath="Group/Property" />
      <xs:field xpath="@name" />
    </xs:unique>
  </xs:element>
</xs:schema>

The following example shows a valid XML definition file for property groups and properties of a custom type DEFECT of entity ENVIRONMENT. It adds different properties within a single group.

<?xml version="1.0" encoding="UTF-8"?>

<?xml version="1.0" encoding="UTF-8"?>
<EnvironmentType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="environment.xsd">
  <Name>EnvironmentType1</Name>
  <Properties>
    <Group name="EnvironmentTypegroup" displayName="Group2">
      <Property name="CATEGORY2_Version1" type="SingleChoice" mode="EDITABLE" displayName="category2">
        <List>STD, HOTFIX, MAJOR, MINOR</List>
      </Property>
      <Property name="FIXING_TEAM1_Version1" type="SingleLineText" mode="EDITABLE" displayName="team21">
        <Defaultvalue>Team1</Defaultvalue>
      </Property>
      <Property name="FIXING_TEAM2_Version1" type="SingleLineText" mode="HIDDEN" displayName="team22">
        <Defaultvalue>Team1</Defaultvalue>
      </Property>
    </Group>
  </Properties>
</EnvironmentType>