Formatbeschreibung ESRI-Shape Mapping

Für den Transfer von ESRI-Shape-Daten nutzen Sie den Mapping-Assistenten oder nutzen Sie die erweiterten Möglichkeiten der Mappingdatei, indem Sie ein Mapping manuell herstellen.

Die Mappingtabelle liegt in Form einer XML-Datei vor, welche einem bestimmten Schema entsprechen muss.Die folgenden Kapitel enthalten eine detaillierte Beschreibung dieses XML-Formats.
Durch den Kontext XML versteht sich auch, dass alle folgenden Schreibweisen samt Groß-/Kleinschreibung und Multiplizität exakt der Beschreibung entsprechen müssen. Andernfalls entspricht die Datei nicht einer Mappingtabelle.

Aufbau

<!-- 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>