Domaines d'une géodatabase dans SQL Server

Les domaines sont des règles qui s'appliquent aux champs d'une table métier. Ils imposent l'intégrité des données en n'autorisant que les valeurs spécifiées pour le domaine à entrer dans le champ. Les domaines sont définis par géodatabase et peuvent être appliqués à différentes classes d'entités, tables ou sous-types.

Vous pouvez définir deux types de domaines — les domaines par plage et les domaines à valeur précodée. Les domaines par plage ne peuvent être appliqués qu'aux champs numériques. Pour obtenir des explications sur les domaines, reportez-vous à la rubrique Présentation rapide des domaines attributaires.

Domaines dans ArcGIS Desktop

Les domaines d'une géodatabase sont accessibles dans la fenêtre Catalogue, par l'intermédiaire de la boîte de dialogue Propriétés de la base de données. Cliquez avec le bouton droit de la souris sur la géodatabase et sélectionnez Propriétés.

Domaines dans la boîte de dialogue Propriétés de la base de données

Dans l'exemple précédent, la liste de tous les domaines définis pour une géodatabase est affichée en haut de la boîte de dialogue. Le domaine Fitting_type est sélectionné dans la liste. Les valeurs affichées pour les sections Propriétés du domaine et Valeurs précodées correspondent à ce domaine. Comme l'indiquent les valeurs de la section Propriétés du domaine, le domaine Fitting_type est un domaine à valeurs précodées.

Lorsqu'un domaine est appliqué à un sous-type, il est répertorié dans l'onglet Sous-type de la boîte de dialogue Propriétés de la classe d'entités. Cliquez avec le bouton droit de la souris sur la classe d'entités et choisissez Propriétés.

Domaine appliqué à un sous-type d'une classe d'entités

Le domaine Fitting_type est appliqué au champ SUBTYPE de la classe d'entités Fittings.

Lorsque vous modifiez les attributs de la classe d'entités Fittings dans ArcMap, vous ne pouvez dès lors entrer dans le champ SUBTYPE que les codes spécifiés pour le domaine Fitting_type.

Liste de valeurs précodées du domaine pour le champ d'attribut
Liste de valeurs précodées du domaine pour le champ d'attribut SUB_TYPE

Domaines dans un SGBD de type SQL Server

Dans la base de données, tous les domaines sont stockés dans la table système GDB_ITEMS. Un champ dans la table GDB_ITEMTYPES identifie l'objet comme domaine.

Domaines dans un document d'espace de travail XML

Dans les documents d'espace de travail XML, les domaines sont délimités par une balise domain.

Voici un extrait d'un document d'espace de travail XML qui contient la définition du domaine de valeurs précodées Fitting_type :

<Domain xsi:type="esri:CodedValueDomain">
  <DomainName>FittingType</DomainName> 
  <FieldType>esriFieldTypeString</FieldType> 
  <MergePolicy>esriMPTDefaultValue</MergePolicy> 
  <SplitPolicy>esriSPTDuplicate</SplitPolicy> 
  <Description>Valid fitting type codes</Description> 
  <Owner>RJP</Owner> 
  <CodedValues xsi:type="esri:ArrayOfCodedValue">
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Tee</Name> 
      <Code xsi:type="xs:string">TEE</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Sleeve</Name> 
      <Code xsi:type="xs:string">SLV</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Reduser</Name> 
      <Code xsi:type="xs:string">RED</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Expansion joint</Name> 
      <Code xsi:type="xs:string">EOP</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Cross</Name> 
      <Code xsi:type="xs:string">CRS</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Bend</Name> 
      <Code xsi:type="xs:string">BEND</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Cap</Name> 
      <Code xsi:type="xs:string">CAP</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Coupling</Name> 
      <Code xsi:type="xs:string">CPL</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Offset</Name> 
      <Code xsi:type="xs:string">OFF</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Plug</Name> 
      <Code xsi:type="xs:string">PLG</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Saddle</Name> 
      <Code xsi:type="xs:string">SDL</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Tap</Name> 
      <Code xsi:type="xs:string">TAP</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Weld</Name> 
      <Code xsi:type="xs:string">WLD</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Riser</Name> 
      <Code xsi:type="xs:string">RIS</Code> 
    </CodedValue>
  </CodedValues>
</Domain>

Les entrées pour un domaine par plage, RotAngle, dans un document d'espace de travail XML sont indiquées ici :

<Domain xsi:type="esri:RangeDomain">
  <DomainName>RotAngle</DomainName> 
  <FieldType>esriFieldTypeInteger</FieldType> 
  <MergePolicy>esriMPTDefaultValue</MergePolicy> 
  <SplitPolicy>esriSPTDuplicate</SplitPolicy> 
  <Description>Valid rotation angles</Description> 
  <Owner>RJP</Owner> 
  <MaxValue xsi:type="xs:double">359</MaxValue> 
  <MinValue xsi:type="xs:double">0</MinValue> 
 </Domain>

3/6/2012