<relation>

<relation> (관련성) 명시된 참여자군 사이에 관련성 또는 연결 종류를 기술한다. 15.2.2 The Participant Description
모듈namesdates — 13 Names, Dates, People, and Places
속성att.global (@xml:id, @n, @xml:lang, @rend, @rendition, @xml:base, @xml:space) (att.global.linking (@corresp, @synch, @sameAs, @copyOf, @next, @prev, @exclude, @select)) (att.global.analytic (@ana)) (att.global.facs (@facs)) 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사회, 개인, 또는 기타 등과 같이 어떤 측면의 관련성을 범주화한다.
상태 수의적
자료 유형

<rng:ref name="data.enumerated"/>
data.enumerated
제안값은 다음을 포함한다:
social
사회적 역할과 관련된 관련성
personal
친족관계, 결혼, 등과 같이 개인적 역할과 관련된 관련성 [기본값]
other
기타 종류의 관련성
name이것이 실례인 관련성 종류에 대한 이름을 제공한다.
상태 필수적
자료 유형

<rng:ref name="data.enumerated"/>
data.enumerated
an open list of application-dependent keywords
activeidentifies the ‘active’ participants in a non-mutual relationship, or all the participants in a mutual one.
상태 수의적
자료 유형 1–∞ 출현 

<rng:ref name="data.pointer"/>
data.pointer
공백문자로 분리됨
a list of identifier values for participant or participant groups
mutualsupplies a list of participants amongst all of whom the relationship holds equally.
상태 의무적 적용
자료 유형 1–∞ 출현 

<rng:ref name="data.pointer"/>
data.pointer
공백문자로 분리됨
a list of identifier values for participant or participant groups
passive비상호적 관련성에서 ‘passive’ 참여자를 식별한다.
상태 수의적
자료 유형 1–∞ 출현 

<rng:ref name="data.pointer"/>
data.pointer
공백문자로 분리됨
a list of identifier values for participant or participant groups
에 의해 사용된
에 의해 포함된
포함할 수 있다
core: desc
선언

<rng:element name="relation">
 <rng:ref name="att.global.attributes"/>
 <rng:ref name="att.global.linking.attributes"/>
 <rng:ref name="att.global.analytic.attributes"/>
 <rng:ref name="att.global.facs.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:ref name="data.pointer"/>
     <rng:zeroOrMore>
      <rng:ref name="data.pointer"/>
     </rng:zeroOrMore>
    </rng:list>
   </rng:attribute>
  </rng:optional>
  <rng:optional>
   <rng:attribute name="mutual">
    <rng:list>
     <rng:ref name="data.pointer"/>
     <rng:zeroOrMore>
      <rng:ref name="data.pointer"/>
     </rng:zeroOrMore>
    </rng:list>
   </rng:attribute>
  </rng:optional>
 </rng:choice>
 <rng:optional>
  <rng:attribute name="passive">
   <rng:list>
    <rng:ref name="data.pointer"/>
    <rng:zeroOrMore>
     <rng:ref name="data.pointer"/>
    </rng:zeroOrMore>
   </rng:list>
  </rng:attribute>
 </rng:optional>
 <rng:optional>
  <rng:ref name="desc"/>
 </rng:optional>
</rng:element>
element relation
{
   att.global.attributes,
   att.global.linking.attributes,
   att.global.analytic.attributes,
   att.global.facs.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, data.pointer* } }?
    | attribute mutual { list { data.pointer, data.pointer* } }?
   ),
   attribute passive { list { data.pointer, data.pointer* } }?,
   desc?
}
Schematron

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

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

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

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