The property-type attribute specifies the PropertyDescriptor class that defines your property type, as in this example:

<property name="contentFile"
  <attribute name="pathNameProperty" value="contentFileName"/>

Generally, if you specify a type with the property-type attribute, you do not need to use the data-type or item-type attribute to specify the type. However, in some cases, you might create user-defined properties that can represent more than one data type. In such cases, you can use the data-type attribute to further constrain the property.