Relationship Markup

Relationships are represented using <Relationship> elements nested in a single <Relationships> element. These elements are defined in the Relationships namespace, as specified in Annex F, “Standard Namespaces and Content Types". The schema for relationships is described in Annex D, "Schemas - XML Schema".

The package implementer shall require that every <Relationship> element has an @Id attribute, the value of which is unique within the Relationships part, and that the @Id type is xsd:ID, the value of which conforms to the naming restrictions for xsd:ID as described in the W3C Recommendation “XML Schema Part 2: Datatypes.” [M1.26]

The nature of a <Relationship> element is identified by the @Type attribute. Relationship Type is defined in the same way that namespaces are defined for XML namespaces. By using types patterned after the Internet domain-name space, non-coordinating parties can safely create non-conflicting relationship types.

Relationship types can be compared to determine whether two <Relationship> elements are of the same type. This comparison is conducted in the same way as when comparing URIs that identify XML namespaces: the two URIs are treated as strings and considered identical if and only if the strings have the same sequence of characters. The comparison is case-sensitive and no escaping is done or undone.

The @Target attribute of the <Relationship> element <holds> a URI that points to a target resource. Where the URI is expressed as a relative reference, it is resolved against the base URI of the Relationships source part. The @xml:base attribute shall not be used to specify a base URI for relationship XML content.