<relation>

<relation> (relation) décrit tout type de relation ou de lien à l'intérieur d'un groupe donné de participants. 15.2.2 The Participant Description
Module namesdates — 13 Names, Dates, People, and Places
En complément des attributs globaux 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 (@evidence, @source) (att.dimensions (@unit, @quantity, @extent, @precision, @scope) (att.ranging (@atLeast, @atMost, @min, @max)) ) (att.responsibility (@cert, @resp)) att.naming (@role, @nymRef) (att.canonical (@key, @ref))
type caractérise la relation sous un certain aspect, par exemple social, personnel ou autre.
Statut Optionel
Type de données

<rng:ref name="data.enumerated"/>
data.enumerated
Les valeurs suggérées comprennent:
social
forme de relation sociale.
personal
forme de relation personnelle, comme parenté, mariage, etc. [Valeur par défaut]
other
autres formes de relation.
name fournit un nom pour le type de relation dont elle est une instance.
Statut Requis
Type de données

<rng:ref name="data.enumerated"/>
data.enumerated
Valeurs une liste ouverte de mots-clé dépendant de l'application.
active identifie les participants actifs dans une relation à sens unique, ou tous les participants dans une relation réciproque.
Statut Optionel
Type de données 1–∞ occurrences of 

<rng:ref name="data.pointer"/>
data.pointer
séparé par un espace
Valeurs une liste de valeurs identifiant les participants ou les groupes de participants.
mutual fournit une liste de participants entre lesquels la relation est réciproque.
Statut Obligatoire quand applicable
Type de données 1–∞ occurrences of 

<rng:ref name="data.pointer"/>
data.pointer
séparé par un espace
Valeurs une liste de valeurs identifiant les participants ou les groupes de participants.
passive identifie les participants ‘passifs’ dans une relation non mutuelle.
Statut Optionel
Type de données 1–∞ occurrences of 

<rng:ref name="data.pointer"/>
data.pointer
séparé par un espace
Valeurs une liste de valeurs identifiant les participants ou les groupes de participants.
Utilisé par
Peut contenir
core: desc
Declaration

<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.ranging.attributes"/>
 <rng:ref name="att.responsibility.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.ranging.attributes,
   att.responsibility.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?
}

<s:report test="@active and @mutual">Only one of the attributes
'active' and 'mutual' may be supplied</s:report>

<s:report test="@passive and not(@active)">the attribute 'passive'
may be supplied only if the attribute 'active' is
supplied</s:report>
Exemple
<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.

Exemple
<relation type="personal" name="friends" mutual="#p2 #p3 #p4"/>

This indicates that p2, p3, and p4 are all friends.

Note
Un seul des attributs active et mutual peut être fourni ; l'attribut passive ne peut être utilisé que si l'attribut active est fourni. Tous les langages de schéma ne sont pas capables d'exprimer la totalité de ces contraintes.