Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wichtig Die informationen, die in diesem Thema zu Microsoft Word beschrieben sind, werden ausschließlich für den Vorteil und die Verwendung von Einzelpersonen und Organisationen angezeigt, die sich außerhalb der USA und ihrer Gebiete befinden oder Programme verwenden oder entwickeln, die auf Microsoft ausgeführt werden, Microsoft Word-Produkte, die vor Januar 2010 lizenziert wurden, als Microsoft eine Implementierung bestimmter Funktionen im Zusammenhang mit benutzerdefiniertem XML aus Microsoft Word entfernt hat. Diese Informationen zu Microsoft Word werden möglicherweise nicht von Einzelpersonen oder Organisationen in den USA oder ihren Gebieten gelesen oder verwendet, die Programme verwenden oder entwickeln, die auf Microsoft Word-Produkten ausgeführt werden, die nach dem 10. Januar 2010 von Microsoft lizenziert wurden; Diese Produkte verhalten sich nicht mit Produkten, die vor diesem Datum lizenziert oder erworben und für die Verwendung außerhalb der USA lizenziert wurden.
Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene für Excel und Word. Weitere Informationen finden Sie unter Funktionen verfügbar nach Office-Anwendung und Projekttyp.
Microsoft Office Excel und Microsoft Office Word bieten die Möglichkeit, Ihren Dokumenten Schemas zuzuordnen. Dieses Feature kann das Importieren und Exportieren von XML-Daten in und aus dem Dokument vereinfachen.
Visual Studio macht zugeordnete Schemaelemente in dokumentenspezifischen Anpassungen als Steuerelemente im Programmiermodell verfügbar. Für Excel bietet Visual Studio Unterstützung zum Binden der Steuerelemente an Daten in Datenbanken, Webdiensten und Objekten. Für Word und Excel fügt Visual Studio Unterstützung für Aktionsfenster hinzu, die mit einem schemazugeordnetem Dokument verwendet werden können, um ein verbessertes Endbenutzererlebnis für Ihre Lösungen zu schaffen. Weitere Informationen finden Sie im Übersichtsbereich "Aktionen".
Hinweis
Sie können in Excel-Lösungen keine mehrteiligen XML-Schemas verwenden.
Objekte, die beim Anfügen von Schemas an Excel-Arbeitsmappen erstellt werden
Wenn Sie ein Schema an eine Arbeitsmappe anfügen, erstellt Visual Studio automatisch mehrere Objekte und fügt sie dem Projekt hinzu. Diese Objekte sollten nicht mithilfe von Visual Studio-Tools gelöscht werden, da sie von Excel verwaltet werden. Um sie zu löschen, entfernen Sie die zugeordneten Elemente aus dem Arbeitsblatt, oder trennen Sie das Schema mithilfe von Excel-Tools.
Es gibt zwei Hauptobjekte:
XML-Schema (XSD-Datei). Für jedes Schema in der Arbeitsmappe fügt Visual Studio dem Projekt ein Schema hinzu. Dies wird als Projektelement mit einer XSD-Erweiterung im Projektmappen-Explorer angezeigt.
Eine typierte DataSet Klasse. Diese Klasse wird basierend auf dem Schema erstellt. Diese Datasetklasse ist in der Klassenansicht sichtbar.
Objekte, die beim Zuordnen von Schemaelementen zu Excel-Arbeitsblättern erstellt werden
Wenn Sie ein Schemaelement aus dem Aufgabenbereich "XML-Quelle " einem Arbeitsblatt zuordnen, erstellt Visual Studio automatisch mehrere Objekte und fügt es ihrem Projekt hinzu:
Steuerung. Für jedes zugeordnete Objekt in der Arbeitsmappe wird im Programmiermodell ein XmlMappedRange Steuerelement (für nicht wiederholte Schemaelemente) oder ein ListObject Steuerelement (für wiederholte Schemaelemente) erstellt. Das ListObject Steuerelement kann nur gelöscht werden, indem die Zuordnungen und die zugeordneten Objekte aus der Arbeitsmappe gelöscht werden. Weitere Informationen zu Steuerelementen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.
BindingSource. Wenn Sie ein XmlMappedRange erstellen, indem Sie ein nicht wiederholendes Schemaelement dem Arbeitsblatt zuordnen, wird ein BindingSource erstellt, und das XmlMappedRange-Steuerelement ist an die BindingSource gebunden. Sie müssen BindingSource an eine Instanz der Datenquelle binden, die dem dem Dokument zugeordneten Schema entspricht, z. B. eine Instanz der typisierten DataSet-Klasse, die erstellt wurde. Erstellen Sie die Bindung, indem Sie die DataSource und DataMember Eigenschaften festlegen, die im Eigenschaften-Fenster angezeigt werden.
Hinweis
Dies BindingSource wird nicht für ListObject Objekte erstellt. Sie müssen ListObject manuell an die Datenquelle binden, indem Sie die Eigenschaften DataSource und DataMember im Eigenschaftenfenster festlegen.
Zugeordnete Office-Schemas und das Datenquellen-Fenster von Visual Studio
Sowohl die zugeordnete Schemafunktionalität von Office als auch das Visual Studio-Datenquellenfenster können Sie beim Präsentieren von Daten auf einem Excel-Arbeitsblatt zur Berichterstellung oder -bearbeitung unterstützen. In beiden Fällen können Sie Datenelemente auf das Excel-Arbeitsblatt ziehen. Beide Methoden erstellen Steuerelemente, die über ein BindingSource an eine Datenquelle wie ein DataSet oder einen Webdienst gebunden sind.
Hinweis
Wenn Sie einem Arbeitsblatt ein wiederholtes Schemaelement zuordnen, erstellt Visual Studio ein ListObject. ListObject ist nicht automatisch an Daten über BindingSource gebunden. Sie müssen ListObject manuell an die Datenquelle binden, indem Sie die Eigenschaften DataSource und DataMember im Eigenschaftenfenster festlegen.
In der folgenden Tabelle sind einige der Unterschiede zwischen den beiden Methoden aufgeführt.
| XML-Schema | Datenquellenfenster |
|---|---|
| Verwendet die Office-Schnittstelle. | Verwendet das Datenquellenfenster in Visual Studio. |
| Ermöglicht die integrierten Office-Features zum Importieren und Exportieren von Daten aus XML-Dateien. | Sie müssen Import- und Exportfunktionen programmgesteuert bereitstellen. |
| Sie müssen Code schreiben, um die generierten Steuerelemente mit Daten auszufüllen. | Im Fenster "Datenquellen" hinzugefügte Steuerelemente erhalten automatisch generierten Code, um sie auszufüllen, zusammen mit den erforderlichen Verbindungszeichenfolgen, wenn Sie Datenbankserver verwenden. |
Verhalten beim Anfügen von Schemas an Word-Dokumente
Datenobjekte werden nicht erstellt, wenn Sie ein Schema an ein Word-Dokument anfügen, das in einem Office-Projekt auf Dokumentebene verwendet wird. Wenn Sie ihrem Dokument jedoch ein Schemaelement zuordnen, werden Steuerelemente erstellt. Der Typ des Steuerelements hängt davon ab, welche Art von Element Sie zuordnen; Wiederholte Elemente generieren XMLNodes Steuerelemente, und nicht wiederholte Elemente generieren XMLNode Steuerelemente. Weitere Informationen finden Sie unter XMLNodes Control und XMLNode Control.
Bereitstellung von Lösungen, die XML-Schemas enthalten
Sie sollten ein Installationsprogramm erstellen, um eine Lösung bereitzustellen, die ein XML-Schema verwendet, das einem Dokument zugeordnet ist. Das Installationsprogramm sollte das Schema in der Schemabibliothek auf dem Computer des Benutzers registrieren. Wenn Sie das Schema nicht registrieren, funktioniert die Lösung weiterhin, da Word ein temporäres Schema basierend auf den Elementen generiert, die sich im Dokument befinden, wenn der Benutzer es öffnet. Der Benutzer kann jedoch keine Überprüfung durchführen oder das Schema speichern, das zum Erstellen des Projekts verwendet wurde. Weitere Informationen zu Installationsprogrammen finden Sie unter Bereitstellen von Anwendungen, Diensten und Komponenten.
Sie können Ihrem Projekt auch Code hinzufügen, um zu überprüfen, ob sich das Schema in der Bibliothek befindet und registriert ist. Wenn dies nicht der Grund ist, können Sie den Benutzer warnen.
// Ensure that the schema is in the library and registered with the document.
private bool CheckSchema()
{
const string namespaceUri = "http://schemas.contoso.com/projects";
bool namespaceFound = false;
bool namespaceRegistered = false;
foreach (Word.XMLNamespace n in Application.XMLNamespaces)
{
if (n.URI == namespaceUri)
{
namespaceFound = true;
}
}
if (!namespaceFound)
{
MessageBox.Show("XML Schema is not in library.");
return false;
}
foreach (Word.XMLSchemaReference r in this.XMLSchemaReferences)
{
if (r.NamespaceURI == namespaceUri)
{
namespaceRegistered = true;
}
}
if (!namespaceRegistered)
{
MessageBox.Show("XML Schema is not registered for this document.");
return false;
}
return true;
}