<relation> (relationship) describes any kind of relationship or linkage amongst a specified
group of participants. 15.2.2 The Participant DescriptionModule namesdates — 13 Names, Dates, People, and Places Attributes att.datable (att.datable.w3c (@period , @when , @notBefore , @notAfter , @from , @to )) (att.datable.iso (@when-iso , @notBefore-iso , @notAfter-iso , @from-iso , @to-iso )) att.editLike (@cert , @resp , @evidence , @source ) (att.dimensions (@unit , @quantity , @extent , @atLeast , @atMost , @min , @max , @precision , @scope )) att.naming (@nymRef ) (att.canonical (@key , @ref )) type categorizes the relationship in some respect, e.g.
as social, personal or other.Status Optional Datatype Suggested values include: social relationship concerned with social roles personal relationship concerned with personal roles, e.g.
kinship, marriage, etc. [Default] other other kinds of relationship
name supplies a name for the kind of relationship of which
this is an instance.Status Required Datatype Values an open list of application-dependent keywords
active identifies the ‘active’ participants in a non-mutual
relationship, or all the participants in a mutual one.Status Optional Datatype 1–∞ occurrences of separated by whitespace Values a list of identifier values for participant or participant
groups
mutual supplies a list of participants amongst all of whom the relationship holds equally.Status Mandatory when applicable Datatype 1–∞ occurrences of separated by whitespace Values a list of identifier values for participant or participant
groups
passive identifies the ‘passive’ participants in a non-mutual
relationship.Status Optional Datatype 1–∞ occurrences of separated by whitespace Values a list of identifier values for participant or participant
groups
Used by May contain Declaration Compact to XML format XML format to compact <rng: element name ="relation "> <rng: ref name ="att.global.attributes "/> <rng: ref name ="att.datable.w3c.attributes "/> <rng: ref name ="att.datable.iso.attributes "/> <rng: ref name ="att.editLike.attributes "/> <rng: ref name ="att.dimensions.attributes "/> <rng: ref name ="att.naming.attributes "/> <rng: ref name ="att.canonical.attributes "/> <rng: optional > <rng: attribute name ="type " a:defaultValue ="personal "> <rng: choice > <rng: value > social</rng: value > <rng: value > personal</rng: value > <rng: value > other</rng: value > <rng: data type ="Name "/> </rng: choice > </rng: attribute > </rng: optional > <rng: attribute name ="name "> <rng: ref name ="data.enumerated "/> </rng: attribute > <rng: choice > <rng: optional > <rng: attribute name ="active "> <rng: list > <rng: oneOrMore > <rng: ref name ="data.pointer "/> </rng: oneOrMore > </rng: list > </rng: attribute > </rng: optional > <rng: optional > <rng: attribute name ="mutual "> <rng: list > <rng: oneOrMore > <rng: ref name ="data.pointer "/> </rng: oneOrMore > </rng: list > </rng: attribute > </rng: optional > </rng: choice > <rng: optional > <rng: attribute name ="passive "> <rng: list > <rng: oneOrMore > <rng: ref name ="data.pointer "/> </rng: oneOrMore > </rng: list > </rng: attribute > </rng: optional > <rng: optional > <rng: ref name ="desc "/> </rng: optional > </rng: element >
element relation
{
att.global.attributes ,
att.datable.w3c.attributes ,
att.datable.iso.attributes ,
att.editLike.attributes ,
att.dimensions.attributes ,
att.naming.attributes ,
att.canonical.attributes ,
attribute type { "social" | "personal" | "other" | xsd:Name }?,
attribute name { data.enumerated },
(
attribute active { list { data.pointer + } }?
| attribute mutual { list { data.pointer + } }?
),
attribute passive { list { data.pointer + } }?,
desc ?
} Example <relation type ="social " name ="supervisor " active ="#p1 " passive ="#p2 #p3 #p4 "/>
This indicates that the person with identifier p1 is supervisor of
persons p2, p3, and p4.
Example <relation type ="personal " name ="friends " mutual ="#p2 #p3 #p4 "/>
This indicates that p2, p3, and p4 are all friends.
Note Only one of the attributes active and
mutual may be supplied; the attribute passive
may be supplied only if the attribute active is supplied. Not all
of these constraints can be enforced in all schema languages.