XML-Schemas und -Daten in Anpassungen auf Dokumentebene
Wichtig die Informationen, die in diesem Thema bezüglich Microsoft Word erläutert werden, wird ausschließlich für den Nutzen und die Verwendung von Personen und Organisationen, die außerhalb der USA und ihrer Außengebiete befinden, oder die verwenden, oder entwickeln Programme, die auf ausgeführt werden, Microsoft Word-Produkte dargestellt, die von Microsoft vor Januar 2010 lizenziert wurden, als Microsoft eine Implementierung der bestimmte Funktionen Beziehung zur benutzerdefinierten XML aus Microsoft Word entfernt wurde.Diese Informationen bezüglich Microsoft Word dürfen nicht von Personen oder Organisationen in den Vereinigten Staaten oder ihren Außengebieten verwendet werden, die Programme verwenden oder entwickeln, die unter Microsoft Word-Produkten ausgeführt werden, die von Microsoft nach dem 10. Januar 2010 lizenziert wurden. Diese Produkte verhalten sich nicht wie Produkte, die vor diesem Datum lizenziert oder für die Verwendung außerhalb der Vereinigten Staaten erworben und lizenziert wurden.
Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für die folgenden Anwendungen: Excel 2013 und Excel 2010, Word 2013 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.
Microsoft Office Excel und Microsoft Office Word ermöglichen es Ihnen, Dokumenten Schemas zuzuordnen.Dieses Feature kann das Importieren und Exportieren von XML-Daten in das Dokument bzw. aus dem Dokument erleichtern.
Visual Studio macht zugeordnete Schemaelemente als Steuerelemente im Programmiermodell in Anpassungen auf Dokumentebene verfügbar.Excel wird durch Visual Studio um Unterstützung für das Binden von Steuerelementen an Daten in Datenbanken, Webdiensten und Objekten erweitert.Word und Excel erhalten durch Visual Studio Unterstützung für Aktionsbereiche. Die Verwendung von Aktionsbereichen kann Ihren Projektmappen in Verbindung mit einem Dokument, das einem Schema zugeordnet wurde, mehr Benutzerfreundlichkeit verleihen.Weitere Informationen finden Sie unter Aktionsbereichsübersicht.
Hinweis |
---|
In Excel-Projektmappen können keine mehrteiligen XML-Schemas verwendet werden. |
Objekte, die beim Anfügen von Schemas an Excel-Arbeitsmappen erstellt werden
Wenn Sie einer Arbeitsmappe ein Schema zuordnen, werden von Visual Studio automatisch einige Objekte erstellt und dem Projekt hinzugefügt.Diese Objekte dürfen nicht mit Visual Studio-Tools gelöscht werden, da sie von Excel verwaltet werden.Entfernen Sie die zugeordneten Elemente aus dem Arbeitsblatt, oder trennen Sie das Schema mit Excel-Tools ab, um die Objekte zu löschen.
Es gibt zwei Hauptobjekte:
XML-Schema (XSD-Datei).Für jedes Schema in der Arbeitsmappe fügt Visual Studio dem Projekt ein Schema hinzu.Dieses wird im Projektmappen-Explorer als Projektelement mit einer XSD-Erweiterung angezeigt.
Eine typisierte DataSet-Klasse.Diese Klasse wird auf Grundlage des Schemas erstellt.Diese Dataset-Klasse ist in der Klassenansicht sichtbar.
Objekte, die bei der Zuordnung von Schemaelementen zu Excel-Arbeitsblättern erstellt werden
Wenn Sie einem Arbeitsblatt ein Schemaelement aus dem Aufgabenbereich XML-Quelle zuordnen, werden von Visual Studio automatisch mehrere Objekte erstellt und dem Projekt hinzugefügt:
Steuerelemente.Für jedes zugeordnete Objekt in der Arbeitsmappe wird im Programmiermodell ein XmlMappedRange-Steuerelement (für sich nicht wiederholende Schemaelemente) oder ein ListObject-Steuerelement (für sich wiederholende 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 über Steuerelemente finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.
BindingSource.Wenn Sie einen XmlMappedRange durch Zuordnen eines sich nicht wiederholenden Schemaelements zum Arbeitsblatt erstellen, wird eine BindingSource erzeugt und das XmlMappedRange-Steuerelement an die BindingSource gebunden.Sie müssen die BindingSource an eine Instanz der Datenquelle binden, die mit dem Schema übereinstimmt, das dem Dokument zugeordnet wurde – also z. B. mit einer Instanz der typisierten DataSet-Klasse, die erstellt wurde.Erstellen Sie die Bindung, indem Sie im Eigenschaftenfenster die Eigenschaften DataSource und DataMember festlegen.
Hinweis BindingSource wird nicht für ListObject-Objekte erstellt.Sie müssen das ListObject durch Festlegen der Eigenschaften DataSource und DataMember im Eigenschaftenfenster manuell an die Datenquelle binden.
Zugeordnete Schemas von Office und das Datenquellenfenster von Visual Studio
Sowohl mithilfe der zugeordneten Schemas von Office als auch über das Datenquellenfenster von Visual Studio können Sie Daten in einem Excel-Arbeitsblatt zur Berichterstellung oder zur Bearbeitung präsentieren.In beiden Fällen können Sie Datenelemente in das Excel-Arbeitsblatt ziehenBei beiden Methoden werden Steuerelemente erstellt, die über eine BindingSource an eine Datenquelle (z. B. DataSet) oder einen Webdienst an Daten gebunden sind.
Hinweis |
---|
Wenn Sie einem Arbeitsblatt ein sich wiederholendes Schemaelement zuordnen, wird von Visual Studio ListObject erstellt.Das ListObject wird durch die BindingSource nicht automatisch an Daten gebunden.Sie müssen das ListObject durch Festlegen der Eigenschaften DataSource und DataMember im Eigenschaftenfenster manuell an die Datenquelle binden. |
In der folgenden Tabelle werden einige der Unterschiede zwischen den beiden Methoden gezeigt.
XML-Schema |
Datenquellenfenster |
---|---|
Verwendet die Office-Schnittstelle. |
Verwendet das Datenquellenfenster in Visual Studio. |
Aktiviert die integrierten Office-Features für das Importieren und Exportieren von Daten in XML-Dateien. |
Sie müssen die Import- und Exportfunktionalität programmgesteuert bereitstellen. |
Sie müssen Code schreiben, um die generierten Steuerelemente mit Daten zu füllen. |
Für Steuerelemente, die Sie über das Datenquellenfenster hinzufügen, wird automatisch Code zum Füllen mit Daten generiert – einschließlich der benötigten Verbindungszeichenfolgen, wenn Sie Datenbankserver verwenden. |
Verhalten, wenn Schemas an Word-Dokumente angefügt werden
Beim Anfügen eines Schemas an ein Word-Dokument, das in einem Office-Projekt auf Dokumentebene verwendet wird, werden keine Datenobjekte erstellt.Es werden jedoch Steuerelemente erstellt, wenn Sie dem Dokument ein Schemaelement zuordnen.Welche Art von Steuerelement erstellt wird, hängt von der Art des zugeordneten Elements ab. Bei wiederholenden Elementen werden XMLNodes-Steuerelemente generiert, während bei nicht wiederholenden Elementen XMLNode-Steuerelemente generiert werden.Weitere Informationen finden Sie unter XMLNodes-Steuerelement und XMLNode-Steuerelement.
Bereitstellung von Projektmappen mit XML-Schemas
Sie sollten einen Installer erstellen, um eine Projektmappe bereitzustellen, die ein XML-Schema verwendet, das einem Dokument zugeordnet ist.Der Installer sollte das Schema in der Schemabibliothek auf dem Computer des Benutzers registrieren.Die Projektmappe funktioniert auch, wenn das Schema nicht registriert wird. In diesem Fall generiert Word nämlich beim Öffnen des Dokuments durch den Benutzer ein temporäres Schema, das auf den im Dokument enthaltenen Elementen basiert.Das Schema, mit dem das Projekt erstellt wurde, kann jedoch vom Benutzer nicht gespeichert oder zum Validieren verwendet werden.Weitere Informationen über Installer finden Sie unter Bereitstellen von Anwendungen und Komponenten.
Sie können einem Projekt auch Code hinzufügen, durch den überprüft wird, ob sich das Schema in der Bibliothek befindet und registriert ist.Wenn dies nicht der Fall ist, können Sie den Benutzer warnen.
' Ensure that the schema is in the library and registered with the document.
Private Function CheckSchema() As Boolean
Const namespaceUri As String = "http://schemas.contoso.com/projects"
Dim namespaceFound As Boolean = False
Dim namespaceRegistered As Boolean = False
Dim n As Word.XMLNamespace
For Each n In Application.XMLNamespaces
If (n.URI = namespaceUri) Then
namespaceFound = True
End If
Next
If Not namespaceFound Then
MessageBox.Show("XML Schema is not in library.")
Return False
End If
Dim r As Word.XMLSchemaReference
For Each r In Me.XMLSchemaReferences
If (r.NamespaceURI = namespaceUri) Then
namespaceRegistered = True
End If
Next
If Not namespaceRegistered Then
MessageBox.Show("XML Schema is not registered for this document.")
Return False
End If
Return True
End Function
// 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;
}
Siehe auch
Aufgaben
Gewusst wie: Zuordnen von Schemas zu Word-Dokumenten in Visual Studio
Gewusst wie: Zuordnen von Schemas zu Arbeitsblättern in Visual Studio