EWS-Schemaversionen in Exchange

Erfahren Sie mehr über das EWS-Schema und wie Sie Ihre Anwendung so entwerfen, dass sie damit arbeitet, sowie über die Features, die mit jeder Schemaversion verfügbar sind, und wie sich das Schema mit der Exchange-Dienstversion bezieht.

Das EWS-Schema definiert die Datenstrukturen, die an Exchange gesendet und von Exchange zurückgegeben werden können. Jede neue Version von Exchange, die eine wesentliche Änderung an der EWS-Funktionalität enthält, enthält ein neues Schema. EWS und das EWS-Schema sind sowohl abwärts- als auch in einigen Fällen vorwärtskompatibel. Anwendungen, die für frühere Versionen von EWS entwickelt wurden, funktionieren in den meisten Fällen mit höheren Versionen von EWS, und Anwendungen, die auf spätere Versionen von EWS abzielen, funktionieren, wenn die gleiche Funktionalität in einer früheren Version enthalten war. In diesem Artikel erfahren Sie mehr über die Rolle des EWS-Schemas, die Funktionsweise der Schemaversionsverwaltung, die Beziehung zwischen der Schemaversion und der Dienstversion und das Entwerfen Ihrer Anwendung für die Verwendung mit dem EWS-Schema.

Rolle des EWS-Schemas

Das EWS-Schema führt folgende Aktionen aus:

  • Definiert den Featuresatz, der für einen Client verfügbar ist. Ein Client kann die Liste der unterstützten Schemaversionen mithilfe des SOAP-AutoErmittlungsdiensts abrufen. Der Client kann dann bestimmen, auf welche Features er zugreifen kann, da jede Schemaversion einen EWS-Featuresatz darstellt. Jedes neue Schema, das für EWS veröffentlicht wird, enthält die Schemaentitäten aus der vorherigen Version sowie die Schemadefinitionen für alle neuen Funktionen. Auf diese Weise unterstützt EWS Anwendungen, die auf eine frühere Version von EWS abzielen.

  • Enthält eine allgemeine Beschreibung des API-Vertrags. Sie können diesen Vertrag verwenden, um die Datenstrukturen zu bestimmen, die an Exchange gesendet und von exchange empfangen werden können.

  • Stellt einen Versionsverwaltungsmechanismus zum Senden von Anforderungen bereit. Der Exchange-Server enthält alle unterstützten EWS-Schemaversionen im virtuellen Verzeichnis.

Entwerfen Ihrer Anwendung unter Berücksichtigung der Schemaversion

Beachten Sie die folgenden Punkte, wenn Sie Ihre Anwendung so entwerfen, dass sie mit verschiedenen Versionen des EWS-Schemas funktioniert:

  • Aktivieren/deaktivieren Sie die Funktionalität basierend auf der Schemaversion. Sie sollten die Clientfunktionalität der Schemaversion und in einigen Fällen der Version des Diensts zuordnen. Im folgenden Beispiel wird ein PropertySet basierend auf der Version des Schemas und des Diensts zurückgegeben.

    private static PropertySet InitPropertySetByVersion(ExchangeService service)
    {
        PropertySet props;
        // The schema version to target to access the NormalizedBody property 
        // is Exchange2013 or later. The server version to target to access the 
        // NormalizedBody property on an email is 15 or later, which 
        // equates to Exchange 2013.
        if (service.RequestedServerVersion >= ExchangeVersion.Exchange2013 &&
            service.ServerInfo.MajorVersion >= 15)
        {
            props = new PropertySet(EmailMessageSchema.NormalizedBody);
        }
        else
        {
            props = new PropertySet(EmailMessageSchema.Body);
        }
        return props;
    }
    
  • Versionieren Sie Ihre Anforderungen mit der frühesten Version des EWS-Schemas, die die funktionalität unterstützt, die Sie verwenden möchten. Dadurch kann Ihr Client auf eine größere Anzahl potenzieller Exchange-Server angewendet werden. Dies ist weniger wichtig, wenn Sie eine branchenspezifische Anwendung entwickeln, die nur auf die Server Ihrer Organisation ausgerichtet ist, aber sehr wichtig ist, wenn Sie eine Anwendung für eine breitere Exchange-Zielgruppe erstellen.

Features nach Schemaversion

Die schemaversionen, die für einen Client verfügbar sind, werden im einfachen ExchangeVersionType-Typ identifiziert, der sich im Schema types.xsd befindet. ExchangeVersionType wird vom RequestServerVersion-Element implementiert. Das RequestServerVersion-Element wird in allen EWS-Anforderungen gesendet, um dem Server anzugeben, auf welche Version des Schemas der Client abzielt. Dadurch wird wiederum der Featuresatz identifiziert, der für den Client verfügbar ist.

Tabelle 1: EWS-Features nach Produkt- und Schemaversion

Produktversion Zugeordnete Schemaversion Features
Exchange Online Die neueste Schemaversion. Enthält alle Features in der aktuellen Version von Exchange sowie alle neuen Features, die für Onlineclients hinzugefügt werden.
Exchange 2013 SP1 Exchange2013_SP1 Enthält alle Features in Exchange 2013.

Die folgenden Features wurden in Exchange 2013 SP1 eingeführt:
Exchange 2013 Exchange2013 Umfasst alle Features, die in Exchange 2007 und Exchange 2010 eingeführt wurden.

Die folgenden Features wurden in Exchange 2013 eingeführt:
  • Archivierung
  • eDiscovery
  • Personas
  • Aufbewahrungsrichtlinien
  • Einheitlicher Kontaktspeicher
  • Benutzerfotos
Exchange 2010 SP2 Exchange2010_SP2 Enthält alle in Exchange 2010 SP1 eingeführten Features.

Die folgenden Features wurden in Exchange 2010 SP2 eingeführt:
  • Abrufen des Kennwortablaufs
  • DateTime-Genauigkeit
  • Aktualisierte Eigenschaftenbezeichner für Kontakte
  • Neue Identitätswechselszenarien
Exchange 2010 SP1 Exchange2010_SP1 Enthält alle in Exchange 2010 eingeführten Features.

Die folgenden Features wurden in Exchange 2010 SP1 eingeführt:
  • Erstellen, Abrufen und Ändern von Posteingangsregeln
  • Programmgesteuerter Zugriff auf Archivpostfach
  • Unterhaltungsaktionen
  • Firewall durchläuft Benachrichtigungen
  • Verbesserte Verwaltungsfunktionen
  • Verbesserte Unterstützung für gemischte Versionen
  • Unterstützung des Drosselungsschutzes
  • Steuerung des Anwendungszugriffs auf EWS
  • Unterstützung der Clientzertifikatauthentifizierung
Exchange 2010 Exchange2010 Enthält alle features, die in Exchange 2007 SP1 eingeführt wurden.

Die folgenden Features wurden in der ersten Version von Exchange 2010 eingeführt:
  • Vollständige private Verteilerliste
  • Benutzerkonfigurationsobjekte
  • Ordner zugeordnete Elemente
  • Nachrichtenverfolgung
  • Unified Messaging
  • SOAP-AutoErmittlung
  • Erweiterte Unterstützung für Zeitzonen
  • Informationen zur Verfügbarkeit von Raumressourcen
  • Indizierte Suche
  • Dumpster-Zugriff
  • E-Mail-Infos
Exchange 2007 SP1 Exchange2007_SP1 Enthält alle in Exchange 2007 eingeführten Features.

Die folgenden Features wurden in Exchange 2007 SP1 eingeführt:
  • Stellvertretungsverwaltung
  • Ordnerberechtigungen
  • Öffentliche Ordner
  • Bereitstellungselemente
  • ID-Konvertierung
Exchange 2007 Exchange2007 Die folgenden Features wurden in der ersten Version von Exchange 2007 eingeführt:
  • Vollzugriff auf Elemente, Ordner und Anlagen (Erstellen, Abrufen, Aktualisieren, Löschen)
  • Verfügbarkeit
  • Abwesenheitseinstellungen
  • Benachrichtigungen
  • Synchronisierung
  • Namensauflösung
  • Erweiterung der Verteilerliste (DL)
  • Suchen

Beziehung zwischen dem EWS-Schema und der Dienstversion

Die EWS-Schemaversion bezieht sich auf die Version des EWS-Diensts, auf dem der Server ausgeführt wird. Das Benennungsmuster für das EWS-Schema bezieht sich auf die lokalen Versionen von Exchange. Die erste Version von Exchange 2013 weist beispielsweise die Dienstversion 15.00.0516.032 und den Schemanamen Exchange2013 auf. Da das Schema für Exchange 2013 aktualisiert wurde, haben sowohl Exchange 2013 als auch Exchange Online mit der Dienstversion 15.00.0516.032 und höher den gleichen Versionsnamen für das neueste Schema. In früheren Versionen von Exchange wurde das EWS-Schema nicht mit kumulativen Updates (früher als Rollups bezeichnet) aktualisiert. Da Exchange jedoch häufiger aktualisiert wird, um Exchange Online zu unterstützen, enthalten kumulative Updates jetzt Schemaupdates für EWS. Die Schemadateinamen und der zugehörige Schemaversionsname werden nur mit Service Packs oder Hauptversionen von Exchange lokal aktualisiert.

Während das EWS-Schema den Vertrag definiert, ist in einigen Szenarien die Dienstversion die einzige Möglichkeit für einen Client, zu bestimmen, wie er mit dem Dienst interagieren soll. Änderungen des Dienstverhaltens, die nicht im Schema widergespiegelt werden, können nur von der Dienstversion bestimmt werden, die in allen EWS-Antworten zurückgegeben wird. Als beispielsweise öffentliche Ordner in Exchange 2013 neu gestaltet wurden, haben sich die Vorgänge zum Verschieben und Kopieren öffentlicher Ordner geändert. Wenn Sie einen Client zum Kopieren öffentlicher Ordner in Exchange 2010 entworfen haben, müssen Sie ihn aktualisieren, um verschiedene Vorgänge zu verwenden, um dasselbe Ergebnis in Exchange 2013 zu erhalten.

Aktualisieren des EWS-Schemas

Exchange-Server, auf denen Versionen von Exchange ab Exchange 2007 ausgeführt werden, enthalten das EWS-Schema in dem virtuellen Verzeichnis, das den EWS-Dienst hostet. Die aktuelle Schemaversion wird immer durch die Dateien types.xsd und messages.xsd dargestellt. Abbildung 1 zeigt, wie das messages.xsd-Schema gezweigt wird, wenn eine neue Version des Schemas entwickelt wird. Bevor neue Funktionen hinzugefügt werden, wird eine Kopie des ursprünglichen messages.xsd-Schemas eingeschlossen und umbenannt, um die vorherige Version des Schemas darzustellen. Die Datei messages.xsd wird dann mit der Dienstbeschreibung für die neue Version aktualisiert.

Abbildung 1: Aktualisieren des EWS-Schemas

Eine Abbildung, die zeigt, wie das EWS-Schema aktualisiert wird. Die aktuelle Schemaversion ist gegabelt, sodass sie bei der vorherigen Version umbenannt wird und der aktuelle Dateiname die aktuelle Version darstellt.

Bevor das EWS-Schema für eine neue Version aktualisiert wird, wird die aktuelle Version des Schemas gezweigt und mit der folgenden Konvention umbenannt:

<schemaname>-<majorserverversion><servicepack>.xsd

Der ursprüngliche Dateiname stellt dann das neueste Schema dar. Alle neuen Features werden dem neuesten Schema hinzugefügt, mit Ausnahme von Updates und Fixes für die früheren Versionen des Schemas.

Siehe auch