Description du format de mappage ESRI-Shape

Pour transférer des données ESRI-Shape, utilisez l'assistant de mappage ou utilisez les fonctionnalités avancées du fichier de mappage, au cas où vous désirez créer le mappage manuellement.

La table de mappage est un fichier XML qui doit correspondre à un schéma bien défini. Les chapitres suivants fournissent une description détaillée de ce format XML.
Dans le contexte du XML il faut considérer qu'il faudra respecter les majuscules et les minuscules et les multiplicités. Sinon le fichier ne correspondra pas à une table de conversion.

Structure

<!-- Dieses Mapping enthält Ausschnitte aus anderen Mappings und zeigt damit nur verschiedene Möglichkeiten auf -->
<?xml version="1.0" encoding="UTF-16"?>
<FdoMapping schemaVersion="1" IsDefaultAttributeMappingEnabled="False">
    <!-- Für jeden Objekttyp bzw. Shape-Datei wird ein FeatureTypeMapping erstellt 
    - FdoFeatureClassName: Name der Shape-Datei. Der Name direkt angegeben werden (z.B: "F02INFL") 
    oder mittels regulären Ausdrücken. Dadurch kann ein Mapping erstellen, bei dem  Shape-Datensätze mit Datum im 
    Dateinamen einlesen. Ein regulärer Ausdruck beginnt mit "re:"
    
    - FdoGeometry: Geometrie in der Shape-Datei 
    Mögliche Werte: IPoint, IMultiLineString, ILineString, IPolygon
    
    - ModelTypeName: Name des Objekttyps
    
    - ModelGeometry: Objektklasse 
    Mögliche Werte: Point, LineString, Area
    -->
    
  <FeatureTypeMapping FdoFeatureClassName="re:^.*f02infl" FdoGeometry="ILineString" ModelTypeName="f02infl" ModelGeometry="LineString" FdoGeometryName="Geometry">
  
  <!-- In dieser Sektion werden die Attribute gesetzt 
  - FdoAttributeName: Name des Attributs in der Shape-Datei
  - ModelAttributeName: Name des Attributs beim Objekt. Dabei ist es egal, ob es sich um ein Klassenattribut, Typattribut oder freies Attribut handelt.
  - FdoAttributeDatatype: 
    - Ganzzahl: System.Int16, System.Int32, System.Int64 (siehe  [Integral numeric types - C# reference | Microsoft Docs|https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/integral-numeric-types])
    - Gleitkomma: System.Single, System.Double (siehe  [Floating-point numeric types - C# reference | Microsoft Docs|https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types])
    - System.String
    - System.DateTime
    - System.Boolean
  -->
    <AttributeMappings>
      <AttributeMapping FdoAttributeName="GKZ" ModelAttributeName="GKZ" />
      <AttributeMapping FdoAttributeName="WidCode" ModelAttributeName="WidCode" />
      <AttributeMapping FdoAttributeName="WidCode" ModelAttributeName="Widmung">
      <!-- Mapping der Attributwerte -->
        <ValueList SourceType="System.Int32" DestinationType="System.String">
          <Item Source="20012" Destination="Seilbahn/Lift"/>
          <Item Source="21011" Destination="Unterirdischer Verlauf von Fließgewässern"/>
          <Item Source="23002" Destination="Erdgastransportleitung unterirdisch"/>
          <Item Source="23102" Destination="Ölleitung unterirdisch"/>
          <Item Source="23202" Destination="Stromleitung oder Kabel oberirdisch"/>
          <Item Source="23203" Destination="Stromleitung oder Kabel unterirdisch"/>
        </ValueList>
      </AttributeMapping>
    </AttributeMappings>
    

    <FeatureTypeMapping FdoFeatureClassName="re:^.*GNR$" FdoGeometry="IPoint" ModelTypeName="GNR" ModelGeometry="Area" FdoGeometryName="Geometry">
        <AttributeMappings />
        <!-- abhängig vom Attributwert wird der passende Objekttyp gesetzt -->
        <Classification>
            <ValueMapping ModelTypeName="Grundstücksnummer einzeilig" ModelGeometry="Area">
                <!-- Filterkriterium -->
                <Values>
                    <Value AttributeName="TYP" AttributeType="System.Int32">1</Value>
                </Values>
                <AttributeMappings>
                    <AttributeMapping FdoAttributeName="GNR" ModelAttributeName="Internal~Name" Regex="([^/\n]*)[/]*[^/\n]*" />
                    <AttributeMapping FdoAttributeName="GNR" ModelAttributeName="Internal~Subname" Regex="[^/\n]*[/]*([^/\n]*)" />
                    <AttributeMapping FdoAttributeName="KG" ModelAttributeName="Internal~Region" />
                    <AttributeMapping FdoAttributeName="RSTATUS" ModelAttributeName="Rechtsstatus" />
                    <AttributeMapping FdoAttributeName="ROT_GNR" ModelAttributeName="#Block0001#RelativeAngle" ConversionKey="d" Operation="valueof(&lt;Value&gt;-100)" />
                </AttributeMappings>
            </ValueMapping>
            <ValueMapping ModelTypeName="Grundstücksnummer zweizeilig" ModelGeometry="Area">
                <Values>
                    <Value AttributeName="TYP" AttributeType="System.Int32">2</Value>
                </Values>
                <AttributeMappings>
                    <AttributeMapping FdoAttributeName="GNR" ModelAttributeName="Internal~Name" Regex="([^/\n]*)[/]*[^/\n]*" />
                    <AttributeMapping FdoAttributeName="GNR" ModelAttributeName="Internal~Subname" Regex="[^/\n]*[/]*([^/\n]*)" />
                    <AttributeMapping FdoAttributeName="KG" ModelAttributeName="Internal~Region" />
                    <AttributeMapping FdoAttributeName="RSTATUS" ModelAttributeName="Rechtsstatus" />
                    <AttributeMapping FdoAttributeName="ROT_GNR" ModelAttributeName="#Block0001#RelativeAngle" ConversionKey="d" Operation="valueof(&lt;Value&gt;-100)" />
                </AttributeMappings>
            </ValueMapping>
        </Classification>
    </FeatureTypeMapping>
</FdoMapping>