What is the difference between Primary and Secondary Relationships?

XML elements have different types of relationships between each other. Primary relationships are the common XML relationships that exist between an xsd:complexType and its defining properties (elements and attributes that compose it and make it complex). The properties are generally inherent in the nature of the complexType being defined. For example, PersonNameType has several inherent properties, including PersonFirstName, PersonMiddleName, and PersonLastName. These properties are actually parts of or compose a PersonNameType. Any complexType can be built with all primary relationships. However, sometimes this is not possible, practical, or sensible, depending upon the situation.

 Secondary relationships provide an alternate method for representing relationships. Secondary relationships exist between two fully attributed instances. A simple example is a family relationship between two persons. A secondary relationship mechanism enables you to create a FatherOf relationship between two fully attributed PersonType instances without having to define an XML complexType that requires one to be inside the other.